You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ionic应用集成Cordova-admob-free插件后iOS生产环境AdMob广告不显示问题求助

iOS端AdMob广告加载异常(请求存在但展示为0)排查与解决方案

你遇到的这个情况确实很棘手——测试环境iOS广告正常展示,上架后却只有横幅空白位、插屏和激励广告完全加载失败,后台还能看到大量iOS广告请求但展示量为0。结合你已经完成的操作,我整理了几个针对性的排查方向:

一、先解决最明显的配置冲突:AdMob App ID不匹配

你在config.xml里配置的ADMOB_APP_ID是ca-app-pub-6807563077792237~126763xxxx,但iOS的Info.plist里填的是ca-app-pub-6807563077792237~85445xxxxx,这两个ID完全不一致!这大概率是核心问题——iOS平台必须保证App ID在所有配置文件里完全统一,否则广告请求会被AdMob服务器直接拦截。

请把Info.plist里的GADApplicationIdentifier值改成和config.xml一致的内容。

二、清理重复的AdMob SDK插件,避免依赖冲突

你同时安装了cordova-admob-sdk 0.24.1和cordova-admobsdk 7.49.0,这两个是功能重复的SDK插件,共存会导致iOS平台的原生依赖库混乱,直接影响广告加载逻辑。

执行以下命令清理冲突插件:

cordova plugin remove cordova-admobsdk
cordova plugin remove cordova-plugin-admob-free cordova-admob-sdk
# 重新安装官方插件,确保依赖正确
cordova plugin add cordova-plugin-admob-free@0.27.0 --variable ADMOB_APP_ID="ca-app-pub-6807563077792237~126763xxxx"

三、补充iOS 14+必备的广告权限配置

iOS 14.5及以上版本要求必须添加用户跟踪权限描述,否则AdMob无法获取广告标识符(IDFA),导致广告无法正常投放。在Info.plist里添加以下配置:

<key>NSUserTrackingUsageDescription</key>
<string>我们需要获取广告标识符为您提供更贴合需求的广告服务</string>

如果你的应用不需要跟踪用户,也可以修改描述内容,但必须存在这个字段。

四、确认ATS配置是否允许广告资源加载

iOS默认的ATS(App Transport Security)会限制HTTP请求,虽然AdMob主要用HTTPS,但部分广告资源可能走HTTP协议,导致加载失败。在Info.plist里添加ATS宽松配置(排查阶段可以先用这个,后续再优化为域名白名单):

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

五、代码层面添加详细错误日志,定位具体问题

你的当前代码没有详细的错误捕获逻辑,建议给广告加载添加完整的错误日志,方便排查具体失败原因:

showBannerAd() {
  if (this.globalSettings.isRunningOnDevice()) {
    this.adMob.banner.config(this.bannerConfig);
    this.adMob.banner.prepare().then(() => {
      console.log('横幅广告准备完成');
    }).catch(e => {
      // 打印完整错误信息,包括错误码和描述
      console.error('横幅广告加载失败:', JSON.stringify(e));
    });
  }
}

// 插屏广告同理
showInterstitialAd() {
  if (this.globalSettings.isRunningOnDevice()) {
    this.adMob.interstitial.config({id: '你的iOS插屏ID'});
    this.adMob.interstitial.prepare().then(() => {
      this.adMob.interstitial.show();
    }).catch(e => {
      console.error('插屏广告加载失败:', JSON.stringify(e));
    });
  }
}

可以通过Xcode的控制台或者第三方日志工具查看这些错误信息,比如错误码3代表广告单元ID无效,0代表网络问题等。

六、最后确认AdMob后台的应用状态

  • 检查AdMob后台添加的iOS应用Bundle ID是否和App Store上架的Bundle ID完全一致(大小写、符号都不能错);
  • 确认对应的广告单元是否处于**"已批准"**状态,有没有被标记为"受限"或需要二次审核。

修改完配置后,建议先通过TestFlight测试上架版本的广告展示情况,确认正常后再更新App Store的应用版本,避免多次提交审核。

内容的提问来源于stack exchange,提问作者Veysel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 04:12:37