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

AdMob正式广告单元ID无法加载广告,错误码0求助

关于AdMob正式广告单元加载失败(错误码0)的问题

我在应用中集成了AdMob广告,使用测试广告单元ID ca-app-pub-3940256099942544/1033173712 时可成功展示测试广告,但切换为正式广告单元ID后无任何广告显示,Logcat中出现广告加载错误码0。请问该广告加载失败的原因是什么?

以下是我使用的代码:

MobileAds.initialize(activity, main_interstial_addunit_id);
final InterstitialAd interstitialAd = new InterstitialAd(activity);
interstitialAd.setAdUnitId(main_interstial_addunit_id);
AdRequest adRequest = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest);
interstitialAd.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        if (interstitialAd.isLoaded()) {
            interstitialAd.show();
        }
    }
    @Override
    public void onAdClosed() { }
    @Override
    public void onAdFailedToLoad(int i) {
        super.onAdFailedToLoad(i);
    }
    @Override
    public void onAdLeftApplication() {
        super.onAdLeftApplication();
    }
    @Override
    public void onAdOpened() {
        super.onAdOpened();
    }
});
return interstitialAd;

问题分析与解决方案

我来帮你拆解下这个问题:首先错误码0对应AdMob的ERROR_CODE_INTERNAL_ERROR,但结合你测试广告正常、正式广告失效的情况,核心原因大概率是以下几点,尤其是代码里的一个明显问题:

  • 初始化参数错误(最可能的核心问题):你调用MobileAds.initialize时传入的是广告单元ID,但这个方法的第二个参数应该是AdMob的应用ID(格式是ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy),不是广告单元ID!这种错误会导致AdMob初始化异常,直接影响后续的广告加载请求。

  • 正式广告单元未完成审核/未激活:新创建的AdMob广告单元需要经过审核流程,通常耗时几小时到1天。如果你的正式单元是刚创建的,很可能还处于待审核状态,此时无法获取到广告。你可以登录AdMob后台查看广告单元的状态,确认是否显示“已激活”。

  • 应用信息不匹配:确保AdMob后台添加的应用包名和你当前测试/发布的应用包名完全一致,大小写、特殊字符都不能错。如果是用签名后的APK测试,还要确认后台已经添加了正确的应用签名SHA-1值(发布版需要单独配置)。

  • 填充率或定向问题:如果你的应用是新上线、用户量极小,或者广告单元设置了过于严格的定向条件(比如只定向了某个小众地区),AdMob可能没有合适的广告填充,也会导致加载失败。

具体修复步骤:

  1. 修正初始化代码:把AdMob应用ID传入MobileAds.initialize,广告单元ID只在创建InterstitialAd时使用:
// 替换成你的AdMob应用ID,可在AdMob后台应用详情页找到
MobileAds.initialize(activity, "ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy");
final InterstitialAd interstitialAd = new InterstitialAd(activity);
// 这里才是广告单元ID
interstitialAd.setAdUnitId(main_interstial_addunit_id);
  1. 检查AdMob后台配置:

    • 确认正式广告单元状态为“已激活”
    • 核对应用包名、签名信息与当前应用完全匹配
    • 检查广告单元的定向设置,避免过于狭窄的定向条件
  2. 增强错误日志排查:在onAdFailedToLoad方法中添加详细日志,方便后续定位问题:

@Override
public void onAdFailedToLoad(int errorCode) {
    super.onAdFailedToLoad(errorCode);
    String errorMsg = switch(errorCode) {
        case AdRequest.ERROR_CODE_INTERNAL_ERROR -> "内部错误";
        case AdRequest.ERROR_CODE_INVALID_REQUEST -> "无效请求(参数错误或应用信息不匹配)";
        case AdRequest.ERROR_CODE_NETWORK_ERROR -> "网络连接问题";
        case AdRequest.ERROR_CODE_NO_FILL -> "无可用广告填充";
        default -> "未知错误";
    };
    Log.d("AdMobDebug", "广告加载失败:错误码" + errorCode + ",原因:" + errorMsg);
}
  1. 耐心等待(针对新单元):如果是刚创建的广告单元,等待几个小时让AdMob完成审核和广告源匹配,期间可以用测试广告继续验证代码逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:52:59