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

iOS集成Google Ads测试横幅广告不显示问题排查

iOS集成Google Ads测试广告返回Code=1无填充的配置层排查方案

已知相同代码、依赖版本、测试广告位、Info.plist参数下,官方示例、新建空白工程均可正常加载广告,仅自研App触发com.google.admob Code=1 "Request Error: No ad to show."报错,问题锁定在项目编译/运行配置层面,按以下优先级逐一排查:

  • 检查ATS配置冲突
    老项目通常会为了兼容旧业务接口调整ATS规则,若规则中对googleads.g.doubleclick.net、googlesyndication.com、google.com等AdMob请求域名做了连接限制,或是全局配置了强制HTTPS降级/自定义证书校验,都会导致广告请求被拦截。测试阶段可临时配置ATS全局放开规则验证:
    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSAllowsArbitraryLoads</key>
      <true/>
    </dict>
    
    若调整后广告正常加载,再针对性收窄ATS权限即可。
  • 检查链接参数配置缺失
    若项目Target的Other Linker Flags未添加-ObjC参数,会导致AdMob SDK的分类方法、全局初始化逻辑无法正常加载,是这类配置问题的最高发原因。同时确认链接参数中已正确引入GoogleMobileAds框架,多Target项目注意核对当前运行Target的配置,不要仅修改Project层级的通用配置。
  • 排查全局网络Hook/拦截逻辑冲突
    自研App集成的流量监控、抓包调试、全局代理、VPN类基础组件,若通过Swizzling Hook了NSURLSession、NSURLConnection的请求/响应方法,很可能篡改AdMob的请求头、响应内容,导致SDK判定响应无效返回无填充。排查时临时关闭所有自定义网络拦截逻辑、退出本地抓包工具(如Charles、Proxyman)后重试。
  • 检查设备标识获取权限限制
    AdMob依赖IDFA、IDFV等设备标识完成广告请求匹配,若项目中集成的隐私合规组件强制拦截了设备标识获取、返回空值,或是iOS14+未正确配置ATT权限流程、用户拒绝广告跟踪,都可能导致测试广告无填充。测试阶段可先在系统设置中手动开启App的广告跟踪权限,临时关闭标识拦截逻辑验证。
  • 检查预处理宏定义冲突
    核对Build Settings中Preprocessor Macros配置,若自定义宏和Google Mobile Ads SDK的内置宏重名(比如自定义了和SDK版本、日志开关相关的同名宏),会导致SDK运行时执行错误分支逻辑。直接对比正常空白工程的宏配置,删除自研工程中多余的自定义宏即可。
  • 排查资源文件冲突
    若项目中残留旧版本AdMob的配置文件、bundle资源,或是存在和SDK内置资源同名的自定义文件,会导致SDK加载配置失败。在Build Phases -> Copy Bundle Resources中检查,删除和GoogleMobileAds相关的重复、冲突资源。

注意:每次修改配置后,先删除DerivedData下的项目缓存,执行pod deintegrate && pod install重新集成依赖,卸载设备上的旧安装包重新编译,避免缓存导致配置不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:09:21