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

AdMob集成疑问:我的实现环节遗漏了哪些内容?

AdMob横幅广告无法加载排查方案

问题场景

作为Android开发新手,已查阅文档并观看横幅广告实现的相关视频,但仍未解决问题:在activity_main.xml预览中能看到“Ads By Google”占位横幅,但应用启动后无法看到任何广告。

用户当前实现的代码片段如下:

build.gradle.kts(依赖项)

implementation(libs.play.services.ads)

MainActivity.kt(onCreate方法)

MobileAds.initialize(this@MainActivity) {}
adView = findViewById<View>(R.id.adView) as AdView
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
...
<meta-data
 android:name="com.google.android.gms.ads.APPLICATION_ID"
 android:value="(Insert App ID Here)"/>

activity_main.xml

<com.google.android.gms.ads.AdView
 xmlns:ads="http://schemas.android.com/apk/res-auto"
 android:id="@+id/adView"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_centerHorizontal="true"
 android:layout_alignParentBottom="true"
 ads:adSize="BANNER"
 ads:adUnitId="(Insert Unit Id Here)"/>

核心排查与修复步骤

  • 替换占位ID为真实/测试ID
    你当前的APPLICATION_ID和adUnitId仍为占位符,必须替换:

    • 测试阶段优先使用官方测试ID(避免真实ID触发限制):
      • 测试APP ID:ca-app-pub-3940256099942544~3347511713
      • 测试横幅单元ID:ca-app-pub-3940256099942544/6300978111
    • 正式环境需使用AdMob后台创建的对应应用和广告单元ID,确保完全匹配。
  • 添加初始化与加载状态监听
    初始化时添加回调确认状态,同时监听广告加载结果,直接定位错误:

    // 初始化回调
    MobileAds.initialize(this) { status ->
        status.adapterStatusMap.forEach { (adapter, adapterStatus) ->
            Log.d("AdMobInit", "${adapter.simpleName}: ${adapterStatus.initializationState}")
        }
    }
    
    // 广告加载监听
    adView.adListener = object : AdListener() {
        override fun onAdLoaded() {
            Log.d("AdMob", "广告加载成功")
        }
    
        override fun onAdFailedToLoad(error: LoadAdError) {
            Log.e("AdMobError", "加载失败: ${error.message}, 错误码: ${error.code}")
        }
    }
    

    根据错误码可快速定位问题:比如错误码3代表无填充,错误码0代表网络异常。

  • 优化依赖与网络配置

    • 确认libs.play.services.ads对应的版本为最新稳定版,避免兼容性问题;
    • 若应用设置了android:usesCleartextTraffic="false",需在AndroidManifest.xml中添加网络安全配置,允许AdMob域名的明文流量:
      <application ...>
          <network-security-config>
              <domain-config cleartextTrafficPermitted="true">
                  <domain includeSubdomains="true">googleads.g.doubleclick.net</domain>
                  <domain includeSubdomains="true">admob.google.com</domain>
              </domain-config>
          </network-security-config>
      </application>
      
  • 调整布局参数
    将AdView的宽度设为match_parent,高度设为对应adSize的固定值(如BANNER为50dp),避免布局显示异常:

    <com.google.android.gms.ads.AdView
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="你的测试/真实单元ID"/>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 10:12:02