请输入
菜单

插屏广告

💡Tips

  • 自动管理多广告位并行加载、缓存与比价展示,开发者只需 SmartLoadSmartIsReadySmartShow
  • 调用 SmartLoadInterstitial() 前必须确保 McSdk.InitializeSdk() 已完成,否则调用会被忽略
  • 广告关闭后 SDK 自动补量,无需手动重新加载
  • Smart Cache 拥有独立的回调通道 McSdkCallbacks.SmartCache.Interstitial,与标准广告位回调 McSdkCallbacks.Interstitial 完全隔离

1. 加载广告

csharp 复制代码
public void InitializeSmartInterstitialAd()
{
    McSdkCallbacks.SmartCache.Interstitial.OnDidLoadAd += OnSmartInterstitialAdLoaded;
    McSdkCallbacks.SmartCache.Interstitial.OnDidFailToLoadAd += OnSmartInterstitialAdLoadFailed;
    McSdkCallbacks.SmartCache.Interstitial.OnDidDisplayAd += OnSmartInterstitialAdDisplayed;
    McSdkCallbacks.SmartCache.Interstitial.OnDidHideAd += OnSmartInterstitialAdHidden;
    McSdkCallbacks.SmartCache.Interstitial.OnDidClickAd += OnSmartInterstitialAdClicked;
    McSdkCallbacks.SmartCache.Interstitial.OnDidFailToDisplayAd += OnSmartInterstitialAdDisplayFailed;
    McSdkCallbacks.SmartCache.Interstitial.OnDidPayRevenueForAd += OnSmartInterstitialAdRevenuePaid;
    McSdkCallbacks.SmartCache.Interstitial.OnDidAdLoadFinished += OnSmartInterstitialAdLoadFinished;

    // 无需传入 adUnitId,由服务端策略统一管理
    McSdk.SmartLoadInterstitial();
}

private void OnSmartInterstitialAdLoaded(string adUnitId, McSdkBase.AdInfo adInfo)
{
    // 至少一个广告就绪
}

private void OnSmartInterstitialAdLoadFailed(McSdkBase.ErrorInfo errorInfo)
{
    // 所有广告位均加载失败
    // SDK 自动重试,无需手动重新加载
}

private void OnSmartInterstitialAdDisplayed(string adUnitId, McSdkBase.AdInfo adInfo)
{
    // 展示成功回调
}

private void OnSmartInterstitialAdHidden(string adUnitId, McSdkBase.AdInfo adInfo)
{
    // 广告关闭回调
    // SDK 自动补量,无需手动操作
}

private void OnSmartInterstitialAdClicked(string adUnitId, McSdkBase.AdInfo adInfo)
{
    // 点击回调
}

private void OnSmartInterstitialAdDisplayFailed(McSdkBase.ErrorInfo errorInfo, McSdkBase.AdInfo adInfo)
{
    // 展示失败回调
    // SDK 自动处理,无需手动重新加载
}

private void OnSmartInterstitialAdRevenuePaid(string adUnitId, McSdkBase.AdInfo adInfo)
{
    // 收益回调
}

private void OnSmartInterstitialAdLoadFinished()
{
    // 本轮所有广告位加载结束回调(不论成功失败均触发)
    // 与 OnDidLoadAd / OnDidFailToLoadAd 的区别:
    // OnDidLoadAd — 至少一个广告位加载成功时触发
    // OnDidFailToLoadAd — 所有广告位均加载失败时触发
    // OnDidAdLoadFinished — 本轮加载流程结束时始终触发
}

⚠️ 注意:智能缓存模式下,OnDidFailToLoadAd / OnDidFailToDisplayAd / OnDidHideAd 回调中不需要手动调用 SmartLoadInterstitial() 重新加载,SDK 内部自动管理补量和重试

📌 加载期间重复调用 SmartLoadInterstitial() 会被自动忽略,无需开发者手动处理防重复逻辑。

📌 Smart Cache 回调 McSdkCallbacks.SmartCache.Interstitial 与标准广告位回调 McSdkCallbacks.Interstitial 完全隔离,两套回调可同时注册、互不影响。


2. 展示广告

csharp 复制代码
if (McSdk.SmartIsInterstitialReady()) {
    // SDK 自动选择缓存池中 eCPM 最高的广告展示
    McSdk.SmartShowInterstitial();
}

📌 SmartIsInterstitialReady() 返回 false 时,SDK 会自动触发后台补量,开发者无需额外操作。

📌 广告展示后 SDK 自动补量,缓存池中始终保持可用广告。


3. 设置自定义参数

csharp 复制代码
McSdk.SmartSetInterstitialExtraParameter("key", "value");
#if UNITY_ANDROID
    McSdk.SmartSetInterstitialLocalExtraParameter("key", new AndroidJavaObject("java.lang.String", "value"));
#elif UNITY_IOS
    McSdk.SmartSetInterstitialLocalExtraParameter("key", "value");
#endif

// 须在 SmartLoadInterstitial() 前设置,参数设置后对后续所有加载请求生效
McSdk.SmartLoadInterstitial();

上一个
开屏广告
下一个
激励视频广告
最近修改: 2026-04-03Powered by