GoogleAnalyticsは無料で使えて便利なのでよく利用しています。
最近は携帯サイトにも使えるようになりましたので活用の幅が広がってきています。
GoogleAnalyticsには専用の管理画面がありますが、この集計データを別途用意した管理画面で扱いたい場合や、日付×ページなどの指標で一括集計したい場合にはGoogle Analytics APIを使うと便利です。
今回はAPIを使って日付別にページビューを集計する方法について紹介します。
▼準備
Google Analytics APIとのデータのやりとりを簡単にするため、下記のクラスライブラリを使用します。
Google Analytics API class for PHP | Ask About PHP
http://www.askaboutphp.com/63/google-analytics-api-class-for-php.html
→googleanalytics.class.zipをダウンロードして解凍します。
必要なものはGoogleAnalyticsのアカウント情報と集計対象のProfileIDです。
ProfileIDは下記手順で確認できます。
・GoogleAnalyticsの管理画面でプロファイルを「編集」する画面に遷移
・画面左上に「プロファイル ID: xxxxxxxx」のように表示されています。
▼ソース例
下記は日付別に総ページビューを取得するサンプルです。
あらかじめ同階層もしくはパスの通っているディレクトリにgoogleanalytics.class.phpを配置しておきます。
返り値は配列で取得できますので、管理システム内で加工して簡単に扱うことができるかと思います。
<?php require_once 'googleanalytics.class.php'; try { // アカウント情報を設定 $ga = new GoogleAnalytics('メールアドレス','パスワード'); // プロファイルIDを指定 $ga->setProfile('ga:プロファイルID'); // 期間を指定 $ga->setDateRange('2010-04-01','2010-04-03'); // 日付別の総ページビューを取得 $report = $ga->getReport( array( 'dimensions'=>urlencode('ga:date'), 'metrics'=>urlencode('ga:pageviews'), 'sort'=>'ga:date' ) ); // 結果を出力 $result = print_r($report, TRUE); echo "<pre>{$result}</pre>"; // 例外処理 } catch (Exception $e) { print 'Error: ' . $e->getMessage(); } ?>
例えば上記ソースを実行した場合、以下のように出力されます。※PVはダミーです。
Array ( [20100401] => Array ( [ga:pageviews] => 364 ) [20100402] => Array ( [ga:pageviews] => 437 ) [20100403] => Array ( [ga:pageviews] => 574 ) )
次回はページ別に細かく集計する方法をご紹介する予定です。
参考URL
▼「Google Analytics API 」をPHPから便利に使えるクラスライブラリ:phpspot開発日誌
http://phpspot.org/blog/archives/2009/06/google_analytic_2.html