💬
GA4で収集したデータをAPIで取得する
前置き
gtagで収集したデータをAPIで取得するには、GoogleAnalyticsReporting v4を利用するが、
GA4の場合、GoogleAnalyticsDataApiを利用する。
先方がGA4を使用していたことから、利用できるAPIについていろいろ調査した。
現在(2021/12/07時点)、GA4用のAPIはベータ版のみで、日本語での知見はほとんどなく、英語でもあまり見られないのでAPIを利用したい場合、GA4を利用するべきではない。
Google Analytics Data API
Beta
This is a Beta version of the product. While no breaking changes are expected in this phase, pre-GA products may have limited support, and changes to pre-GA products may not be compatible with other pre-GA versions.
orverviewによると、現在ベータ版しか利用できないらしい。
利用方法
API Quickstart
Google Analytics Data for PHP/README.md
ざっくりいうと
- GoogleCloudPlatformでGoogle Analytics Data APIを有効にする。
- GoogleCloudPlatformでサービスアカウント作成、秘密鍵を取得する。
- GoogleAnalyticsの管理画面から、左下の管理>プロパティ>プロパティのアクセス管理より、ユーザー(GoogleCloudPlatformで作成したサービスアカウント)を追加。
- composerで必要なモジュールをrequireする。サーバーにphpのモジュール、php-bcmathをインストールする。
phpのサンプルプログラムはAPI Quickstartのページを参照する。
APIを利用してみる
サンプルプログラムを一部書き換えて試してみる。
analyticsDataApi.php
<?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;
/**
* TODO(developer): Replace this variable with your Google Analytics 4
* property ID before running the sample.
*/
$property_id = '{プロパティID}';
// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
$client = new BetaAnalyticsDataClient([
'credentials' => '{サービスアカウントの秘密鍵}',
]);
// Make an API call.
$response = $client->runReport([
'property' => 'properties/' . $property_id,
'dateRanges' => [
new DateRange([
'start_date' => '2020-03-31',
'end_date' => 'today',
]),
],
'dimensions' => [
new Dimension([
'name' => 'pagePathPlusQueryString',
]),
],
'metrics' => [
new Metric([
'name' => 'screenPageViews',
]),
new Metric([
'name' => 'totalUsers',
]),
]
]);
// Print results of an API call.
print 'Report result: ' . PHP_EOL;
foreach ($response->getRows() as $key => $row) {
$data[$key]['pagePath'] = $row->getDimensionValues()[0]->getValue();
$data[$key]['pageViews'] = $row->getMetricValues()[0]->getValue();
$data[$key]['user'] = $row->getMetricValues()[1]->getValue();
}
print_r($data);
出力
# php analyticsDataApi.php
Report result:
Array
(
[0] => Array
(
[pagePath] => /
[pageViews] => 19
[user] => 4
)
[1] => Array
(
[pagePath] => /products/detail.php?product_id=11763
[pageViews] => 8
[user] => 7
)
)
参考
使用できる項目一覧
使用できるDimensionsやMetricsをAPIで取得する
Reporting APIからの移行
Reporting APIとData APIの取得できる項目の対応表
Discussion