しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

FirebaseのデータをBigQueryに入れて分析する

Firebase単体だと見づらいデータが多いのでBigQueryに入れて分析してみました。
今回はFirebaseとBigQueryを連携して新規ユーザー数を取得するところまでやります。

ドキュメントは下URLになります。

Firebase 向け Google アナリティクスのデータを BigQuery にインポート  |  ソリューション  |  Google Cloud

BigQueryの料金

FirebaseとBigQueryの連携をする場合、まずはFirebaseをBlaze(従量課金)プランに上げる必要があります。
ただ、実際試したところSparkプランでもある程度動かす事ができました。
動かした感じ、無料プランだと制限付きBigQuery(サンドボックス)が適用されるのだと思います。

Firebaseの料金詳細は下URLの通りです。

firebase.google.com

BigQuery側の料金は下のとおりです。
ストレージ容量、クエリの容量などに応じた従量課金で一定まで無料で使う事ができます。

cloud.google.com

FirebaseをBlazeプランに変更

Blazeプランへの変更はFirebaseのプロジェクト画面左下の「アップグレード」ボタンから行う事ができます。

f:id:llcc:20191127144703p:plain

BigQueryとFirebaseの連携

連携はプロジェクト設定の「統合」から行う事ができます。

f:id:llcc:20191127144811p:plain

連携が完了すると下のようにBigQueryにプロジェクト、データセット、テーブルが作られます。
データの反映は半日 ~ 1日くらいかかる事があります。

f:id:llcc:20191127145627p:plain

BigQueryで新規ユーザー数を見る

まずは下のようなSQLでAnalyticsデータセットのテーブル一覧を取得します。
analytics_xxxxxxは自分の環境に置き換えて下さい。

SELECT * FROM analytics_xxxxxx.__TABLES__;

実行すると下のようにテーブル一覧が表示されます。

f:id:llcc:20191127150726p:plain

特定のテーブルのデータは下のようなSQLで取得する事ができます。

SELECT * FROM analytics_xxxxxx.events_20191126;

もし11月26日の新規ユーザー数を取りたい場合は下のようなSQLで取得する事ができます。

SELECT count(*) FROM analytics_xxxxxx.events_20191126 where event_name = "first_open";

複数日のデータをまとめて取りたい場合はテーブル名にワイルドカードを入れる事で実現できます。

SELECT event_date, count(*) FROM `analytics_xxxxxx.events_*` where event_name = "first_open" group by event_date;

データ容量ですがユーザーがほとんどいないプロジェクトでは1日20MB程でした。

f:id:llcc:20191129113832p:plain

ユーザー数も多くてイベントを大量に送っているプロジェクトでは2GB程ありました。

f:id:llcc:20191129113858p:plain