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

AdMob集成后广告无法显示:测试ID可用自定义ID失效,代码是否正确?

你的代码基本正确,但需要排查广告不显示的核心原因

先明确:你的ID配置逻辑是没问题的——

  • MobileAds.initialize 传入的是应用ID(格式为 ca-app-pub-xxx~xxx),完全符合AdMob初始化要求
  • XML中AdView的adUnitId是广告单元ID(格式为 ca-app-pub-xxx/xxx),这也是正确的配置方式

那为什么测试ID能正常加载,自己的ID不行?大概率是以下几个常见原因:

  • 广告单元/应用未通过审核:新创建的AdMob应用和广告单元都需要经过谷歌的审核流程,通常耗时几小时到1-2天。审核期间真实广告不会展示,但测试ID不受此限制。你可以登录AdMob后台查看审核状态。
  • 无可用广告填充:如果你的应用刚上线,或者当前设备所在地区的广告库存不足,AdMob可能无法返回广告(对应错误码通常是ERROR_CODE_NO_FILL)。这种情况可以尝试切换海外网络环境测试,或者等待应用积累一定用户请求量后再观察。
  • AdMob政策限制:检查AdMob后台的「政策中心」,确认你的应用有没有违反广告政策导致广告被限制展示。如果有违规提示,需要按要求整改后才能恢复。
  • 请求频率限流:短时间内频繁发送广告请求,AdMob可能会暂时限制你的请求,这种情况一般过一段时间会自动恢复。

建议添加日志精准排查

为了快速定位问题,你可以给AdView添加监听,打印广告加载失败的详细信息:

adView.setAdListener(new AdListener() {
    @Override
    public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        super.onAdFailedToLoad(loadAdError);
        Log.e("AdMobDebug", "广告加载失败: " + loadAdError.getMessage() + " 错误码: " + loadAdError.getCode());
    }
});

根据错误码就能快速对应问题:比如3代表无广告填充,4代表应用未通过审核,0代表内部服务错误等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:59:37