Google Analyticsからランキングデータを取得する

こんにちは斉藤です。
早いもので、ちょうど今月で入社して1年になりました。本当にあっという間すぎて驚きを隠しきれません。
皆様、これからも改めてよろしくお願い致します。
 
 さて、タイトルにある通り、「ga」いわゆるgoogle analyticsからランキングを作成した時のメモを残しておこうと思います。
googleアカウントは持ってる仮定で進めていきます。
デベロッパーセンターにてプロジェクトの作成をします。
プロジェクトの作成からプロジェクト名を入力し、作成します。
次にライブラリからAnalytics APIを選択し、有効にします。
次に認証からサービスアカウントの作成をします。
最近のapiはJSONじゃなきゃダメなようなのでJSONで作成します。
この時に出来上がったアドレス「hoge@hoge.iam.gserviceaccount.com」的な感じで出来上がると思うので、それをアナリティクスに登録します。
こちらの権限を付与するユーザーにアドレスを追加します。
あとは一番右のビュー設定のビューIDを使うのでメモしておきます。
次にライブラリの取得をします。
これを普通にダウンロードしただけではうまく動かなかったので、composerで入れました。
 
composer.jsonに
{
 "require": {
  "google/apiclient":"^2.0"
 }
}

 

を記述してcomposer installを実行しました。
 
あとはプログラムの実装です。
今回はhoge.com/category1/category2/記事番号/
といったページの記事番号を見てそこのページのビュー数のトップ10を取得するといったことをします。
include_once 'vendor/autoload.php';
$view_id = 111111111111;(アナリティクスのビューID)

// 取得する期間 (YYYY-MM-DD)
$from = date('Y-m-d',strtotime('-7 day'));    // 対象開始日
$to = date('Y-m-d');                                 // 対象終了日

// 取得するデータの組み合わせ (複数の場合は[,]で区切る)
$dimensions = 'ga:pagePathLevel3';     // 今回は記事番号を見たかったので3つ目の
階層を指定するためga:pagePathLevel3を使っています。
$metrics = 'ga:pageviews';                            // ページビュー数

$option = array(
 'dimensions' => $dimensions ,
 'max-results' => 10 ,
 'sort' => '-ga:pageviews' ,
);

$client = new Google_Client();

// トークンのセット
if( isset($_SESSION['service_token'])){
 $client->setAccessToken($_SESSION['service_token']);
}

// スコープのセット (読み込みオンリー)
$scopes = array('https://www.googleapis.com/auth/analytics.readonly');
$client->setScopes($scopes);

$client->setAuthConfig('hoge.json');  // 最初に作成したJSONファイルをここで使います

// セッションの設定
$_SESSION['service_token'] = $client->getAccessToken();

// Analyticsのインスタンスを作成
$analytics = new Google_Service_Analytics($client);

// データの取得
$obj = $analytics->data_ga->get('ga:'.$view_id,$from,$to,$metrics,$option);

 

これで$obj->rowsに取得したデータが入っているのでそれを使えばランキングを作成できます。
最近の新しいやつはこれでできるはずです!
 
参考にさせていただいたサイト