GA4のイベントサマリーレポートにおいて、レポート期間を1日前に指定しレポートを参照すると、(other)というイベントが多く確認できます。この事象はアプリ(Webサイトの計測ではなく)で起きることが多いです。
UA(Universal Analytics)においても、悩まされてきた レポート上の(not set) や (other) について部分的な情報となりますがまとめていきたいと思います。今回は (other)について。
1. GA4のレポートに(other)が表示される理由
前者の「仕様①」はUAでも同じ仕様がありました。
後者の「仕様②」はUAとGA4の違いになります。GA4ではデータ送信のレイテンシを考慮した集計タームになっており、1日毎にセッションを切って集計するUAとGA4では此処が異なります。
2. データ送信は1時間毎のバッチ処理になっている
前項の後者の「仕様②」はアプリを含むマルチデバイスの集計プラットフォームであるGA4には、必要な仕様だと思います。アプリは、以下の2つのことに注意しないといけません。
細かいデータ送信処理については、触れませんが、どのような処理をしているかというと、アプリのGA4データはクライアントライブラリが1時間毎にローカルデータの有無を確認して、まとめてデータ送信(バッチ処理)されています。
※iOSデバイス(およびGoogle PlayサービスのないAndroidデバイス)では、この1時間タイマーはアプリ毎ですが、Google Playサービスを搭載したAndroidデバイスでは、この1時間毎のデータ送信タイマー処理をGA4を使用するすべてのアプリを対象にGoogle Playサービスが纏めて行っております。
しかし、以下の特別な場合は、GA4は即座にデータ送信をします。
3. GA4のデータの更新頻度
データの更新頻度とは、GA4がデバイスからのイベントの取集と処理に要する時間のことを指します。
データの更新間隔は以下のように定義されているようです。
※GA4は有料版のプロパティと標準版のプロパティでデータの更新間隔を、おおよそ以下の通りとしております。
利用しているサービスレベルと見るレポートによって表示されるレポートの処理時間は変わってくるようです。多くの一般的なサイズ(すべてのプロパティサイズ)であれば、12時間位という事でしょうか。また、1分未満に処理されるリアルタイムレポートもUAとは変わってきています。
※GA4の非標準のデータ処理を伴う機能
以下のGA4の機能は、一般的なデータ処理サービスレベルの対象外とのことです。
正直複雑です。
当日の速報をレポートしてほしいといわれた際に、どのように対応すべきか検討がついていません。。
4.まとめ
GA4レポートに(other)というレコードが表示される、理由は大きく以下の2つになります。
そして、2つ目のレポート表示のレイテンシ(遅延)には、以下の要素が関係してきます。
GA4から一部のレポートでは残っているがセッションという概念を排除したため、UAはアクティブなユーザ(セッションが維持されている)というリアルタイムレポートになっているが、GA4では、過去1分毎のユーザー数と30分間のユーザーの行動合計レポートがいくつか準備されている。GA4のリアルタイムレポートに慣れていないだけかもしれませんが、30分間の合計値ランキングのため、徐々にどのように何が増えていっているのか視覚的に情報を捉えることが出来ないため、なかなかリアルタイムレポートを活用できていません。
もし、GA4のレポート表示のためにデータ処理にかかる数時間を待っていることが出来ない場合、BigQueryに蓄積されている、events_intradayテーブルを直接参照しに行く必要があるかもしれません。
Webサイトのデータは数10秒前のデータを確認することが出来ます。お気に入りのリアルタイムレポートや当日、前日用のレポートを独自に準備をしないといけないかもしれません。GA4のリアルタイムレポートに世の中が慣れるまでは。
events_intradayテーブルの参照クエリー例です。
user_pseudo_id(もしくは取得しているのであればuser_idで)ユーザーを一意に特定して、直近のトラフィックを確認することができます。
SELECT
event_timestamp,
CAST(FORMAT_TIMESTAMP('%Y-%m-%d %H:%M:%S', TIMESTAMP_MILLIS(CAST(event_timestamp/1000 AS INT64)), 'Asia/Tokyo') as DATETIME) AS jst,
event_name,
platform,
(SELECT value.string_value FROM UNNEST(event_params) AS params WHERE params.key = 'page_location') AS string_value_page_location
FROM
`******.analytics_*****.events_intraday_2022****`
WHERE user_pseudo_id='XXXXXXXXXXXX'
-- WHERE user_id='YYYYYYYYYYY'
ORDER BY event_timestamp DESC
LIMIT 10
※event_server_timestamp_offsetは無視しています。Firebase BigQuery server offset timeを参照
コメント