Blogのアクセスレポートで利用してただけど、先日Fenrirのデベロッパーズブログで見かけたのでちょっと書いてみる。
関連
Google Analytics API を利用した人気エントリー PHP スクリプト (フェンリル | デベロッパーズブログ)【Web】Google Analytics API の簡単に出来るお試し方法 (フェンリル | デベロッパーズブログ)
上記エントリ内では、「GAPI」というクラスを利用していますが、
個人的には「Google Analytics API Class」の方が好きです。
(野良ライブラリなのは同じですが)
Google Analytics API class for PHP | Ask About PHP
以下、それを使ったサンプルコード。
サンプルコード
require_once 'googleanalytics.class.php';
//設定
$email = 'hoge@fuga.com';
$password = 'password';
$profileId = 'ga:xxxxxx';
//6月に最も閲覧されたエントリ上位10エントリの情報を取得します
//取得データはURL、タイトル、閲覧数です
$ga = new GoogleAnalytics($email, $password);
$ga->setProfile($profileId);
$ga->setDateRange('2011-06-01', '2011-06-30');
$report = $ga->getReport(array(
'dimensions' => urlencode('ga:pagePath,ga:pageTitle'),
'metrics' => urlencode('ga:pageviews'),
'filters' => urlencode('ga:pagePath=~^/archives/20.*\.php$'),
'sort' => urlencode('-ga:pageviews'),
'max-results' => urlencode(10)
));
このライブラリのメリット/デメリット
メリット
- 容量が軽い。8KBしかありません。
- 設定とデータ取得とが分けられているので連続してデータを取得するのに向いています。
- 要素名=>要素で取得条件を設定するので視認性がよいです
デメリット
- dimensionsで設定した内容の取得に難があります。
メリットは書いたとおり。
シンプルなので扱いやすいです。
デメリットについては、結構面倒。
返ってくる結果は連想配列になってるんですが、キーがdimensions、値がmetricsという形式。
dimensionsに複数の値が指定されている場合には、「~~」で繋がっています。
返り値例:
array
'/archives/2008/12/softalk.php~~SofTalk - ゆっくりボイス作成ソフト。 - nplll' =>
array
'ga:pageviews' => string '1883'
GAPIのサンプルを見る限り、エントリのタイトルが、$result->getPageTitle()で取得できています。
これはかなり羨ましい。
返り値はオブジェクトで欲しいよねぇ…
今のところ大して困ってないのでこのまま使ってますが、
GAPIをベースにしつつ、googleanalyticsのメリットを取り入れながら自作してみるのも良いかも。
どうせ、ラッパーを書いて使ってるわけだし。
やるかどうかは未定ですが。
ちなみに、APIを導入するまでは、アクセス解析の度にGoogleAnalyticsのページからデータを抽出、
それをテキストエディタで加工してエントリにしていて、果てしなく面倒でした。
APIの存在に気付いて良かった…
追記
朝起きてもう1個デメリット思い出しました。値を入れるのにいちいちurlencodeさせられるのがだるい…
なんでライブラリで実装していないのかなー