こんにちは。Androiderの梅津です。
最近、Firebaseが注目を集めていますね。 先日行われたGoogle for MobileでもFirebaseに関する多くのセッションがありました。 セッションを聞いているうちに何だか簡単そうだし面白そうだなーと思い、触ってみたくなりました。 というわけで今回はFirebaseの機能の一つ、Analyticsを触ってみたいと思います。
導入
まずはFirebaseを使うための準備をしていきましょう。
アカウント作成
Firebaseのプロジェクトを作るにはGoogleアカウントが必要になります。
Googleアカウントを作成して、ログインしておきましょう。
プロジェクト作成
Firebase Consoleへ行き、「新規プロジェクトを作成」というボタンを押します。
すでに Google API Console でプロジェクトを作っている場合、それらをインポートして使うことも可能です。その場合は、「またはGoogleプロジェクトのインポート」の方を押しましょう。
適当なプロジェクト名を入れましょう。
必要な項目を入力したら「プロジェクトを作成」というボタンを押します。
終わるとOverviewが表示されます。
アプリを追加
続いてAndroidアプリをプロジェクトに追加しましょう。
「Android アプリに Firebase を追加」 というところを押します。
パッケージ名を聞かれるので自分のAndroidアプリのパッケージ名を入れましょう。
今回はサンプルのアプリを作り、それのパッケージ名を入れました。
署名証明書はFirebaseのAuth機能などを使う時に必要になるようです。
今回は入力しませんが、必要に応じてこちらのページを参考に入力してください。
入力が終わったら「アプリを追加」ボタンを押します。
Androidアプリへの導入
アプリの追加が終わると、自動的に google-services.json のダウンロードが始まると思います。
あとは表示されている内容のとおりにAndroidアプリの設定を変更していってください。
Gradleの同期が無事に終わればFirebaseの導入は完了です。
Analyticsを使う
それではAnalyticsを使ってみましょう。
Analyticsの導入
Analyticsを使うには、app/build.gradleのdependenciesに次の一行を追加します。
dependencies { ... compile 'com.google.firebase:firebase-analytics:9.2.1' }
あとは FirebaseAnalytics#getInstance を呼び出すことで、Analyticsを使う準備は完了です。
final FirebaseAnalytics firebaseAnalytics = FirebaseAnalytics.getInstance(context);
イベントの送信
イベントを送信するには FirebaseAnalytics#logEvent メソッドを使います。
第一引数にイベント名、第二引数にパラメータとなるBundleを渡します。
次の例ではFirebaseAnalytics.Eventクラスにあらかじめ用意されているイベント名を使いました。
パラメータは必要ないのでnullを渡しています。
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.APP_OPEN, null);
次にパラメータを渡す例も見てみましょう。
final Bundle bundle = new Bundle(); bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "1234"); bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "special_item"); bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image"); firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
Bundleを使ってパラメータを詰めていきます。
イベント名の時と同様、いくつかのパラメータ名があらかじめ用意されています。
使うパラメータ名によって、どのBundleのメソッドを使うかが決まっているようです(FirebaseAnalytics.Param.ITEM_IDならBundle#putStringを使うとか)。
詳しくはドキュメントを確認してください
カスタムイベント
ここまではあらかじめ用意されたイベントやパラメータを使ってきましたが、任意のイベント名などを使うことも可能です(使える文字や文字数の上限などが決まっています)。
FirebaseAnalytics.Event, FirebaseAnalytics.Param
final Bundle bundle = new Bundle(); bundle.putString("user_name", "umetsu"); bundle.putLong("height", 165); firebaseAnalytics.logEvent("custom_event", bundle);
カスタムイベントを使うにあたって注意したい点があります。
それはカスタムイベントを送信した場合、WebのFirebase Consoleからはどういったパラメータが付与されていたかが確認できないという点です。
例えば、先ほどの例の user_name や height といったパラメータはFirebase Consoleからは確認できませんでした。
BigQueryと連携すれば確認できるらしいのですが、なんでわざわざそんな事をしないといけないんだろう?というのが正直な感想です。
この先、Firebase Consoleからパラメータを詳しく見れるようになると嬉しいですね。
自動的に収集されるイベントについて
Firebase Analyticsでは導入するだけで収集されるイベントがあります。例えば次のようなものです。 * ユーザーが初めてアプリを開いた(first_open) * アプリが新しいバージョンに更新された(app_update) * FCMによって送信された通知をユーザーが開いた(notification_open)
他にもいくつかのイベントが自動的に収集されます。
詳しい内容はドキュメントをご参照ください。
おわりに
いかがだったでしょうか?
最初のFirebaseの準備をする部分が少し手間かもしれませんが、準備が終わってしまえばAnalyticsを使い始めるのはとても簡単でしたね。
入れるだけで自動的に収集してくれるイベントもあるので、とりあえず導入して様子を見てみるのもアリかもしれません。
Firebaseには他にも強力な機能が沢山あるので、機会があればそれらについても触っていければと思います。
それでは、また。