【Googleアナリティクス(GA4)】APIでデータを取得するPHPの例|ページビュー数など

今回は、Googleアナリティクス(GA4)を扱えるAPI(Google Analytics Data API)をPHPで利用して、データを取得する簡単な例となります。
例では、Google Cloudクライアントを利用してAPIリクエストを行うPHPスクリプトを、コマンドラインから実行して、Googleアナリティクスからページビュー数などを取得します。
Google Analytics Data APIを利用する準備
APIを有効にする
Google Analytics Data APIを利用するには、GCP(Google Cloud Platform)で有効にする必要があります。
APIを有効にする方法は、以下のリンク先を参考にしてみてください。
サービスアカウントを作成して認証情報をダンロード
GCPで有効にしたAPIを呼び出すには認証情報が必要となります。
認証情報の種類にはいくつかありますが、今回の例では、サービスアカウントを作成して認証情報(JSONファイル)をダウンロードしている前提となります。
サービスアカウントを作成して認証情報をダンロードする方法は、以下のリンク先を参考にしてみてください。
サービス アカウントの作成と管理 | IAM のドキュメント | Google Cloud
Googleアナリティクスのアクセス管理画面からサービスアカウントを追加
GoogleアナリティクスのプロパティのデータをAPIで扱うため、Googleアナリティクスのアクセス管理画面から、作成したサービスアカウントをユーザとして追加します。
Googleアナリティクスのアクセス管理画面から、ユーザを追加する方法は、以下のリンク先を参考にしてみてください。
プロパティIDを確認
サービスアカウントをユーザとして追加したプロパティを、APIで扱うにはプロパティIDが必要となります。
GoogleアナリティクスのプロパティIDを確認する方法は、以下のリンク先を参考にしてみてください。
Google CloudクライアントをComposerでインストール
まずは、プロジェクトのフォルダを作成します。
そして、ComposerでGoogle Cloudクライアントをインストールするため、プロジェクトのルートディレクトリにcdコマンドで移動し、以下のコマンドを実行します。
また、今回はGoogle CloudクライアントのGoogleアナリティクスに関するコンポーネントだけをインストールしています。
composer require google/analytics-data
PHPライブラリの依存関係を管理するComposerをMacで利用する方法については、以下のリンク先を参考にしてみてください。
Google Analytics Data APIの利用例
作成するスクリプトは、Google Analytics Data APIを利用して、次の条件のデータを取得します。
- 【取得するデータ】ページ毎のページビュー数・ページパス
- 【取得するデータの期間】スクリプトを実行した日から10日前まで
- 【取得する件数】上位10件のページ
今回の例では、プロジェクトのルートディレクトリにPHPファイルを作成し、以下のコードを記述して実行します。
コード内の10行目の/XXXXXXXXXXXX.jsonの箇所にはダウンロードした認証情報へのパスを指定し、12行目のXXXXXXには確認したGoogleアナリティクスのプロパティIDを指定します。
<?php
require 'vendor/autoload.php';
// 利用するクラスをインポート
use Google\Analytics\Data\V1beta\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
// 環境変数GOOGLE_APPLICATION_CREDENTIALSを設定(認証情報へのパスを指定)
putenv('GOOGLE_APPLICATION_CREDENTIALS=' . __DIR__ . '/XXXXXXXXXXXX.json');
// プロパティIDを指定
$property_id = 'XXXXXX';
// Googleアナリティクスのデータを取得するAPIリクエスト
$client = new BetaAnalyticsDataClient();
$response = $client->runReport([
'property' => 'properties/' . $property_id,
'limit' => 10, // 件数を指定
'dateRanges' => [
new DateRange([ // 期間を指定
'start_date' => '10daysAgo',
'end_date' => 'today',
]),
],
'dimensions' => [
new Dimension([ // ディメンションを指定
'name' => 'pagePath',
]),
],
'metrics' => [
new Metric([ // 指標を指定
'name' => 'screenPageViews',
])
]
]);
// APIのレスポンスデータから出力
foreach ($response->getRows() as $row) {
print $row->getDimensionValues()[0]->getValue() . PHP_EOL;
print $row->getMetricValues()[0]->getValue() . PHP_EOL;
}
上記のように、データを取得するAPI リクエストには、Googleアナリティクスのディメンションや指標(Metrics)などを指定する必要があります。詳しくは文末の参考サイトを確認してみてください。
また、コマンドラインから作成したファイルを実行するには、ファイルのあるディレクトリに移動して、次のコマンドを実行します。
php ファイル名
以上が、Google Analytics Data APIを利用して、Googleアナリティクスのデータを取得する例となります。