Unity
GoogleTagManager
Firebase

Unity(Android)でFirebase+GTMを使う

概要

Unity + Firebase + GTM(Google Tag Manager) on Android
の組み込みで非常に詰まったので
導入手順をログっておきたいと思います。

なおここでいうGTMは、タグを使ってGoogleAnalyticsに飛ばす用途で使用しています。

-閑話休題- 使えるかな?と思ったAsset

https://assetstore.unity.com/packages/tools/integration/google-tag-manager-25051

こちら買ってみたんですが、GTMで様々なconfigを設定して、
アプリを作り直さなくても更新ができるという点にフィーチャーしたアセットだったので
GTMでGAにログを送るという目的とはちょっと違うかなということで採用はしませんでした。

導入手順

FirebaseSDKの導入

https://firebase.google.com/docs/unity/setup?hl=ja
普通にインストールします。
google-services.jsonはUnity内のどこにおいてもいいようです。

GTMの導入

https://developers.google.com/tag-manager/android/v5/
用意されているドキュメントがNative Android用だけなので非常に詰まりました。

結果こちらの記事を参考にさせていただき
https://qiita.com/tkyaji/items/b838c97228f99f194bcd

GTMDependencies.cs
using Google.JarResolver;
using UnityEditor;

[InitializeOnLoad]
public static class GTMDependencies
{

    static GTMDependencies()
    {
        PlayServicesSupport svcSupport = PlayServicesSupport.CreateInstance(
                                             "tagmanager", EditorPrefs.GetString("AndroidSdkRoot"), "ProjectSettings");
        svcSupport.DependOn("com.google.android.gms", "play-services-tagmanager", "11+");
    }
}

上記のソースをEditorフォルダに入れることで
tagmanager関係のjarを取り込むことができました。

コンテナーの設置

Create the app/main/assets/containers folder if it doesn't exist. Copy the downloaded container to the folder.

コンテナーの置き場所ですが、こちらはStreamingAssets以下に
containerフォルダを作成しそちらにjsonファイルを置いたら無事読み込んでくれました。

Unity上での記述

Firebase.Analytics.FirebaseAnalytics.logEvent("hogeEvent", hogeParms);

こちらでイベントが発火できます。

検証方法

ターミナルでこの辺りを打つと、関係するログを出力してくれます。

adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb shell setprop log.tag.GoogleTagManager VERBOSE
adb logcat -v time -s FA FA-SVC GoogleTagManager

以上です。