菜单

开屏广告

💡Tips

  • 调用广告 API 前,请确保 McSdk.initialize() 已完成初始化,否则调用将被忽略
  • 开屏广告支持加载超时机制,可通过 timeout 参数控制单次加载的最大等待时间(毫秒)
  • 适用于应用热启动场景:用户从后台切回前台时展示广告,提升广告曝光率
  • 建议在 onAdDisplayedCallback / onAdHiddenCallback 中预加载下一条广告,以确保热启动时广告可用

1. 加载广告

dart 复制代码
const String _adUnitId = "your mediation unit id";

void initAppOpenAd() {
  McSdk.setAppOpenAdListener(McAppOpenAdListener(
    onAdLoadedCallback: (McAd ad) {
      // 广告加载成功
    },
    onAdLoadFailedCallback: (String adUnitId, McError error) {
      // 广告加载失败
      // 开屏广告依赖超时机制管理加载节奏,无需手动重试
    },
    onAdDisplayedCallback: (McAd ad) {
      // 广告展示成功
      // 预加载下一条广告(热启动推荐)
      // McSdk.loadAppOpenAd(_adUnitId);
    },
    onAdDisplayFailedCallback: (McAd ad, McError error) {
      // 广告展示失败
      // 预加载下一条广告(热启动推荐)
      // McSdk.loadAppOpenAd(_adUnitId);
    },
    onAdClickedCallback: (McAd ad) {
      // 用户点击了广告
    },
    onAdHiddenCallback: (McAd ad) {
      // 广告关闭
      // 预加载下一条广告(热启动推荐)
      // McSdk.loadAppOpenAd(_adUnitId);
    },
    onAdRevenuePaidCallback: (McAd ad) {
      // 广告收益回调
    },
    onAdLoadFinishedCallback: (String adUnitId) {
      // 当前加载轮次结束(无论成功或失败均会触发)
    },
    onAdLoadTimeoutCallback: (String adUnitId) {
      // 加载超时回调,超过设定的 timeout 时间仍未加载完成时触发
    },
  ));

  // 发起加载请求,timeout 单位为毫秒
  McSdk.loadAppOpenAd(_adUnitId, timeout: 5000);
}

📌 timeout 参数用于控制单次加载的最大等待时间,超时后触发 onAdLoadTimeoutCallback 回调。传入 -1 表示不设置超时。

📌 热启动场景下,建议取消注释预加载代码,在广告展示/关闭后自动加载下一条广告。


2. 展示广告

dart 复制代码
Future<void> showAppOpenAd() async {
  final isReady = await McSdk.isAppOpenAdReady(_adUnitId);
  if (isReady == true) {
    McSdk.showAppOpenAd(_adUnitId);
  } else {
    McSdk.loadAppOpenAd(_adUnitId);
  }
}

3. 设置自定义参数

dart 复制代码
// 设置额外参数,只用于 Max
McSdk.setAppOpenAdExtraParameter(_adUnitId, "key", "value");

// 设置额外参数
McSdk.setAppOpenAdLocalExtraParameter(_adUnitId, "key", value);

// 参数需在 loadAppOpenAd() 之前设置,对后续所有加载请求生效

上一个
激励视频广告
下一个
政策合规
最近修改: 2026-06-25Powered by