Firebaseのevents_YYYYMMDDのタイムゾーンと変更タイミング
Firebaseの行動ログデータ
Firebaseの行動ログデータはBigQueryのevents_YYYYMMDD
テーブル、当日のデータはevents_intraday_YYYYMMDD
に記録されている。
当日のデータからevents_YYYYMMDD
テーブルが作成される。
疑問と回答
ここでFirebaseのテーブル「events_YYYYMMDD
」に関していくつかの疑問がわく。
- ①
events_YYYYMMDD
テーブルはevents_intraday_YYYYMMDD
テーブルから、いつ作られるのか? - ②
events_YYYYMMDD
テーブルとカラムevent_date
のタイムゾーンはなんなのか?
これらの疑問は、例えばBigQueryのデータをSnowflakeなどの別なデータウェアハウスにETLする場合などに重要になってくる。
一体どの日付の範囲までデータが変更されるのかを知って、その変更もETLし続ける必要があるからだ。
この疑問を解消するべく、Firebase公式にメールで確認してみると返信をいただくことができた。
[1] When is events_YYYYYYMMDD created from events_intraday_YYYYYYMMDD? I would like to know the time frame in hours, not in days, if possible.
As stated in the documentation, a full export of data takes place once a day. Daily export tables (events_YYYYMMDD) are created after Analytics collects all of the events for the day which means the daily table is created at the end of the day and updated two times at the end of each consecutive day for the next two days. This is in line with Google Analytics's 72-hour wait time for late arriving events.
[2] How is the time zone determined for the table name YYYYYMMDD and column event_date? I read the document(https://support.google.com/analytics/answer/9358801?hl=en), and I thought the timezone is determined from the timezone setting of the GA4 property associated with the Firebase app. Should I check the timezone setting of the GA4 property(<analytics.google.com>) rather than the timezone setting of the Firebase app(<console.firebase.google.com>)?
Yes, that is correct. The time zone is decided by the time zone setting of the GA4 property associated with the app.
(日本語訳 by DeepL)
[1] events_intraday_YYYYYYMMDDからevents_YYYYYMMDDはいつ作成されますか?できれば、日単位ではなく時間単位で知りたいです。
ドキュメントにあるように、データの完全なエクスポートは1日に1回行われます。デイリーエクスポートテーブル(events_YYYYMMDD)は、アナリティクスがその日のすべてのイベントを収集した後に作成されます。つまり、デイリーテーブルはその日の終わりに作成され、その後2日間、連続する各日の終わりに2回更新されます。これは、Googleアナリティクスの到着が遅いイベントに対する72時間の待機時間と一致しています。
[2] テーブル名YYYYYMMDDとカラムevent_dateのタイムゾーンはどのように決定されますか?ドキュメント(https://support.google.com/analytics/answer/9358801?hl=en)を読みましたが、タイムゾーンはFirebaseアプリに関連付けられたGA4プロパティのタイムゾーン設定から決定されると思いました。Firebaseアプリのタイムゾーン設定(<console.firebase.google.com>)ではなく、GA4プロパティ(<analytics.google.com>)のタイムゾーン設定を確認すべきでしょうか?
はい、その通りです。タイムゾーンはアプリに関連付けられているGA4プロパティのタイムゾーン設定によって決定されます。
以上より、
①は時間単位でいつできるのかは書かれていないが、1日の終わりに作られ、続く2日間の終わりに更新が行われる。
公式ドキュメントにある通り、イベント発生から3日間(72時間)はデータが追加・変更できるようにするためであろう。
②は、Firebaseアプリのタイムゾーン設定ではなく、アプリに紐づいたGA4プロパティのタイムゾーン設定によって決まる。
Firebaseのデータなのだから、Firebaseアプリのタイムゾーン設定によりそうだが、そうではない。
例: GA4プロパティのタイムゾーンがJSTの場合
タイムゾーンはどこになるのか?
- JST: BigQueryのテーブル名内の日付(
events_YYYYMMDD
のYYYYMMDD
) - JST: BigQueryのテーブルの
event_date
カラム - UTC: BigQueryのテーブルの
event_timestamp
カラム
events_YYYYMMDDテーブルのデータはいつまで変更されるのか?
またFirebaseの仕様で、event_date
〜 (event_date
+ 3日)の間はデータは追加・変更される可能性がある。
例えば、events_20240325
テーブルには2024年3月28日まではデータの追加・変更があり得る。
Discussion