読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

Firebase + Bigqueryを使いデータ解析

前書き

この記事はFirebase Advent Calendar 2016の12/23の記事です
qiita.com

概要

FirebaseにはデフォルトでFirebase Analyticsという解析機能がある
Firebase Analytics  |  Firebase

いろいろFirebase Analyticsには機能があるがイベント機能がよくつかわれる
Firebase Analyticsはユーザーがどのような操作をしているかに絞っているため、ga的な使い方をしようとすると面倒くさいことがある
例えば反映時間が少し遅かったり、デフォルトに設定されているタグ以外を使うとイベントに設定されている値が取得できない、イベント発生日時が取得できない、など
developers-jp.googleblog.com

デフォルトで使えるタグ
イベント: すべてのアプリ - Firebase ヘルプ

タグの設定問題は一応解決策はあるが、ユーザーの振り分け的な使い方なのでちょっと感じが違う
ユーザーリスト - Firebase ヘルプ

この問題を解決するためにBigqueryを同時に使いデータ解析を効率的に行う

詳細

Firebase Analyticsでイベントを取得

iOS
イベントのログを記録する  |  Firebase
Android
イベントのログを記録する  |  Firebase

取得されたイベントはこのように表示される
f:id:tiro105:20161223230840p:plain

ちなみにデフォルトで使えるタグはこのように表示される(この場合は値を設定してないためvalueがnullのみ)
f:id:tiro105:20161223230925p:plain

Bigqueryとの連携

Bigqueryと連携することにより、より詳細なデータを取得する
BigQuery と Firebase をリンクする - Firebase ヘルプ


余談だが、gcpは三ヶ月間無料で、無料が終わってもそれほど価格は高く無い
が、やっぱりクラウド死の可能性はあるので注意

BigQueryで150万円溶かした人の顔 - Qiita

テーブル構造は以下のようになる
BigQuery Export のスキーマ - Firebase ヘルプ
テーブル構造を見てわかるように、かなり詳細にユーザーデータが格納されるので欲しいデータはたいていある

またFirebase Analyticsと違い20分ほどでイベントが確認できるため、動作確認や詳細なデータ解析の際には非常に役にたつ
Google Developers Japan: BigQuery への Analytics データ リアルタイム エクスポートについてのお知らせ

Bigqueryの使い方は以下を参照
Google BigQueryの新機能 Standard SQLまとめ - VASILY DEVELOPERS BLOG
Standard SQLを使う方がベター

またBigqueryを使うとGoogle SpreadsheetやGoogle Cloud Datalab, Google Data Engine, re:dashなどでデータを解析できるようになる
データを視認する場合にも非常に役にたつ
Google Cloud Datalab
Quickstarts  |  Google Cloud Datalab  |  Google Cloud Platform

re:dash
Re:dash を GCE で試してみた - えいのうにっき

Google Data Studio
Easily Build Custom Reports and Dashboards - Google Data Studio – Google
Video tutorials - Data Studio (Beta) Help

Google spreadsheet
BigQueryを簡単にグラフにするGoogle Apps Script : TORETA(トレタ) ブログ

Bigqueryにさえ接続してしまえば様々なツールで簡単に解析できるので是非Bigqueryを使いましょう