Firebase Analytics とは?
Google I/O 2016 で発表された、Firebase 拡張機能群のうちの1つです。
Google Analytics をモバイル向けに最適化したもので、特に「アプリの利用状況」と「ユーザーエンゲージメント」の監視に特化しているようです。 Android と iOS に対応していて、解析内容は専用の Firebase Console 上で確認できるようになってます。
Firebase Console
公式のドキュメントはこちら。
拡張された Firebase の概要は、このセッションが参考になりました。(英語ですがデモが多くて見やすいです。)
Firebase Overview - Google I/O 2016
Firebase Analytics の利点
ざっと触った中で、(主に Google Analytics と比較して)良かった点を挙げてみようと思います。
なお以下は、個人的な見解です。
1. 導入および実装がものすごく簡単
Firebase Analytics のセットアップは驚くほど簡単です。
この公式の手順通り進めていけば、特に迷うことは無いと思います。
ちなみにAnalytics は Firebase-Core に含まれているので、上記の共通手順を終えるだけで組み込むことが出来ます。
注意点
"通常はスムーズにセットアップ出来ると思いますが、1点だけ僕がハマったところがあります。
Firebase Console は Google Account でログインした状態で使用しますが、ブラウザに複数アカウントをログインさせてる状態だと、設定ファイル(google-services.json)のダウンロードに失敗するようです。
もしそういった状況になった時は、Firebase Console で使用しないアカウントをログアウトしてから、再度 Firebase Console にログインするとうまくいくようになりました。"
プラグインとライブラリをセットアップしたら、Analytics のセットアップ方法にあるように、 FirebaseAnalytics.getInstance(Context)
を Activity の onCreate()
などで呼ぶだけです。
必要なコードの追加は、ものすごく少ないです。
getInstance()
メソッドコール以降は、Analytics 側で自動でログを収集してくれるようです。
何を自動収集するかは、以下に書かれています。
収集されたイベントログ
Google Analytics で xml 書いたりログ送信処理書いたりしていたのが、嘘みたいな簡単さですね...
2. Web のダッシュボードが見やすい
下図のように、モバイルアプリに必要な項目に絞って各レポートが表示されており、とてもスッキリして見やすいです。 また、フィルターを組み合わせていけば、レポート表示をカスタムすることもできます。
個人的には普段 Android 端末メインなので、Console 全体が Material Design に沿って作られていることも良いなと思います。
Analytics ダッシュボード
まだ細かく触っていないので、どこまで詳細な分析ができるか未知数ですが、Google Analytics よりも操作は直感的に行えるように思えました。
3. 他機能との連携が強力
Firebase Analytics の真価は、他の機能と一緒に使うことで発揮されるようです。 具体的にはこのあたりに、どういった連携がなされるのかが書いてあります。
中でも Firebase Notifications は、関連するイベントが自動で記録されたり、下図のように「送信数(予測)」や「既読率」なども計測できるようです。
Notifications ダッシュボード
まとめ
Firebase Analytics は Google Analytics に比べると、シンプルでアプリに特化している分、使いやすくなっているなと思います。 加えて、導入も簡単で他の Firebase 機能との連携もあるなど、開発者視点だと今すぐにでも Google Analytics から移行したいほど、Firebase Analytics は良く出来ているなと感じました。
ただし、Web 的な指標がベースの Google Analytics とは、分析内容がかなり異なる部分もあります。そのため、もしその分析内容を共有しているメンバー(特に非エンジニアが含まれる場合)がいるようなプロダクトに投入したい場合は、しっかりと事前に検討が必要そうだとも思いました。
サンプルコード
この記事を書くにあたり、実際に Firebase Analytics と Firebase Notifications が動くサンプルアプリを、GitHub にアップしています。 とはいっても、本当に追加したコードは少ないので、ドキュメント見たほうが早いかもしれません...。