以前私が書いた記事「PowerCMS XとGoogle Analyticsでランキングを表示」のGA4対応についてよくご質問を頂きます。回答は「APIを介してGoogle Analyticsのデータを取得しているので、プラグイン内のAPI操作を行うコードを書き換えるだけで対応できる」となります。
コマンドラインで試行
「Google アナリティクス Data API v1」を利用するとGoogle アナリティクス 4(GA4)のレポートデータにアクセスできるとあります。(ただし2022年11月25日現在はベータ版です。)そこで「APIクイックスタート」の手順に沿って手続きを進めたところ、GA4に格納されているページビューを取得することができました。
runReport
にセットするDimensions, Metricsは「API Dimensions & Metrics」に一覧がありました- 認証は「Google Analytics Data API(GA4)を使ってみる(PHPサンプル付き) / 開発者向けブログ・イベント | GMO Developers」を参考に
putenv()
を利用しました
<?php
require 'vendor/autoload.php';
// https://developers.gmo.jp/23074/
putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/credentials.json');
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 = '286786598';
// Using a default constructor instructs the client to use the credentials
// specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
$client = new BetaAnalyticsDataClient();
// Make an API call.
$response = $client->runReport([
'property' => 'properties/' . $property_id,
'dateRanges' => [
new DateRange([
'start_date' => '2022-10-28',
'end_date' => '2022-11-24',
]),
],
'dimensions' => [
new Dimension([
'name' => 'pageTitle',
]),
],
'metrics' => [
new Metric([
'name' => 'screenPageViews',
]),
],
]);
// Print results of an API call.
print 'Report result: ' . PHP_EOL;
foreach ($response->getRows() as $row) {
print $row->getDimensionValues()[0]->getValue()
. ' ' . $row->getMetricValues()[0]->getValue() . PHP_EOL;
}
ターミナルでPHPを実行したところ、以下のようにGA4に格納されているページタイトルと表示回数が取得できました。この結果はブラウザでGA4の「ページとスクリーン: ページタイトルとスクリーンクラス」にアクセスして表示される結果と一致していました。