using System; using UnityEngine; public class GATopOnIntegration { #if gameanalytics_topon_enabled && !(UNITY_EDITOR) private static bool _subscribed = false; private class GAInterstitialListener : AnyThinkAds.Api.ATInterstitialAdListener { private Action callback; public GAInterstitialListener(Action callback) { this.callback = callback; } public void onInterstitialAdClick(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onInterstitialAdClose(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onInterstitialAdEndPlayingVideo(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onInterstitialAdFailedToPlayVideo(string placementId, string code, string message) {} public void onInterstitialAdFailedToShow(string placementId) {} public void onInterstitialAdLoad(string placementId) {} public void onInterstitialAdLoadFail(string placementId, string code, string message) {} public void onInterstitialAdShow(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) { callback(callbackInfo.getOriginJSONString()); } public void onInterstitialAdStartPlayingVideo(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} } private class GABannerListener : AnyThinkAds.Api.ATBannerAdListener { private Action callback; public GABannerListener(Action callback) { this.callback = callback; } public void onAdAutoRefresh(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onAdAutoRefreshFail(string placementId, string code, string message) {} public void onAdClick(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onAdClose(string placementId) {} public void onAdCloseButtonTapped(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onAdImpress(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) { callback(callbackInfo.getOriginJSONString()); } public void onAdLoad(string placementId) {} public void onAdLoadFail(string placementId, string code, string message) {} } private class GARewardedListener : AnyThinkAds.Api.ATRewardedVideoListener { private Action callback; public GARewardedListener(Action callback) { this.callback = callback; } public void onRewardedVideoAdLoaded(string placementId) {} public void onRewardedVideoAdLoadFail(string placementId, string code, string message) {} public void onRewardedVideoAdPlayStart(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) { callback(callbackInfo.getOriginJSONString()); } public void onRewardedVideoAdPlayEnd(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onRewardedVideoAdPlayFail(string placementId, string code, string message) {} public void onRewardedVideoAdPlayClosed(string placementId, bool isReward, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onRewardedVideoAdPlayClicked(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onReward(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} } private class GANativeListener : AnyThinkAds.Api.ATNativeAdListener { private Action callback; public GANativeListener(Action callback) { this.callback = callback; } public void onAdClicked(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onAdCloseButtonClicked(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) {} public void onAdImpressed(string placementId, AnyThinkAds.Api.ATCallbackInfo callbackInfo) { callback(callbackInfo.getOriginJSONString()); } public void onAdLoaded(string placementId) {} public void onAdLoadFail(string placementId, string code, string message) {} public void onAdVideoEnd(string placementId) {} public void onAdVideoProgress(string placementId, int progress) {} public void onAdVideoStart(string placementId) {} } #endif public static void ListenForImpressions(Action callback) { #if gameanalytics_topon_enabled && !(UNITY_EDITOR) if (_subscribed) { Debug.Log("Ignoring duplicate gameanalytics subscription"); return; } AnyThinkAds.Api.ATInterstitialAd.Instance.setListener(new GAInterstitialListener(callback)); AnyThinkAds.Api.ATBannerAd.Instance.setListener(new GABannerListener(callback)); AnyThinkAds.Api.ATRewardedVideo.Instance.setListener(new GARewardedListener(callback)); AnyThinkAds.Api.ATNativeAd.Instance.setListener(new GANativeListener(callback)); _subscribed = true; #endif } }