Googleアナリティクスのデータをプログラムで取得して〇〇したいと思うことはまあまあある。現在Googleアナリティクスのデータは、Googleアナリティクス4 (GA4)プロパティと従来のユニバーサルアナリティクス(UA)プロパティに属しており、それによりAPIも変わる。なおUAは、2023年7月1日にサポート終了になり、データ処理が終わることがアナウンスされている。
Reporting API V4
UAプロパティにアクセスし、デイリーの各種データを取得できる。
Real Time API V3
UAプロパティにアクセスし、リアルタイム(過去30分間)の各種データを取得する。利用はデベロッパーに限定され、別途申請が必要。
DATA API V1(ベータ版)
GA4プロパティにアクセスし、デイリーとリアルタイム(過去30分間)の各種データを取得する。リアルタイムのデータ取得はReal Time API V4よりも限定的(eventCategoryやeventLabel毎のデータは取得できない)。
これらはそれぞれPHPのライブラリが提供されており、例えばWordPressのプラグインとして組み込める。また上記では便宜上「デイリー」としているが、Reporting API V4とDATA API V1(ベータ版)で取得できるデータは1日数回は更新される(参考:データの更新頻度(エンハンスト)、[GA4]データの更新頻度)。当日データの取得は、数時間遅れということになる(更新された日時を知る方法はあるのかな?)。
各ライブラリを使用する場合、認証用のキーファイルが必要になり、そのアカウントのメールアドレスを閲覧者として登録しておく。Reporting API V4とReal Time API V3はクライアントオブジェクトを生成し、そのsetAuthConfigメソッドでキーファイルのパス名を指定するのに対し、DATA API V1(ベータ版)では環境変数にパス名を指定してからクライアントオブジェクトを生成するといった違いがある。
Real Time API V3のPHPサンプルは、リンク先のgithubではWebアプリになっている。そこでReporting API V4を参考に適宜クラス名を変更ながら試すことに。イベントデータを取得するところは、次のような感じになった。
$optParams = array(
'dimensions' => 'rt:eventAction,rt:eventCategory,rt:eventLabel'
);
$results = $analytics->data_realtime->get(
'ga:XXXXXXXXXX',
'rt:totalEvents',
$optParams );
DATA API V1は、UAのサポート終了までに正式版がリリースされると思うが、リアルタイムのイベントデータ取得が今のままだとUAからの移行が大変そう。現在の仕様に合わせて対応していくべきなんだろうか。