こんにちは斉藤です。
早いもので、ちょうど今月で入社して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に取得したデータが入っているのでそれを使えばランキングを作成できます。
最近の新しいやつはこれでできるはずです!
参考にさせていただいたサイト