Posts Google AnalyticsのデータをPHPで取得
Post
Cancel

Google AnalyticsのデータをPHPで取得

GAPIを使う
https://code.google.com/p/gapi-google-analytics-php-interface/

Googleが提供しているライブラリのページには
https://developers.google.com/analytics/devguides/reporting/core/v3/gdataLibraries
(beta)と書かれているのと、ここにはOauthを使うサンプルが書かれているが、
ブラウザは使わずにデータを取得したいのでGAPIを使う。

備考
・アカウントのID等の情報は、Spycを使ってYAMLで読み込んでいる
https://github.com/mustangostang/spyc/

下記は、前の月の特定のページ(/items/以下)のユニークページビューを多い順に20件取得、
ページタイトルと一緒に表示するサンプル。

get_unique_pageview.php

<?php
include('spyc-master/spyc.php');
include('gapi-1.3/gapi.class.php');

// 設定読み込み
$myconf = Spyc::YAMLLoad('conf.yml');

// 日付の設定
$date = new DateTime();
// 先月の初め
$last = new DateTime($date->format(&#8216;Y-m-01&#8217;));

  
$last->modify(&#8220;-1 month&#8221;);  
$startDate = $last->format(&#8216;Y-m-d&#8217;);  
// 先月の終わり  
$last->modify(&#8220;+1 month&#8221;);  
$last->modify(&#8220;-1 day&#8221;);  
$endDate = $last->format(&#8216;Y-m-d&#8217;);

$filter = &#8216;pagePath =~ ^/items/&#8217;;  
$startIndex = 1;  
$maxResults = 20;

$ga = new gapi(  
$myconf\[&#8216;ga&#8217;\]\[&#8216;google_id&#8217;\],  
$myconf\[&#8216;ga&#8217;\]\[&#8216;google_pw&#8217;\]  
);  
$ga->requestReportData(  
$myconf\[&#8216;ga&#8217;\]\[&#8216;profile_id&#8217;\],  
array(&#8216;pagePath&#8217;, &#8216;pageTitle&#8217;),  
array(&#8216;uniquePageviews&#8217;),  
&#8216;-uniquePageviews&#8217;,  
$filter,  
$startDate,  
$endDate,  
$startIndex,  
$maxResults  
);

foreach($ga->getResults() as $result)  
{  
echo &#8216;Title: &#8216; . $result->getPageTitle() . &#8216; &#8216;;  
echo &#8216;PagePath: &#8216; . $result->getPagePath() . &#8216; &#8216;;  
echo &#8216;Pageviews: &#8216; . $result->getUniquePageviews() . &#8216; &#8216;;  
}  

conf.yml

ga:  
google_id : メールアドレスを記入  
google_pw : パスワードを記入  
profile_id : プロファイルIDを記入 (XXXXXXXX)  

参考
各言語 ライブラリ一覧
Core Reporting API Client Libraries & Sample Code (v3)
https://developers.google.com/analytics/devguides/reporting/core/v3/gdataLibraries