2009年10月16日

PHPでGoogle Analytics APIをいじる。

「Google Analytics API 」をPHPから便利に使えるクラスライブラリ:phpspot開発日誌
をみて、「ほぅ、ライブラリでてるなら楽勝じゃろ」と思ったので、PHPからGoogle Analytics API使ってみました。

とりあえず最初に、Google Analytics API class for PHP | Ask About PHPから、ファイルをダウンロード。

あとは、適当にゴニョゴニョしてれば出来上がり。
以下、サンプルコード!!
<?php
include "googleanalytics.class.php";
try {
// ID パスワード入力
$ga = new GoogleAnalytics('example@example.com','password');
// Analytics プロファイル
$ga->setProfile('ga:xxxxxxx');

// データ選択期間。
$ga->setDateRange('2009-08-01','2009-10-31');

$report = $ga->getReport(
array('dimensions'=>urlencode('ga:month,ga:pageTitle'),
'metrics'=>urlencode('ga:pageviews,ga:visits,ga:entrances,ga:bounces,ga:exits'),
'filters'=>urlencode('ga:pageTitle=@ページ名'),
'sort'=>'ga:pageTitle,ga:month'
)
);
if (is_array($report) && count($report)) {
echo "<table>";
echo "<tr>";
echo "<th>タイトル</th>";
echo "<th>PV</th>";
echo "<th>訪問者</th>";
echo "<th>直帰率</th>";
echo "<th>離脱率</th>";
echo "</tr>";
foreach ($report as $key => $value) {
echo "<tr>";
echo "<td>".$key."</td>";
echo "<td>".$value['ga:pageviews']."</td>";
echo "<td>".$value['ga:visits']."</td>";
  // ID 直帰率の計算
echo $value['ga:entrances'] ? "<td>".sprintf('%0.2f%%',$value['ga:bounces'] / $value['ga:entrances'] * 100)."</td>" : "<td>--</td>";
// ID 離脱率の計算
  echo $value['ga:pageviews'] ? "<td>".sprintf('%0.2f%%',$value['ga:exits'] / $value['ga:pageviews'] * 100)."</td>" : "<td>--</td>";
echo "</tr>";
}
echo "</table>";
}
} catch (Exception $e) {
print 'Error: ' . $e->getMessage();
}
?>

一応、ポイント説明

  1. include "googleanalytics.class.php";
    googleanalytics.class.phpは、cURL関数つかってるので、インストールされてない場合は、PHPの設定変更が必要。
    ※さくらの共有サーバには入っていました。
  2. $ga->setProfile('ga:xxxxxxx');
    は、AnalyticsのURL
    https://www.google.com/analytics/reporting/?reset=1&id=xxxxxxxx&pdr=20090915-20091015のid部分。
    ga:はお決まりなので、必ず必要。
  3. $ga->setDateRange('2009-08-01','2009-10-31');
    がデータの取得期間
  4. 'dimensions'=>urlencode('ga:month,ga:pageTitle'),
    がデータのまとめ単位。
    上の例だと、ページタイトル毎の一ヶ月単位のデータを出す。
    'dimensions'=>urlencode('ga:date,ga:pageTitle'),
    とすれば、1日ごとのデータを抽出。
  5. 'metrics'=>urlencode('ga:pageviews,ga:visits,ga:entrances,ga:bounces,ga:exits'),
    が抜き出すデータ。
    これだと、PVと訪問者、入り口数と直帰数と離脱数をピックアップ!!
    ga:何とかの詳しい説明は、Dimensions & Metrics Reference - Google Analytics - Google Codeをチェック。

  6. 'filters'=>urlencode('ga:pageTitle=@情報トップ'),
    がフィルター。
    この条件に一致するデータのみをピックアップする。
  7. 'sort'=>'ga:pageTitle,ga:month'
    がソート。もちろん複数指定OK
    'sort'=>'-ga:pageTitle,-ga:month'
    のように、-をつけると降順になる。

  8. APIで取得した場合、Google Analyticsの画面と違って、直帰数と離脱数は%じゃなくて、数字でデータが抽出されるので、自分で計算してやる必要がある。
  9. あとは、抽出してきたデータを整形してやれば完成!!


毎月定期的に抜き出しているデータとかをAPIで抜き出せば、作業が楽になるってことだ!!

 \うんことどっこいしょ!/
   人
  (__)
_(__)____∧_∧___
  ( ・∀・)  ( ・∀・)  l <ドッコイショ
―(    .)―(    )―┘、
-―┐ ) ).―┐ ) )――┐
 ∑ (__ノ__ノ ∑ (__ノ__ノ    |

0 件のコメント: