💡Tips
- 🚀 Improve user experience with preloading mechanism
- 🔧 Recommended to use standardized callback handling process
public void InitializeInterstitialAd()
{
McSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialAdLoadedEvent;
McSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialAdLoadFailedEvent;
McSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdDisplayFailedEvent;
McSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialAdHiddenEvent;
McSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnInterstitialAdRevenuePaidEvent;
McSdkCallbacks.Interstitial.OnAdClickedEvent += OnInterstitialAdClickedEvent;
McSdkCallbacks.Interstitial.OnAdDisplayedEvent += OnInterstitialAdDisplayedEvent;
LoadInterstitialAd();
}
private void LoadInterstitialAd()
{
McSdk.LoadInterstitial("your mediation unit id");
}
private void OnInterstitialAdLoadedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Ad load success event
// Reset retry attempt
retryAttempt = 0;
}
private void OnInterstitialAdLoadFailedEvent(string adUnitId, McSdkBase.ErrorInfo errorInfo)
{
// Ad load failure event
// We recommends that you retry with exponentially higher delays up to a maximum delay (in this case 8 seconds) or the maximum number of retries (in this case 3)
if (retryAttempt >= 3) return;
retryAttempt++;
double retryDelay = Math.Pow(2, Math.Min(3, retryAttempt));
Invoke("LoadInterstitialAd", (float)retryDelay);
}
private void OnInterstitialAdDisplayFailedEvent(string adUnitId, McSdkBase.ErrorInfo errorInfo, McSdkBase.AdInfo adInfo)
{
// Ad display failure event
// pre-load
LoadInterstitialAd();
}
private void OnInterstitialAdHiddenEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Ad closed event
// pre-load
LoadInterstitialAd();
}
private void OnInterstitialAdRevenuePaidEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Revenue tracking event
}
private void OnInterstitialAdClickedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Ad click event
}
private void OnInterstitialAdDisplayedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// Ad display success event
// pre-load
LoadInterstitialAd();
}
if (McSdk.IsInterstitialReady("your mediation unit id")) {
McSdk.ShowInterstitial("your mediation unit id");
} else {
LoadInterstitialAd();
}
McSdk.SetInterstitialExtraParameter("your mediation unit id", "inter_test_extra_key", "inter_test_extra_value");
#if UNITY_ANDROID
McSdk.SetInterstitialLocalExtraParameter("your mediation unit id", "inter_test_local_extra_key", new AndroidJavaObject("java.lang.String", "inter_test_local_extra_value"));
#elif UNITY_IOS
McSdk.SetInterstitialLocalExtraParameter("your mediation unit id", "inter_test_local_extra_key", "inter_test_local_extra_value");
#endif
McSdk.LoadInterstitial("your mediation unit id");