using System; using UnityEngine; public class GAFyberIntegration { #if gameanalytics_fyber_enabled && !(UNITY_EDITOR) private static bool _subscribed = false; private class GAInterstitialListener : Fyber.InterstitialListener { private Action callback; public GAInterstitialListener(Action callback) { this.callback = callback; } public void OnShow(string placementId, Fyber.ImpressionData impressionData) { callback(impressionData.ToString()); } public void OnClick(string placementId) {} public void OnHide(string placementId) {} public void OnShowFailure(string placementId, Fyber.ImpressionData impressionData) {} public void OnAvailable(string placementId) {} public void OnUnavailable(string placementId) {} public void OnRequestStart(string placementId) {} } private class GABannerListener : Fyber.BannerListener { private Action callback; public GABannerListener(Action callback) { this.callback = callback; } public void OnError(string placementId, string error) {} public void OnLoad(string placementId) {} public void OnShow(string placementId, Fyber.ImpressionData impressionData) { callback(impressionData.ToString()); } public void OnClick(string placementId) {} public void OnRequestStart(string placementId) {} } private class GARewardedListener : Fyber.RewardedListener { private Action callback; public GARewardedListener(Action callback) { this.callback = callback; } public void OnShow(string placementId, Fyber.ImpressionData impressionData) { callback(impressionData.ToString()); } public void OnClick(string placementId) {} public void OnHide(string placementId) {} public void OnShowFailure(string placementId, Fyber.ImpressionData impressionData) {} public void OnAvailable(string placementId) {} public void OnUnavailable(string placementId) {} public void OnCompletion(string placementId, bool userRewarded) {} public void OnRequestStart(string placementId) {} } #endif public static void ListenForImpressions(Action callback) { #if gameanalytics_fyber_enabled && !(UNITY_EDITOR) if (_subscribed) { Debug.Log("Ignoring duplicate gameanalytics subscription"); return; } Fyber.Interstitial.SetInterstitialListener(new GAInterstitialListener(callback)); Fyber.Banner.SetBannerListener(new GABannerListener(callback)); Fyber.Rewarded.SetRewardedListener(new GARewardedListener(callback)); _subscribed = true; #endif } }