Firebase AnalyticsのUnityプラグインを使ってみよう!

公開日:2016/11/14
更新日:2020/01/20

どうも。ゴン氏です。
FirebaseのUnity pluginが公開されましたね。
自分で作らなくてよかった。
英語物語にもAnalyticsを導入予定ですし、
せっかくなので、導入過程を記事化してみようと思います。
まずはAndroidからです。
作成日:2016年11月14日
対象:firebase_unity_sdk_1.0.0のFirebaseAnalytics.unitypackage
★★★★要点★★★★
①登録してから、データが反映されるまでに24時間かかる事があるらしいから、早めに登録しとこう。
②PlayServicesResolverで必要なJarをインストールしないといけないので、気をつけろ!デフォルトではOnになってないかも。
★★★★★★★★★★
●流れ
①サンプルアプリがAndroidで動くように頑張ろう!
②サンプルアプリを触って、何ができるのかと挙動を確認しよう!
③英語物語に導入しよう!
という感じでやっていきます。
【①サンプルアプリが動くように頑張ろう!】
★まずは、本家サイトを見ましょう。(下記にリンクも記載しますが、本家サイトのリンクを使うほうが良いです!)
https://firebase.google.com/docs/unity/setup
★サンプルを落としてみよう。analyticsの中にあるシーンを展開します。
https://github.com/firebase/quickstart-unity
あれ、コンパイルエラーが。SDKがサンプルアプリには入ってないからか。
SDKをDLして、FirebaseAnalytics.unitypackageを展開します。
https://dl.google.com/firebase/sdk/unity/firebase_unity_sdk_1.0.0.zip
コンパイルエラーはなくなったっぽい。
しかしSampleもSDKもあんまりイケてない気がしますね。
●フォルダ名には空白を使わないでほしい。
●一つの親フォルダの中に全部入れて欲しい。
●親フォルダはそのプラグイン独特の名前をつけといて欲しい。(たとえば、Firebase
screen-shot-2016-11-14-at-3-35-06-pm
No GoogleService-Info.plist file found in your project
というエラーが出てるな。
まあ、Firebaseのアカウントと紐付けろって事だよね。
本家サイトに戻って、それらしきドキュメントを探します。
★FireBaseのアカウントを作ります。
https://console.firebase.google.com/?pli=1
僕の場合は、既存のプロジェクトに紐付ける感じで作りました。
★Add Firebase to your Android appを押します
いい感じに入力して、進めると、google-services.jsonというファイルをDLさせてもらえるので、こいつをProjectの中に突っ込みます。
SHA-1については、このページを参考にしました。
https://developers.google.com/android/guides/client-auth
build.gradle の設定をしろと、言われますが、Unityだと別のやり方なので、無視します。
プレイしてみると、やはり、まだエラーが出る模様。きっとEditorだからに違いない。実機にDLしてみます。
★実機にDLしてみる。
Build SettingからプラットフォームをAndroidに修正し、
念のため、パッケージ名を修正した上で、本番用のkeystoreを使って、
ビルドしてみます。Script DebuggingをOnにして、シーンを追加するのも忘れないようにします。
ビルド通れ!ビルド通れ!ビルド通れ!ビルド通れ!ビルド通れ!
(開発者ならこの気持わかるよね?)
と念じた後、
よしビルド通った!と思ったら、
案の定強制終了が発生しました。
ログを見てみると、
android.os.DeadObjectException
というの悪さをしてるっぽい。
マニュアル読んでも解決法らしきものが書いてないので、
途方にくれつつ、ここからがプログラマの仕事だと割り切って、
勘を働かせる。
なんか、build.gradleの設定を飛ばしてるのが原因ではなかろうか。
UnityだとPlayServicesResolverでその辺の管理をしてるはず。
今まで経験だと、勝手にAndroid下のPluginの中に、必要なjarっぽいものを入れるはず。と思って見てみるが、やはり入ってない。
どうやって入れるんだっけな〜と記憶を遡り、
Assetメニューの中にPlay Service Resolverを発見。
Settingの中のBackgroundで勝手にインストールする的なものをOnにすると、何やら、確認ポップが現れ、同意すると、長い長いDLが始まった。フィリピンにいるからね。仕方ないね。
Firebase AnalyticsのUnityドキュメントでも読みながら待とうと思ったら、
OverViewに関連クラス一覧しか書いてないと嘆いていたら、
https://firebase.google.com/docs/reference/unity/namespace/firebase/analytics
Analyticsの方のページに色々説明がありました。
https://firebase.google.com/docs/analytics/unity/start
Events(とEvents毎に適切なParameter)
https://support.google.com/firebase/answer/6317485

User properties
https://support.google.com/firebase/answer/6317486
を理解すればいいっぽい。
イベント登録数 500
イベントに付与するパラメータ数 25
ユーザープロパティ登録数 25
ユーザーリスト登録数 50
その他にもこういう制限
そうこうしているうちにDLが完了し、それっぽいjar達がDLされる。
screen-shot-2016-11-14-at-4-29-57-pm
今度は強制終了がでませんようにと、願いながらBuild And Run!
よし!強制終了なし!
device-2016-11-14-165054
こんな感じの画面がAndroidに表示されました!
が、、コンソールを見てみても反映されてる感じはなし。
Realtime機能が無いと、確認がしにくくて、不便ですね。
またあとで、イベントが反映されてるか見てみましょう。
あ、どうやら、登録してから、開始するまでに最大24時間のラグがあるようだ。先に登録してればよかったOrz…
screen-shot-2016-11-14-at-5-23-16-pm
さて、そろそろ出来たかな?と思いきや、
変わらず、これは、データが遅れて無い臭いな。。

最終更新日:2020年1月20日