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

Flutter应用中AdMob Banner不显示问题求助

Flutter AdMob Banner广告仅显示深色区域的排查方案

以下是针对该问题的具体排查步骤,按优先级逐一验证:

  • 强制使用测试广告ID
    开发阶段必须使用AdMob官方提供的测试ID,正式ID未通过审核或填充率不足时会出现无内容的深色占位。

    • Android测试Banner ID:ca-app-pub-3940256099942544/6300978111
    • iOS测试Banner ID:ca-app-pub-3940256099942544/2934735716
  • 核对应用级ID配置

    • Android:检查AndroidManifest.xml中的meta-data标签,确认com.google.android.gms.ads.APPLICATION_ID值与AdMob后台的应用ID完全一致,无拼写错误。
    • iOS:检查Info.plist里的GADApplicationIdentifier键对应的值是否正确。
  • 检查网络权限与环境

    • Android:确保AndroidManifest.xml添加了必要权限:
      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      
    • 确认设备网络正常,避免使用VPN/代理(部分代理会拦截AdMob请求)。
  • 添加加载状态回调排查错误
    给BannerAd添加listener,捕获具体加载错误信息(控制台无报错不代表无回调错误):

    BannerAd(
      adUnitId: BannerAd.testAdUnitId,
      size: AdSize.banner,
      request: AdRequest(),
      listener: BannerAdListener(
        onAdLoaded: (Ad ad) => print('Banner广告加载成功'),
        onAdFailedToLoad: (Ad ad, LoadAdError error) {
          ad.dispose();
          print('Banner加载失败: ${error.message},错误码: ${error.code}');
        },
      ),
    )
    

    常见错误码:3(无广告填充)、0(内部服务错误)、2(请求参数错误)。

  • 更新插件与依赖
    确保google_mobile_ads插件为最新稳定版,旧版本可能存在Flutter SDK或AdMob服务兼容性问题。

  • 验证测试环境

    • 优先使用真实设备测试,部分模拟器(非Google APIs镜像)无法正常加载AdMob服务。
    • 更换测试设备/Google账号,排查是否存在设备或账号被限制的情况。
  • 检查布局约束
    确保Banner广告的父布局设置了正确的高度约束(比如AdSize.banner.height,即50dp),错误的布局约束可能导致广告视图被压缩,仅显示背景色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 04:25:32