Firebase AnalyticsをAndroidアプリに導入する
自作アプリの解析には長らくGoogle Analyticsを使っていたんですが、せっかくなのでFirebase Analyticsを試してみることにしました。
セットアップ
公式サイトに書いてある通り、Android Studioに付属しているFirebase Assistantを使うのが簡単です。
メニューのTools -> Firebaseを選択し、あとは指示に従って進めればOK。特に迷うところもないかと思います。
試してみて気になった点がいくつか。
build.gradleのdependenciesセクションにfirebase-coreを追加してくれるんですが、そのときにセクション内を並べ替えてしまうようです。並び順にこだわりがある方は手動で元に戻しておきましょう。
また、firebase-coreのバージョンも要注意です。Android Studio 2.3.3で試したところ、
compile ‘com.google.firebase:firebase-core:10.0.1’
が設定されていました。最新は11.8.0なのでちょっと古いですね。
FirebaseのAndroid版リリースノートを確認して、バージョンが古いようならbuild.gradleを編集してバージョンを上げておきましょう。
イベントとユーザープロパティ
Firebase Analyticsではイベントとユーザープロパティを記録できます。イベントをロギングする | Firebaseとユーザー プロパティを設定する | Firebaseを元に整理してみます。
- イベント
- ユーザーの操作、システム イベント、エラーなど
- 一部のイベントに関するログは自動で記録される
- それ以外を収集する場合は最大500種類まで可能
- 自動で記録されるイベントは予約語扱いなので、独自イベントの名前には使えない
- ログの総量に制限はない
- ユーザープロパティ
- ユーザー層を示す属性のこと
- 一部のユーザー プロパティに関するログは自動で記録される
- 独自に定義する場合、Firebase コンソールで登録しないと有効にならない
ユーザープロパティはフィルタリング条件、イベントはユーザーアクション、という感じですね。
使い方
イベントとユーザープロパティ、どちらもFirebaseAnalyticsのシングルトンインスタンスを使って記録していきます。
FirebaseAnalytics firebaseAnalytics = FirebaseAnalytics.getInstance(this); // thisはcontext
// ユーザープロパティ
firebaseAnalytics.setUserProperty("property_foo_bar", "baz");
// イベント
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
イベントを記録するたびにBundleを組み立てるコードを書くのはイマイチなので、専用のユーティリティクラスを作るのがよさそうです。
参考URL
関連(するかもしれない)記事
おススメ