using GameAnalyticsSDK; using UnityEngine; public class AnalyticsSystem : MonoBehaviour, IGameAnalyticsATTListener { public static AnalyticsSystem Instance { get; private set; } private bool _isInitialized; private void Awake() { if (Instance != null) return; Instance = this; } public void Initialize() { if (Application.platform == RuntimePlatform.IPhonePlayer) { GameAnalytics.RequestTrackingAuthorization(this); return; } GameAnalytics.Initialize(); _isInitialized = true; } public static void SendProgressionEvent(GAProgressionStatus inStatus, string inMessage) { if (!Instance._isInitialized) return; GameAnalytics.NewProgressionEvent(inStatus, inMessage); } public static void SendAdEvent(GAAdAction inAction, GAAdType inType, string inPlacementId) { if (!Instance._isInitialized) return; GameAnalytics.NewAdEvent(inAction, inType, "Unity Ads", inPlacementId); } // Related to iOS trackingAuthorizationRequest. public void GameAnalyticsATTListenerNotDetermined() => GameAnalytics.Initialize(); public void GameAnalyticsATTListenerRestricted() => GameAnalytics.Initialize(); public void GameAnalyticsATTListenerDenied() => GameAnalytics.Initialize(); public void GameAnalyticsATTListenerAuthorized() => GameAnalytics.Initialize(); }