こんにちは、WwWです。
Googleアナリティクスが、ユニバーサルアナリティクス(UA)からGoogleアナリティクス4プロパティ(GA4)へ2023年7月1日に切り替わっていたことを、恥ずかしながらここ最近知りまして、慌てて対応をしたので紹介したいと思います。
(今までUAでデータ取得していた処理は、データ値が0固定または何も取得できなかったり、未来の日付で取得できたり等、色々とおかしくなってしまっていました)
※引用元※
[UA]ユニバーサルアナリティクスはGoogleアナリティクス4に置き換わりました (Googleアナリティクスヘルプページ)
使用したサーバ環境は下記になります。
OS | CentOS 7 ※サポート期限が2024年6月30日までなので、こちらもOS移行に気を付けましょう! |
使用言語 | PHP7.4 ※APIを使用するためにはPHP7.4以上である必要がある |
使用API | Google Analytics Data API |
Googleコンソールの設定
既存のUAを使用したプロジェクトに対して、GA4の設定を新たに追加する方法になります。
1. GA4プロパティ作成
①Googleアナリティクスにログインする
http://www.google.com/analytics
②ログイン後、左下メニューの[管理]をクリックし、
[対象のアカウント]と[対象のUAプロパティ]を選択して、
[GA4 設定アシスタント]をクリックする

③GA4プロパティが自動作成されているか確認する。(接続済みであればOK)
※GA4プロパティへ移行できていないUAプロパティには、GA4プロパティが自動作成されている模様です

作成されていない場合は、画面の案内に従ってGA4プロパティを作成してください。
2. API設定
2-1. Google Analytics Data API 有効化
①Google Cloudにログインして、[コンソール]をクリックする
https://cloud.google.com/apis?hl=ja

②[対象プロジェクト]を選択してから、左メニューの[APIとサービス > 有効なAPIとサービス]をクリックする

③[APIとサービスの有効化]をクリックした後、表示された検索窓に”Analytics”と入力してEnterキーを押す


④検索結果一覧より、[Google Analytics Data API]をクリックした後、[有効にする]ボタンをクリックする

※類似するAPI名に注意

2-2. サービスアカウントの確認
①引き続き、Google Cloudコンソールの左メニューより[APIとサービス > 認証情報]をクリックする

②サービスアカウントエリアに既にUAで使用しているサービスアカウントがあるため、[メールアドレス]をメモしておく
※UAで使用していた認証情報をGA4でそのまま使用できます

2-3. サービスアカウント権限設定
①Googleアナリティクスにログインする
http://www.google.com/analytics
②左下メニューの[管理]をクリックし、
[対象のアカウント]と[対象のGA4プロパティ]を選択して、
[プロパティのアクセス管理]をクリックする

③画面右上の[+]ボタンをクリックすると出てくるリストより、[ユーザーを追加]を選択する

④”2-2. ②”でメモした[メールアドレス]を入力し、[新規ユーザーにメールで通知する]のチェックを外してから、
画面右上の[追加]ボタンをクリックする

2-4. プロパティIDの確認
①引き続き、Googleアナリティクスコンソールより、[プロパティ設定]をクリックする

②表示される[プロパティID]をメモしておく
※APIからデータを取得するときに使用します

サーバの設定(APIでデータ取得)
Google Analytics Data API を使用して、PHPでデータを取得できるようにします。
1. 環境インストール
①Googleパッケージをインストールする
【注意】PHP7.4以上でない場合はインストールに失敗するので、PHP7.4以上にアップデートしてから再度実行するようにしてください
composer require google/analytics-data
②PHPのbcmathパッケージがインストールされていない場合は、このパッケージもインストールしてください
yum install --enablerepo=remi,remi-php74 -y php-bcmath
※PHP7.4の場合のコマンド
2. PHPソースコードを作成
環境が整ったので、GA4からGoogle Analytics Data API でデータを取得するPHPソースコードを用意しましょう。
下記のサンプルは、”2023年9月”の”日付”、”国”、”地域”、”都市”毎の”PV数”と”セッション数”を取得して、結果を表示します。
※認証JOSNファイルパスとプロパティIDは環境に合わせて設定してください
<?php
require 'vendor/autoload.php';
// Google Analytics Data API
use Google\Analytics\Data\V1beta\BetaAnalyticsDataClient;
use Google\Analytics\Data\V1beta\DateRange;
use Google\Analytics\Data\V1beta\Dimension;
use Google\Analytics\Data\V1beta\Metric;
use Google\Analytics\Data\V1beta\OrderBy;
use Google\Analytics\Data\V1beta\OrderBy\DimensionOrderBy;
// Googleサービスアカウント認証
$credentials_json = '/xxx/xxxxxxxxx.json'; // UAで使用していた認証用JOSNファイルパスを指定
// プロパティID
$property_id = 'xxxxxxxxx'; // メモしたプロパティIDを指定
// Googleアナリティクスのデータを取得するAPIリクエスト
$client = new BetaAnalyticsDataClient([
'credentials' => $credentials_json,
]);
$response = $client->runReport([
//--------------------------
// プロパティIDの指定
//--------------------------
'property' => 'properties/' . $property_id,
//--------------------------
// 期間の指定
//--------------------------
'dateRanges' => [
new DateRange([
'start_date' => '2023-09-01',
'end_date' => '2023-09-30',
]),
],
//--------------------------
// ディメンションの指定
//--------------------------
'dimensions' => [
new Dimension([
'name' => 'date', // 日付
]),
new Dimension([
'name' => 'country', // 国
]),
new Dimension([
'name' => 'region', // 地域
]),
new Dimension([
'name' => 'city', // 都市
]),
],
//--------------------------
// 指標の指定
//--------------------------
'metrics' => [
new Metric([
'name' => 'screenPageViews', // PV数
]),
new Metric([
'name' => 'sessions', // セッション数
]),
],
//--------------------------
// ソート順の指定
//--------------------------
'orderBys' => [
new OrderBy([
'dimension' => new OrderBy\DimensionOrderBy([
'dimension_name' => 'date', // 日付でソート
]),
'desc' => false, // false:昇順, true:降順
]),
],
]);
// 取得結果表示
foreach ($response->getRows() as $row) {
// ディメンション(dimension)
print 'date: ' . $row->getDimensionValues()[0]->getValue()
. ', country: ' . $row->getDimensionValues()[1]->getValue()
. ', region: ' . $row->getDimensionValues()[2]->getValue()
. ', city: ' . $row->getDimensionValues()[3]->getValue()
. PHP_EOL;
// 指標(metric)
print ' --> screenPageViews: ' . $row->getMetricValues()[0]->getValue()
. ', sessions: ' . $row->getMetricValues()[1]->getValue()
. PHP_EOL;
}
?>
ディメンション(dimension)と指標(metric)は公式サイトを参考して必要なものを設定します。
https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema
3. 実行してデータ取得
作成したPHPファイルを実行してみましょう。
php get_ga4_data.php
date: 20230901, country: Japan, region: Tokyo, city: (not set)
--> screenPageViews: 101, sessions: 49
date: 20230901, country: Japan, region: Shizuoka, city: Hamamatsu
--> screenPageViews: 87, sessions: 71
date: 20230901, country: Japan, region: Aichi, city: Nagoya
--> screenPageViews: 33, sessions: 22
date: 20230901, country: South Korea, region: Busan, city: Busan
--> screenPageViews: 8, sessions: 8
date: 20230901, country: Japan, region: Hokkaido, city: Muroran
--> screenPageViews: 1, sessions: 1
:
:(中略)
:
date: 20230930, country: Japan, region: Osaka, city: Osaka
--> screenPageViews: 91, sessions: 86
date: 20230930, country: Japan, region: Tokyo, city: (not set)
--> screenPageViews: 91, sessions: 85
date: 20230930, country: Japan, region: Kyoto, city: Miyazu
--> screenPageViews: 55, sessions: 51
date: 20230930, country: Japan, region: Shizuoka, city: Hamamatsu
--> screenPageViews: 13, sessions: 13
date: 20230930, country: Japan, region: Kanagawa, city: Odawara
--> screenPageViews: 2, sessions: 2
指定したデータをGA4から取得することができました!
まとめ
Googleアナリティクスのデータ取得をUAからGA4に移行し、GA4からデータを取得する手順をまとめてみました。
まだ移行未対応という人は是非参考にしてみてください。
また、データ取得サンプルコードの設定値を変更すると様々なデータを取得することができるので、
必要に応じて変更してみてください。
関連記事
-
第1回 Visual C++で作成したDLL内のクラスをC#で利用する方法
こんにちは、ILCです。 Visual C++ (以下 VC++)で作成されたDynamic...
公開日:2024.01.19 更新日:2024.01.19
tag : Windows
-
-
-
第1回 ラズパイを使用したBLE通信 ~ ディスプレイ、キーボード、マウスを接続しないで設定 前編 ~
こんにちは、GTです。よろしくお願いします。 最近業務でラズパイのBluetooth機能を使...
公開日:2021.12.24 更新日:2021.12.24
tag : Bluetooth Raspberry Pi
-
【新機能探訪】Android 13から導入された『アプリごとの言語設定』
こんにちは、KNSKです。よろしくお願いします。 今回は Android13の新機能である『...
公開日:2022.12.09 更新日:2022.12.09
tag : スマートデバイス
-
第3回 ラズパイを使用したBLE通信 ~ A/D変換・D/A変換を用いた入出力編 ~
こんにちは、GTです。よろしくお願いします。 第3回の今回は、ラズパイの入出力についてご紹介...
公開日:2023.02.24 更新日:2023.02.24
tag : Bluetooth BLE Raspberry Pi