💡Tips
- 🚀 采用预加载机制提升用户体验
- 🔧 推荐使用标准化回调处理流程
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)
{
// 插屏加载成功回调
// 重置加载次数
retryAttempt = 0;
}
private void OnInterstitialAdLoadFailedEvent(string adUnitId, McSdkBase.ErrorInfo errorInfo)
{
// 插屏加载失败回调
// 我们建议您按照指数递增的方式延长重试间隔,直到达到最大延迟时间(本例为 8 秒)或最大重试次数(本例为 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)
{
// 插屏展示失败回调
// 预加载
LoadInterstitialAd();
}
private void OnInterstitialAdHiddenEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
// 插屏广告关闭回调
// 预加载
LoadInterstitialAd();
}
private void OnInterstitialAdRevenuePaidEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
//广告收益回调
}
private void OnInterstitialAdClickedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
//广告点击回调
}
private void OnInterstitialAdDisplayedEvent(string adUnitId, McSdkBase.AdInfo adInfo)
{
//广告展示成功回调
// 预加载
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");