Google AnalyticsのAPIをPHPで利用する

昨今はwebサーバーを作るにもjavascriptやpythonを使うことが増えたため、
Googleの公式リファレンスもそちらが優先されPHPのページがなくなりつつあります。

しかしツールとしては依然公開されているためPHPでもAPIを利用することはできます。

これはそのような方々に向けたメモ書きです。

利用するAPIの違い

先に利用するAPIの選択になります。

Googleアナリティクスは2023年6月末でUAの配信を終了したため、
APIもUAで利用していた「Analytics Reporting API」から
GA4では「Analytics Data API」に変更されています。

※リファレンスがないだけで「Analytics Reporting API」でGA4が使える可能性は0ではありません。

Google サービスの設定

Google cloud APIコンソール

最初にGoogle cloud APIコンソールで「Analytics Data API」を有効化します。
有効化する際にサービスアカウントが必要になります。

基本的には閲覧のみのアカウントで問題ありません。

APIを利用するための認証情報が書かれたjsonをダウンロードしておきます。

アナリティクス管理画面

APIを利用したいアナリティクスの管理画面を開き、
左下の「管理」→「プロパティのアクセス管理」に「サービスアカウント」を登録します。

複数のページで利用する場合はページごとに設定する必要があります。

PHPのgoogle/apiclientをインストール

Analytics Data APIを利用する場合も「google/apiclient」を利用します。

composer require google/apiclient:^2.0

その後はドキュメントがないので、ソースプログラムや似たexampleを見ながら設定します。

google/apiclientのgit

利用したのはだいたい以下のコード

$KEY_FILE_LOCATION = '先に取得したjsonファイルのパス';

$client = new Google_Client();
$client->setApplicationName("適当に");
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']); #アカウント認証に使用するページのurl
$analytics = new Google_Service_AnalyticsData($client);

$VIEW_ID = "properties/アナリティクス管理画面で確認できるプロパティID";
$dd_array = [
	'dateRanges' => ['start_date' => '2023-10-20', 'end_date' => '2023-10-20',],
	'dimensions' => [
		['name'=>'region',],
	],
	'metrics' => [
		['expression'=>'activeUsers','name'=>'User',],
		['expression'=>'newUsers','name'=>'New',],
		['expression'=>'screenPageViews','name'=>'View',],
		['expression'=>'engagedSessions','name'=>'Engage',],
	],
	'orderBys' => [
		'desc' => true,
		'metric' => ['metricName' => 'activeUsers',],
	],
	'limit' => 4000,
];
$request = new Google_Service_AnalyticsData_RunReportRequest($dd_array);
$response = $analytics->properties->runReport($VIEW_ID,$request);

各部解説

・$client->setApplicationName
恐らく任意の識別子、利用目的に合った名前を。

・$client->setScopes
アカウントの認証に使用するURL。
こちらはリファレンスに記載があります。

例えばサーチコンソールをAPI経由で使う場合はURLが異なるのでリファレンスを参照してください。

・$dd_array
変数名は適当につけています。
Google_Service_AnalyticsData_RunReportRequestに投げる連想配列を設定します。

内容は他のプログラムで利用するjson形式と共通です。
PHPの連想配列の書き方に合わせて編集してください。
runReportのリファレンス

ディメンションとメトリクス(指標)

ディメンションとメトリクスはリファレンスに合わせて設定します。
API のディメンションと指標

ただし日本語ページにすると「API名」まで和訳されるため、
API名として設定するとエラーになる英字があります。
その場合は英語ページに変更してコピーしてください。

また特定の組み合わせをするとエラーになります。
これはAPIでしか叩けない変数が存在し、恐らくベータ版の変数であるため。

終わり

以上がPHPでの使い方です。
今後もPHPで使える機能は減少していくようにも思えます。
機能として残っていても、サポートされなかったりマニュアルがなかったり
といった事例も増えていくのでしょう。

最新ブログ一覧