Google Analytics for Firebase・BigQueryによるデータ計測の概要
この記事では、データ計測・エクスポートに関わるGoogle Analytics for Firebase(以下Firebase)の仕様について記載しています。既にFirebaseの運用経験がある方は、この記事を飛ばしていただいても構いません。
FirebaseはUSERGRAMとは別個のサービスであるため、USERGRAMでは本記事の内容の正確性を完全に保証することはできません。アプリへの実装を行う際は、必ずFirebaseのドキュメント・および本サイトの「データ連携設定(アプリ計測)」を参照し、詳しい仕様や実装方法を確認してください。また、Firebaseの仕様に関するご質問は、Firebaseのカスタマーサポートまでお問い合わせください。
Firebaseでの用語の定義
Firebaseに登場する用語の定義についての概要です。詳しい定義はこの後の記事や、Firebaseの公式ドキュメントを参照してください。
用語 | Firebaseでの意味 |
イベント | ユーザの特定の行動(ボタンタップ・画面遷移・プッシュ通知開封など)1つごとの単位。Firebaseで計測される行動の最小単位。それぞれのイベントは名前を持っている。 |
イベントパラメータ | Firebaseイベントと共に計測できるデータ。名前と値からなる。USERGRAMでは、コンバージョン・イベント属性や、プッシュ通知・リンク起動の際の属性として、イベントパラメータの値を表示することがある。判定また、イベントパラメータには自動で計測されるものと自由に名前・値を設定できるものがあり、後者をカスタムパラメータと呼ぶこともある。 |
ユーザプロパティ | Firebaseイベントと共に計測できるデータ。名前と値からなる。USERGRAMでは、コンバージョン・イベント属性や、プッシュ通知・リンク起動の際の属性として、ユーザプロパティの値を表示することがある。また、ユーザプロパティには自動で計測されるものと自由に名前・値を設定できるものがあり、後者をカスタムプロパティと呼ぶこともある。 パラメータとは異なり、一度設定すると、(値を変更するまでは)その後の全てのFirebaseイベントとともに計測される。 |
また、一部の用語はUSERGRAMにおいて異なる意味で使われているため、USERGRAMでの定義の概要も併記します。USERGRAM内での用語の詳しい定義や、データの判定条件の詳細については、「データ連携設定(アプリ計測)」の記事を参照してください。
用語 | Firebase | USERGRAM |
イベント | Firebaseで計測されるあらゆる行動(ボタンタップ・画面遷移・プッシュ通知開封など)。全ての行動は、Firebaseイベントを最小単位として計測されている。 | USERGRAMで表示する行動データの種類の1つ。他に「スクリーンの閲覧」や「コンバージョン」等、複数種類の行動データがある。USERGRAMは、計測されたFirebaseイベントを確かめ、それがスクリーンの閲覧・イベント・コンバージョン等のどれにあたるかを判定する。 |
Firebaseでイベント・イベントパラメータを取得する
Firebaseでは、計測対象のアプリにFirebase SDKを導入することで、アプリ上の行動を計測できます。ユーザの行動は、特定のアクション(ボタンタップ・画面遷移・プッシュ通知開封など)1つごとにイベントとして計測されます。
イベントには大きく分けて2種類あります。
- 自動で取得されるイベント: Firebase SDKによって自動で取得されます(ただし、別途設定や実装が必要なものも一部あります)。どのようなアクションをどのようなイベント名として計測するかは、全てFirebase SDKによって決められており、変更はできません。また、自動で取得されるイベントと同じ名前のイベントをカスタムイベントとして計測することもできません。
- 例: 初回起動・アプリ削除等
- 自動で取得されるイベントの詳細は、Firebaseのドキュメントをご覧ください。
- カスタムイベント: アプリ上の任意のアクションを、任意のイベント名で計測することができます。ただし、アプリ上で特定のアクションが起こったときにそのカスタムイベントが計測されるよう、アプリに実装を追加する必要があります。iOS(Swift)やAndroidではlogEvent()メソッドで、iOS(ObjectiveC)ではlogEventWithName()メソッドで計測することができます。よく使われるカスタムイベント名は、Firebase SDKによってあらかじめ定数が用意されています。カスタムイベントの文字数は40文字までです。
また、カスタムイベントにはイベントパラメータをつけることができます。イベントパラメータは名前と値から構成され、任意の名前と値を設定できます。例えば、以下のように1つのカスタムイベントと複数のイベントパラメータを一緒に取得することもできます。
イベント名 | パラメータの名前 | パラメータの値 |
member_apply | gender | 男 |
age | 25 | |
location | 東京都 |
ただし、Firebase SDKによって自動で取得されうるイベントパラメータ名や、先頭に"firebase_", "google_", "ga_"がつくパラメータ名は、カスタムイベントのパラメータの名前として使うことはできません。
パラメータ名は40文字まで、パラメータの値は100文字までです。パラメータは1つのイベントに25個までつけることができます。
カスタムイベントやイベントパラメータ取得の詳細は、以下のFirebaseのドキュメントをご覧ください。
Firebaseでユーザプロパティを取得する
ユーザに関する情報は、ユーザプロパティとして計測できます。イベントパラメータが1つのカスタムイベントに紐づくものであるのに対し、ユーザプロパティはユーザに紐づく静的な情報です。そのため、ユーザプロパティをセットすると、次に取得されるイベント以降、ユーザプロパティの値が継続的に計測されます。なお、ユーザプロパティの値は変更することもでき、その後は変更後の値が継続的に計測されます。
ユーザプロパティも、一部自動で取得されるものもありますが、基本的にはイベントパラメータと同様に任意の名前と値を設定できます。例えば、プロパティ名を”gender”, 値を”男”のように設定することができます。ユーザプロパティを設定した時点ではFirebaseイベントは計測されませんが、それ以降に計測されたFirebaseイベントからはこのユーザプロパティも自動で計測されるようになります。
ユーザプロパティの名前は24文字まで、値は36文字までです。ユーザプロパティは、1つのFirebaseプロジェクト内で25個まで使用できます。
なお、Firebase SDKによって自動で取得されうるユーザプロパティ名は、新しいユーザプロパティの名前として使うことはできません。
ユーザプロパティについての詳細は、 Firebaseのドキュメントをご覧ください。
Firebaseでオプトアウトを実装する
ユーザに Firebase 計測のオプトアウト機能を提供する場合は、データ収集可否をアプリ内でユーザに選択させ、
その選択肢に応じてデータ収集の有効化/無効化を切り替える実装を行う必要があります。
※Firebaseでのデータ収集を無効化しますと、そのユーザのデータは Firebase 上に記録されなくなります
具体的な実装方法は Firebase のドキュメント をご参照ください。
BigQueryへのエクスポート
Blazeプランを利用している場合、Firebaseで計測されたデータはBigQueryへエクスポートされます。データのエクスポートは1日1回であり、およそ1日分のデータがエクスポートされます。(ただし、エクスポートが行われる正確な時刻は保証されていません)
エクスポートされるデータの形式
エクスポートされたデータは、Firebaseで計測されたイベント1つごとに1行となります。各イベントとともに計測されたパラメータも同じ行に含まれます。また、ユーザプロパティは値がセットされて以降の全ての行に含まれます。
エクスポートされるデータの詳細なスキーマは、 Firebaseのドキュメントを参照してください。
ただし、USERGRAMの画面で上記ページ内の全てのフィールドが表示されるわけではありません。(USERGRAMにデータを表示するための実装・設定については 「データ連携設定(アプリ計測)」の記事をご覧ください)
エクスポート先のBigQueryのプロジェクト・データセット・テーブル
BigQueryのプロジェクト・データセット・テーブルは、それぞれ以下のように作られます。
BigQuery | 名前のパターン | 詳細 |
プロジェクト | <Firebaseのプロジェクト名> | Firebaseのプロジェクトごとに、BigQueryのプロジェクトが作られます。 |
データセット | analytics_<Firebaseプロジェクトのproperty id> | Firebaseのプロジェクトごとに、BigQueryのデータセットが作られます。1つのFirebaseプロジェクト内で複数種のアプリ(例えばiOS版とAndroid版等)を計測していても、BigQueryデータセットは1つのみ作られます。 |
テーブル | events_<データの日付> | 原則として日付単位でテーブルが作られます。1つのFirebaseプロジェクト内で複数種のアプリを計測していても、日付が同じデータは1つのテーブルにまとめてエクスポートされます。 |
エクスポートの詳しい設定方法は、 Firebaseのドキュメントを確認してください。