为何测试手机显示应用广告,其他设备却不显示?已上架Play Store
解决AdMob广告仅测试设备显示的问题
看起来你已经完成了基础的正确配置(移除测试设备代码、上架Google Play、激活广告单元),但还是遇到了仅测试设备能加载真实广告的问题,我给你几个针对性的排查方向:
1. 确认广告单元与应用ID的绑定关系
- 登录AdMob后台,检查对应广告单元是否正确关联了你的应用ID(
com.samkecy.naitesapp),上架后如果应用ID匹配出错,很容易导致非测试设备无法加载广告。 - 同时确认广告单元的状态为"已激活",并且没有设置定向限制(比如仅针对特定地区、设备类型投放)。
2. 核对应用签名与AdMob后台的一致性
当应用上架Google Play后,Google会默认使用Play签名服务重新签名你的应用(除非你手动关闭了该功能),这时候你需要把Play分配的发布签名SHA-1添加到AdMob后台:
- 打开Google Play Console,进入你的应用 → 版本管理 → 应用签名,复制"应用签名证书"的SHA-1值
- 登录AdMob后台,找到你的应用 → 设置 → 应用设置 → 添加指纹,粘贴刚才复制的SHA-1值
测试设备能显示广告,大概率是因为你之前添加了测试设备的签名,而非测试设备用的是Play发布签名,AdMob未识别所以拒绝投放。
3. 查看广告加载的错误日志
在非测试设备上运行应用,通过Android Studio的Logcat过滤Ads标签,查看广告加载的具体错误信息,常见情况包括:
ERROR_CODE_NO_FILL:当前无可用广告库存,可多等待一段时间或切换不同地区测试ERROR_CODE_INVALID_REQUEST:请求参数错误,比如广告单元ID不匹配、应用ID错误ERROR_CODE_NETWORK_ERROR:设备网络问题或无法访问AdMob服务
这些日志能帮你精准定位问题,比盲目排查高效得多。
4. 升级AdMob SDK版本
你的Gradle中使用的play-services-ads:17.1.1版本较旧,建议升级到稳定的新版本(比如22.6.0),旧版本可能存在与新版AdMob服务不兼容的问题:
implementation 'com.google.android.gms:play-services-ads:22.6.0'
升级后同步Gradle,可先通过内部测试渠道验证效果,再正式发布。
5. 检查应用是否符合AdMob政策
有时候即使配置正确,AdMob也会因应用内容不符合政策限制投放,你可以登录AdMob后台查看是否有政策警告或限制通知,确保应用内容完全符合AdMob广告政策。
内容的提问来源于stack exchange,提问作者SAMKECY
相关产品推荐
相关产品推荐

