【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アナリティクスのデータを取得する例となります。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。