[unity2019]Firebase Analytics でユーザーのプレイ状況を確認する

ストアにアップロードしたアプリ、ダウンロード数だけではなくプレイヤーがどのくらいプレイしたか(例えば、どのステージまでプレイしたか、レベルいくつまで上げたか、など)確認したい。

そんな時に使うと便利なのが Firebase Analytics です。

なお、Firebase には他にも便利な機能が色々あるので、興味があればこちらもご覧ください。

Firebase フェーズ

Firebase の登録

最初のセットアップはどの機能でも共通です。詳しくはこちら。

Analytics

Analytics は特に有効にする必要はありません。Events が確認画面です。

設定ファイルをダウンロード

「設定ファイル」をダウンロードします。
2つのファイルは、この後作成する unity プロジェクトに含めるので、取っておいてください。

左上の歯車 - プロジェクトを設定

2つのファイルをダウンロード

unityフェーズ

基本的にはこちらの記事と一緒です。今回は dotnet4/FirebaseAnalytics.unitypackage をインストールしてください。
また、設定ファイルを忘れずにいれておきましょう。

実行環境の用意

2つのボタンを用意し、クリックしたら実行されるようにしてください(ClickAnalyticsClickAnalytics2)。
コードは適当な GameObject にアタッチしてください。

using UnityEngine;
using Firebase.Extensions;

public class sample : MonoBehaviour
{
    void Start()
    {
        // 初期化
        Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(
            task =>
            {
                var dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
                }
                else
                {
                    Debug.LogError($"Could not resolve all Firebase dependencies: {dependencyStatus}");
                }
            });
    }

    public void ClickAnalytics()
    {
        Firebase.Analytics.FirebaseAnalytics.LogEvent("test_log");
    }

    public void ClickAnalytics2()
    {
        Firebase.Analytics.FirebaseAnalytics.LogEvent("test_log2");
    }
}

Firebase 確認フェーズ

Analytics で少々難しいのが「ログが即サーバーに反映されるわけではない」点です。

私が確認した時は半日くらい遅れて情報が反映されていました。
(最大24時間くらい遅れることもあるようです)

app_open first_open など Firebase が自動的に作成しているシステム情報も表示されます。

一度登録されたログが消せないのが難点ですが、「コンバージョンとしてマークを付ける」をONにすると、マークがONのものだけ確認できるようになります。

システム情報は勝手にONになっているようです

Analytics を即確認したい(DebugView)

実行した情報が正しく反映されるか半日以上待ってるのは辛い…。
そこで、デバッグにしか使えませんが即反映される方法も紹介しておきます。

Android

adb.exe を実行する

まず、Android 実機を繋いだ PC で、コマンドプロンプト(管理者)から adb.exe を次のように実行してください。

adb shell setprop debug.firebase.analytics.app XXX.XXXXXX.XXXXXX(アプリのバンドルID)

adb.exe のあるパスはマシンのインストール状況で違うと思います。
私の場合はあらゆる場所に adb.exe がありましたが…Android Studio インストール時のものと思われる adb.exe を使用しました(パスが短いので紹介しやすかった)。

アプリのバンドル名は一字一句ミスのないようにしてください(ミスがあると、DebugView は使えません)。

色々インストールしたせいか、adb.exe が大量に

*daemon started successfully と表示されたら成功ですが、アプリのバンドル名が正しくなくても成功するので注意。

iOS

iOS の方が設定は簡単です。XCode でメニューから Product - Scheme - Edit Scheme

オレンジ枠の部分に -FIRAnalyticsDebugEnabled を追加

この状態で実行。

インストール&実行

Unity からテストプロジェクトを起動し、実機にビルド&インストール、テストボタンを押します。

一度、プロジェクト開きっぱなしでは上手くいかなかったことがあるので、adb コマンドを使う場合はプロジェクトを一旦閉じるようにしています。

DebugView を確認する

数分すると、「デバッグで使用するデバイス」に実行中のデバイス名が表示されます。

この状態でテストボタンを押し、ログが表示されれば「Events(Analytics) にも、時間がかかるが登録される」、と思ってよさそうです。

上手くいかない場合は実機や UnityPC(Mac) の再起動なども挟み、もう一度試してみてください。

テストが終わったら設定を戻しておく

DebugView の表示をオンにしていると、Events には情報が反映されないため、DebugView の確認が終わったら必ずオフに戻しておきましょう。

Android

adb shell setprop debug.firebase.analytics.app .none.

iOS

設定したフラグを消す

データの正確性

DebugView で確認したところ、iPhone は特に取りこぼしがありませんでしたが、Android は結構ありました。機種が悪いのか、3 割くらいは取りこぼしてるような…。
Events で同じくらい取りこぼすかは、実験していないのでなんとも言えません。

そんなわけで、Analytics はお手軽ですが、正確性が大事であれば Database を使ったほうがよさそうです。用途に応じて使い分けてください。

よろしければ Twitter をフォローしてもらえると嬉しいです!

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA