gapi.php(GoogleAnalytics API)を利用した、サイトの人気コンテンツ取得

2012年2月11日 オフ 投稿者: KYO
Table of Contents

gapi.php(GoogleAnalytics API)を利用した、サイトの人気コンテンツ取得

GoogleAnalytics API(gapi.class.php)を利用して、サイトの人気コンテンツを取得する方法。
サイトの人気コンテンツを10件表示するサンプル。


下記のリンクから、gapi.class.phpをダウンロード

gapi-google-analytics-php-interface

[php]
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>GAPI-1.3: report</title>
    <style>body { font-size:small; } table { border-collapse:collapse; width:100%; } th,td { padding:3px 5px; } .num { text-align:right; }</style>
</head>
<body>
<?php
/* Google Analyticsのログイン情報 */
define('ga_email','{メールアドレス}');
define('ga_password','{パスワード}');
/* プロファイルID */
define('ga_profile_id','{プロファイルID}');

/* ディメンション */
$dimensions=array('pageTitle','pagePath');
/* 指標 */
$metrics=array('pageviews','visits');
/* 結果のソート順と方向 */
$sort_metric='-pageviews';
/* フィルター */
$filter="";
/* 開始日・終了日(過去1週間) */
$start_date=date('Y-m-d', strtotime('-7 day'));
$end_date=date('Y-m-d', strtotime('-1 day'));
/* 開始インデックス */
$start_index=1;
/* 結果フィードの最大取得数 */
$max_results=10;

/* クラス読み込み */
require 'gapi.class.php';

/* 認証 */
$ga = new gapi(ga_email,ga_password);

/* データ取得 */
$ga->requestReportData(
    ga_profile_id,    /* プロファイルID */
    $dimensions,    /* ディメンション */
    $metrics,        /* 指標 */
    $sort_metric,    /* 結果のソート順と方向 */
    $filter,        /* フィルタ */
    $start_date,    /* 開始日 */
    $end_date,        /* 終了日 */
    $start_index,    /* 開始インデックス */
    $max_results    /* 結果の最大取得数 */
);
?>
<h3>人気エントリーTOP10</h3>
<p><?php echo $start_date;?> ~ <?php echo $end_date;?>(過去1週間)</p>
<table border="1">
    <tr><th>No.</th><th>コンテンツタイトル</th><th>ページビュー</th></tr>
<?php
$i=1;
foreach($ga->getResults() as $result):
?>
        <tr>
            <td><?php echo $i;?></td>
            <td><a href='<?php echo $result->getPagepath();?>'><?php echo str_replace("|PHP & JavaScript Room","",$result->getPagetitle());?></a></td>
            <td class="num"><?php echo $result->getPageviews();?></td>
        </tr>
<?php
    $i++;
endforeach
?>
</table>
</body>
</html>
[/php]