I’m using AdMob interstitial ads, everything works fine. unfortunately the ad appears for about 1 second and disappears then scene is loaded. The user has no time to close the ad. What condition can I use if I want the scene to load only after the ad is closed?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using GoogleMobileAds.Api;
using UnityEngine.UI;
using System;
public class AdManager : MonoBehaviour
{
public static AdManager Instance { get; set; }
private InterstitialAd interstitial;
void Start()
{
#if UNITY_ANDROID
string appId = "";
#elif UNITY_IPHONE
string appId = "todo";
#else
string appId = "";
#endif
this.interstitial = new InterstitialAd(appId);
}
public void ShowInterstitial()
{
RequestInterstitial();
}
public void RequestInterstitial()
{
#if UNITY_ANDROID
string interstitialId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
string interstitialId = "unexpected_platform";
#else
string interstitialId = "unexpected_platform";
#endif
if(interstitial !=null)
interstitial.Destroy();
interstitial = new InterstitialAd(interstitialId);
interstitial.OnAdLoaded +=HandleOnAdLoaded;
interstitial.LoadAd(CreateNewRequest());
}
public void HandleOnAdLoaded(object sender, EventArgs args)
{
if(interstitial.IsLoaded())
interstitial.Show();
}
private AdRequest CreateNewRequest()
{
return new AdRequest.Builder().Build();
}
}
//Change scene code I am using:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class ChangeScene : MonoBehaviour
{
public void LoadScene(string sceneName)
{
SceneManager.LoadScene(sceneName);
}
}