※ これは 2021/04/09 時点の Unity 2020.3.3f1, Xcode 12.4, Firebase v7.1.0 の情報です
最新版では動作が異なる可能性がありますのでご注意ください
前回は AdMob 利用時の iOS 14 ATT 対応の手順を確認したので、今回は利用状況分析ツールで便利な Firebase の対応を試す
スポンサードリンク
例によって Firebase 自体の導入手順は 公式サイト をはじめいくらでも紹介されていると思うので省略
といってもやることはスクリプトを用意するだけで済みそう
下記のような AnalyticsService.cs
を追加
using System.Threading.Tasks; using Firebase.Analytics; /// <summary> /// 利用状況分析サービス /// </summary> public class AnalyticsService { /// <summary> /// 初期化 /// </summary> /// <param name="isTrackingEnable">ユーザー情報収集許可フラグ</param> public async Task InitilizeAsync(bool isTrackingEnable) { var result = await Firebase.FirebaseApp.CheckAndFixDependenciesAsync(); if (result != Firebase.DependencyStatus.Available) { // Firebase 無効 return; } // ユーザー情報の収集切り替え FirebaseAnalytics.SetAnalyticsCollectionEnabled(isTrackingEnable); FirebaseAnalytics.SetUserProperty( FirebaseAnalytics.UserPropertyAllowAdPersonalizationSignals, isTrackingEnable ? "YES" : "NO"); Firebase.FirebaseApp.LogLevel = Firebase.LogLevel.Error; FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLogin); } }
次に Bootstrap.cs
を修正
using UnityEngine; using System.Threading.Tasks; public class Bootstrap : MonoBehaviour { /// <summary> /// 広告制御サービス /// </summary> private AdvertisingService advertisingService = null; private AnalyticsService analyticsService = null; /// <summary> /// 開始処理 /// </summary> #pragma warning disable 4014 public async void Start() { #if UNITY_IOS && !UNITY_EDITOR var status = NativeService.GetIOSTrackingAuthorizationStatus(); // 未回答だった場合は ATT 許可要求ダイアログを表示 if (!status.HasValue) { status = await NativeService.RequestTrackingAuthorization() as bool?; } // 本当はシーン遷移などに備えて何らかの方法でシングルトン化した方がよい this.advertisingService = new AdvertisingService(); this.analyticsService = new AnalyticsService(); if (status.Value) { // 許可時の処理 this.advertisingService.Initialize(true); Task.Run(()=> this.analyticsService.InitilizeAsync(true)) .ConfigureAwait(false); } else { // 不許可時の処理 this.advertisingService.Initialize(false); Task.Run(()=> this.analyticsService.InitilizeAsync(false)) .ConfigureAwait(false); } #endif } #pragma warning restore 4014 }
これでビルドして実行、ATT は許可を選択
Firebase コンソールで Analytics の表示を見てみると
ちゃんとアプリ起動を追跡できたので大丈夫っぽい