
Firebase イベントトラッキングと BigQuery 連携
Firebase は、ユーザーインタラクション、アプリライフサイクルイベント、カスタム定義のイベントなど、さまざまなアプリイベントを Firebase Analytics を通じてトラッキングします。これらのイベントは Firebase のリアルタイムデータベースまたは Firestore に保存され、その後詳細な分析とレポーティングのために BigQuery にエクスポートされます。
BigQuery との連携により、クエリと分析が可能な標準化されたスキーマでイベントデータを保存できます。
Firebase イベントトラッキング
1. イントラデイ Firebase イベントデータ
-
定義:
イントラデイイベントデータは、Firebase から BigQuery にほぼリアルタイムでエクスポートされます。生成されたイベントデータをキャプチャし、一時的な events_intraday_* テーブルに書き込みます。
-
特徴:
- これらのテーブルのデータは最終版ではなく、変更される可能性があります(例: 遅延到着イベントや更新)。
- 同日のイベントトレンドのリアルタイムモニタリングと分析に便利です。
- 通常、日末エクスポートが完了すると置き換えまたは上書きされます。
2. 日末 Firebase イベントデータ
-
定義:
日末イベントデータは、(今日 - 2日)より前の任意の日の最終的なイミュータブルなデータセットで、Firebase から BigQuery にエクスポートされます。日付をサフィックスとした events_* という名前の新しいテーブルに書き込まれます(例: 2025年1月8日の場合は events_20250108)。
-
特徴:
- イミュータブル: 一度書き込まれると変更できず、データの整合性と信頼性が保証されます。
- 遅延到着や更新されたイベントを含む、特定の日に発生したすべてのイベントを集約します。
- 履歴分析とレポーティングに適しています。
- 日次アクティビティの完全で一貫した記録を維持するのに役立ちます。
Firebase のエクスポート処理
- Firebase はイントラデイテーブルをリアルタイムで自動更新し、各日の終了後にデータを日末テーブルに書き込んで確定します。
- パーティショニング:
- 日末テーブルは効率的なクエリのために event_date でパーティションされます。
- イントラデイテーブルは一時的なものであるため、通常パーティション構造に従いません。
BigQuery へのエクスポート
Firebase Analytics は、統合時にイベントデータを自動的に BigQuery にエクスポートします。イベントは BigQuery テーブルに保存され、スキーマは効率的なクエリとレポーティングを可能にする標準化されたフォーマットに準拠します。スキーマには、イベントレベルのデータとユーザーレベルの情報の両方のキーフィールドが含まれます。
Auxia が Firebase データを BigQuery と統合するアーキテクチャ

標準 BigQuery スキーマ
以下は、Firebase がアプリイベントデータを BigQuery にエクスポートする標準スキーマです。
テーブル取り込みガイドライン
ビューではなくテーブルを共有
BigQuery テーブルをビューの代わりに共有することを推奨します。コスト効率、リアルタイムデータアクセス、ワークフローの効率性の面で大きなメリットがあります。
- コストと効率: テーブルへの直接アクセスにより、増分データを処理できるため、コストと処理時間を削減できます。ビューではデータセット全体の処理が必要で、時間とコストがかかります。
- リアルタイムデータ: 直接アクセスにより、最新のデータで作業でき、より迅速な意思決定が可能になります。
- 効率性: テーブルを使用することで、正確でタイムリーなレコメンデーションを提供し、新しいパーソナライゼーションフィールドをシームレスに統合して、ユーザーエンゲージメントを向上させることができます。
要約すると、テーブルへの直接アクセスにより効率性、リアルタイム分析、パーソナライゼーションが向上し、より効果的なコラボレーションにつながります。
'enable_change_history=TRUE' の設定
取り込むテーブルごとに enable_change_history=TRUE を設定する必要があります。以下のコマンドを実行してください。
-- Remember to swap 'your-table-name' with the name of your BigQuery table
ALTER TABLE `your-table-name`
SET OPTIONS(enable_change_history=TRUE);
これは、Auxia が効率的でリアルタイムな特徴量作成のためにデータを増分的に取り込む際に、'CHANGES' テーブル値関数または 'APPENDS' テーブル値関数を使用するために必要です。
Auxia との BigQuery データセット共有ガイドライン
BigQuery データセットを Auxia と共有する方法の詳細については、Auxia の Google BigQuery 統合ドキュメントをご参照ください。