旧包名加载AdMob广告报W/Ads: Failed to load ad: 3错误如何解决?
AdMob 报错
W/Ads: Failed to load ad: 3 排查方案 错误码3对应AdMob的ERROR_CODE_NO_FILL,即广告平台无匹配广告返回。你提到同代码demo可正常展示测试广告、账号无违规,可按以下优先级排查:
1. 应用基础配置核对
- 确认AdMob后台绑定的应用包名、签名SHA1值,和你当前运行的应用包名、签名完全一致。正式上架包的签名和本地测试签名不一致的话,会直接导致测试广告也无法加载
- 核对代码中使用的横幅、插屏广告单元ID,是否和AdMob后台对应应用下创建的单元ID完全匹配,不要误用其他应用或demo的测试ID
- 检查
AndroidManifest.xml中配置的com.google.android.gms.ads.APPLICATION_ID元数据,值是否和AdMob后台获取的对应应用ID完全一致,漏填、错填都会导致广告请求失败
2. 测试配置核对
- 如果你使用正式签名包测试广告,需要将当前测试设备的广告ID添加到AdMob后台的测试设备列表中,未添加的设备运行正式包时调用测试ID也会返回无填充
- 确认测试设备的网络可以正常访问Google服务,网络限制、广告拦截规则、VPN代理都会导致广告请求被截断,返回错误码3
3. 广告服务状态核对
- 刚创建的AdMob应用、刚上架Google Play的应用存在1-2天的平台缓存期,期间AdMob未完成应用信息审核、流量数据收集,会出现无测试广告返回的情况,可等待24-48小时后再测试
- 可以尝试在AdMob后台为当前应用新建几个广告单元,替换旧的单元ID测试,部分旧广告单元可能存在后台缓存异常的问题
4. 依赖与代码核对
- 确认项目依赖的
play-services-adsSDK版本和可正常运行的demo版本一致,老旧版本SDK存在兼容性问题会导致广告请求失败 - 确认发起广告加载请求前,已经调用
MobileAds.initialize()完成SDK初始化,未初始化直接发起请求也会触发加载失败
内容的提问来源于stack exchange,提问作者Shakil Hossen
相关产品推荐
相关产品推荐

