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

Unity iOS集成AdMob自定义AdUnit无法展示广告求助

Unity 5.5.5p1 + AdMob自定义AdUnit不显示广告的解决方案

嘿,我之前在维护Unity 5.x项目的AdMob集成时,刚好碰到过和你一模一样的问题——测试ID正常跑,换正式ID就歇菜,而且还是未上架的Release包。结合AdMob的投放规则和老版本Unity的兼容性坑,给你梳理几个必查的点:

  • 先死磕AdUnit ID和Bundle ID的匹配度
    别嫌基础,这是90%新手踩的坑:

    • 确保你复制的是iOS平台的正式AdUnit ID,别把Android的ID混进来;
    • AdMob后台创建应用时填写的Bundle ID,必须和Unity Build Settings里的iOS Bundle Identifier完全一致,大小写、连字符都不能差半分;
    • 复制ID时别手滑带空格,最好直接用快捷键复制粘贴,避免手动输入出错。
      示例代码里的正确写法:
    private string bannerAdUnitId = "ca-app-pub-xxxxxxxxxxxxxxxx/yyyyyyyyyy";
    
  • AdMob后台的应用配置必须到位
    哪怕你的游戏还没上架App Store,也要在AdMob后台把对应应用的状态设为「已发布」——这个开关会直接影响广告投放逻辑,未发布状态下正式AdUnit的填充率会被大幅限制甚至清零。另外,确认你在后台创建的是iOS应用,不是Android的。

  • Release模式下的测试设备白名单
    AdMob对未上架的iOS Release包有严格的反作弊限制,哪怕用正式AdUnit,非测试设备也大概率拿不到广告。解决办法是:

    1. 把你的测试设备添加到AdMob后台的「测试设备」列表里;
    2. 获取设备ID的方法很简单:用Xcode跑Release包,在控制台里找包含GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers的日志,复制那串32位的ID就行。
      添加白名单后,用正式AdUnit也能收到测试广告,先验证你的代码逻辑没问题。
  • 排查Unity 5.5.5p1的插件兼容性
    这个版本的Unity属于比较老的迭代版本,如果你用的是最新版的Google Mobile Ads Unity插件(比如v4.x及以上),大概率会有兼容性冲突。建议找适配Unity 5.x的旧版本插件(比如v3.x系列),导入前记得彻底删除项目里旧的AdMob插件文件,避免残留文件导致冲突。

  • 一定要看Xcode的错误日志!
    广告加载失败时,AdMob会在Xcode控制台输出具体的错误码,这是定位问题的关键:

    • ERROR_CODE_NO_FILL:没有广告填充,大概率是未上架或AdUnit还在审核;
    • ERROR_CODE_INVALID_REQUEST:请求无效,比如AdUnit ID错了、Bundle ID不匹配;
    • ERROR_CODE_NETWORK_ERROR:设备网络权限或网络环境问题。
      你可以在代码里加个错误回调捕获这些信息:
    // 假设你用的是Banner广告
    private BannerView bannerView;
    
    void Start()
    {
        bannerView = new BannerView(bannerAdUnitId, AdSize.Banner, AdPosition.Bottom);
        bannerView.OnAdFailedToLoad += HandleAdLoadFailed;
        // 发起广告请求
        bannerView.LoadAd(createAdRequest());
    }
    
    private void HandleAdLoadFailed(object sender, AdFailedToLoadEventArgs args)
    {
        Debug.LogError($"广告加载失败: {args.Message} 错误码: {args.ErrorCode}");
    }
    
    private AdRequest createAdRequest()
    {
        return new AdRequest.Builder().Build();
    }
    
  • 最后说下未上架应用的投放建议
    AdMob官方其实不建议在未上架的应用里用正式AdUnit,很容易触发反作弊机制导致广告被限制。如果只是验证功能,用测试ID+测试设备是最稳妥的方案。等你的游戏上架App Store后,正式AdUnit的填充率会自动恢复正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:41:01