using System.Collections; using System.Collections.Generic; using System; using UnityEngine; public partial class AdManager { int retryAttemptInterstitial; public void InitializeInterstitialAds() { // Attach callback MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialLoadedEvent; MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialLoadFailedEvent; MaxSdkCallbacks.Interstitial.OnAdDisplayedEvent += OnInterstitialDisplayedEvent; MaxSdkCallbacks.Interstitial.OnAdClickedEvent += OnInterstitialClickedEvent; MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialHiddenEvent; MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdFailedToDisplayEvent; // Load the first interstitial LoadInterstitial(); } private void LoadInterstitial() { MaxSdk.LoadInterstitial(adInterstitialUnitId); } private void OnInterstitialLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) { // Interstitial ad is ready for you to show. MaxSdk.IsInterstitialReady(adUnitId) now returns 'true' // Reset retry attempt retryAttemptInterstitial = 0; } private void OnInterstitialLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo) { // Interstitial ad failed to load // AppLovin recommends that you retry with exponentially higher delays, up to a maximum delay (in this case 64 seconds) retryAttemptInterstitial++; double retryDelay = Math.Pow(2, Math.Min(6, retryAttemptInterstitial)); Invoke("LoadInterstitial", (float)retryDelay); } private void OnInterstitialDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) { } private void OnInterstitialAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo) { // Interstitial ad failed to display. AppLovin recommends that you load the next ad. LoadInterstitial(); } private void OnInterstitialClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) { } private void OnInterstitialHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) { // Interstitial ad is hidden. Pre-load the next ad. LoadInterstitial(); } }