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

Flutter iOS端Google Mobile Ads正式包仍显示测试广告如何解决

问题原因和解决步骤

首先明确核心问题是AdMob后台配置的全局测试IDFA导致所有iOS设备都被识别为测试设备,按以下顺序排查修改即可:

1. 立即删除AdMob后台的全局测试IDFA

你配置的00000000-0000-0000-0000-000000000000是iOS系统默认返回的无追踪权限IDFA,所有未同意用户追踪授权的设备都会返回这个值,将其加入AdMob测试设备列表等于给所有iOS设备强制返回测试广告,和打包模式无关。
删除后仅保留你自己真实测试设备的IDFA用于开发阶段测试即可。

2. 核对广告相关ID配置

  • 确认Constants类中存储的iOS横幅、插屏、激励广告单元ID,和AdMob后台对应应用下的正式广告单元ID完全一致,注意不要和Android的ID、或者AdMob应用ID搞混
  • 确认info.plist中的GADApplicationIdentifier参数填入的是AdMob后台的iOS应用ID,而非广告单元ID
  • 刚创建的广告单元需要等待2~4小时才会正式生效,新创建的单元建议等待后再测试

3. 检查Xcode打包和权限配置

  • 打开iOS工程的Scheme配置,确认Run/Archive的Build Configuration为Release,且Arguments Passed On Launch中没有添加任何Google Mobile Ads相关的调试参数
  • iOS14及以上版本必须完成App Tracking Transparency(ATT)权限申请:
    • 在info.plist中添加NSUserTrackingUsageDescription字段,填写清晰的权限用途说明
    • 在应用启动后、加载广告前主动调用权限申请接口,获取用户授权后再加载广告,未授权会导致正式广告填充率极低甚至无法加载

4. 正确测试正式广告

  • 删除测试设备IDFA、完成上述配置后,打Release包通过TestFlight安装到测试设备
  • 测试时需要使用境外网络环境,国内网络无法正常加载Google正式广告,会直接返回测试广告或者加载失败
  • 如果AdMob账号未完成支付信息验证、或者账号存在违规限制,也会导致无法返回正式广告,可登陆AdMob后台查看账号状态通知

可选优化

你当前使用的google_mobile_ads: ^0.13.4版本较旧,存在较多已知的广告加载适配问题,可升级到适配Flutter 2.5.x的1.x稳定版,减少底层库导致的异常问题。

内容的提问来源于stack exchange,提问作者anonymous-dev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:15:03