Flutter迁移应用AdMob插屏广告No fill错误及Ad Inspector启动失败问题
AdMob插屏广告加载失败与Ad Inspector无法启动问题解决
问题概述
- 自定义插屏广告ID加载广告时报错:
LoadAdError(code: 3, domain: com.google.android.gms.ads, message: No fill., responseInfo: ResponseInfo(responseId: null, mediationAdapterClassName: , adapterResponses: [], loadedAdapterResponseInfo: null), responseExtras: {}) - 使用真实广告ID调用Ad Inspector时失败,报错
Ad Inspector failed to load: null;仅Google官方测试ID(ca-app-pub-3940256099942544/1033173712)可正常加载测试广告、启动Ad Inspector。设备已添加至AdMob测试设备列表,多设备测试均复现。
排查与修复步骤
1. 核对广告ID与应用配置
- 确保复制的插屏广告单元ID完全正确,无多余空格或字符,注意区分AdMob应用ID(
ca-app-pub-xxx)和广告单元ID(ca-app-pub-xxx/xxx),不要混用。 - 检查AdMob后台广告单元关联的包名,需与Flutter项目
android/app/build.gradle中的applicationId完全一致,大小写、标点均不能错。
2. 强制开启测试模式
即使设备已在AdMob后台添加为测试设备,仍可在代码中强制指定测试ID,排除后台配置同步延迟问题:
final RequestConfiguration config = RequestConfiguration( testDeviceIds: ['你的设备Google AD ID'], ); MobileAds.instance.updateRequestConfiguration(config);
3. 检查Flutter AdMob SDK集成
- 升级
google_mobile_ads到最新稳定版,避免旧版本兼容性bug。 - 验证Android端配置:
AndroidManifest.xml中已正确添加AdMob应用ID的meta-data:<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="你的AdMob应用ID"/>android/build.gradle中Google服务插件版本与SDK适配(如com.google.gms:google-services:4.4.1)。- 确认应用签名SHA-1/MD5已同步到AdMob后台,升级Flutter后若修改了签名配置,需及时更新。
4. 解决Ad Inspector启动失败
Ad Inspector无法启动通常是广告单元或应用配置不合法导致,先解决No Fill问题后再尝试。同时:
- 确保设备网络正常,未使用VPN/代理阻断AdMob服务器连接。
- 清除应用缓存后重新测试。
5. No Fill错误额外排查点
- 新创建的广告单元需等待1-2小时才能生效,不要立即测试。
- 检查是否存在原生Android代码与Flutter代码的AdMob初始化冲突,升级后需清理原生端残留的AdMob配置代码。
- 确认应用内容符合AdMob政策,若存在违规内容会限制广告填充。
内容的提问来源于stack exchange,提问作者Syed Irfan Hussaini
相关产品推荐
相关产品推荐

