読者です 読者をやめる 読者になる 読者になる

【旧版】Google Analytics API を PHP から使う


2016年4月1日時点、API が更新されて使い方が変わっています。こちらの新しい記事をご覧ください。

目標

Google Analytics API を使って、人気のページのランキングを作る。

次の記事はバージョンの古い PHP Client を使っているため、最新版で動作するようにする。

サービスから API を使えるよう設定を行う

この記事を参考に第6節「Google Analytics のビュー ID をメモする」までの手順を行う。

この手順で作成するものは次の通り。

  • API プロジェクト(Facebook API では「アプリ」と呼ばれるものに相当)
  • OAuth のサービスアカウント
    • クライアント ID
    • メール アドレス
    • 秘密鍵
  • 上記 OAuth クライアントと紐づいた Google Analytics ユーザー

Google API PHP Client を配置する

次のページから src 以下のファイルをダウンロードする。Git の使い方に詳しくなければ「Download ZIP」からまとめてダウンロードするとよい。

require/include で読み込み可能なディレクトリに Google というディレクトリを作り、その中にダウンロードした src 以下のファイルを配置する。

API を使う

毎回 API への接続条件を書くのは大変なので次のようなクラスを作った。新しい PHP Client ではこの部分で使うクラス名や関数名が変更されている。

<?php
// my_google_analytics.php
require_once 'Google/Client.php';
require_once 'Google/Auth/AssertionCredentials.php';
require_once 'Google/Service/Analytics.php';

class MyGoogleAnalytics {

	// クライアント ID
	const CLIENT_ID = 'XXXXXXXX.apps.googleusercontent.com';

	// メール アドレス
	const SERVICE_ACCOUNT_NAME = 'XXXXXXXX@developer.gserviceaccount.com';

	// 秘密鍵のファイル名
	const KEY_FILE = 'XXXXXXXX-privatekey.p12';
	
	private static $client;
	private static $service;

	public static function get() {
		if (! isset(self::$client)) {
			self::createClient();
		}
		
		if (! isset(self::$service)) {
			self::$service = new Google_Service_Analytics(self::$client);
		}
		return self::$service;
	}

	private static function createClient() {
		self::$client = new Google_Client();
		self::$client->setApplicationName('Suzume Kawaii Application');

		self::$client->setClientId(self::CLIENT_ID);
		self::$client->setAssertionCredentials(new Google_Auth_AssertionCredentials(
			self::SERVICE_ACCOUNT_NAME,
			array('https://www.googleapis.com/auth/analytics.readonly'),
			file_get_contents(__DIR__ . '/' . self::KEY_FILE)
		));
	}
}

次のように MyGoogleAnalytics::get() を呼ぶだけですぐに API を呼び出すためのオブジェクトを生成できる。

<?php
require_once 'my_google_analytics.php';

$ga = MyGoogleAnalytics::get();
$result = $ga->data_ga->get(
	'ga:XXXXX', // XXXXX の部分は Analytics のビュー ID
	'2014-05-01', // 開始日
	'2014-05-31', // 終了日
	'ga:pageviews', // 主要指標 (metrics)
	array(
		'dimensions' => 'ga:pageTitle,ga:pagePath', // 副指標
		'sort' => '-ga:pageviews', // - を付けると降順ソート
		'max-results' => 10, // 取得件数
	));

print_r($result['rows']);

取得できるデータの種類

指標 metrics および dimension で指定できる項目はこのページで参照できる。

主な指標を挙げておく。

  • Metrics
    • ga:sessions セッション数
    • ga:users ユーザ数
    • ga:pageviews ページビュー
  • Dimensions
    • ga:userType 新規訪問/リピート訪問 (例: New Visitor, Returning Visitor)
    • ga:medium 参照元の種類 (例: organic, referral, (none))
    • ga:source 参照元 (例: google, yahoo, (direct), example.com)