Admob广告仅在Unity编辑器展示,打包及测试设备均无法加载如何解决
测试设备添加操作错误判定
你的添加测试设备操作存在错误,核心问题如下:
- 填入的设备信息不符合要求:Admob要求填写的是目标安卓设备的谷歌广告ID,不是设备型号、IMEI或者其他标识,获取路径为:安卓设备「设置」>「Google」>「广告」>「此设备的广告ID」。
- 无需设置手势选项,该配置和广告加载权限无关,正确流程仅需填写设备名称、填入正确的广告ID即可完成添加,添加后需等待15-30分钟生效。
广告无法加载问题解决方案
按优先级逐一排查:
1. 代码优化定位错误
先给Banner广告添加加载失败回调,获取具体错误信息:
using UnityEngine; using GoogleMobileAds.Api; using System; //Banner ad public class Admob : MonoBehaviour { private BannerView adBanner; private string idApp, idBanner; void Start() { idApp = "ca-app-pub-2932057985212846~3064197403"; // 测试阶段先替换为官方测试BannerID,排查ID本身问题 idBanner = "ca-app-pub-3940256099942544/6300978111"; MobileAds.Initialize(initStatus => { }); RequestBannerAd(); } #region Banner Methods public void RequestBannerAd() { adBanner = new BannerView(idBanner, AdSize.Banner, AdPosition.Bottom); // 添加错误监听 adBanner.OnAdFailedToLoad += (sender, args) => { Debug.LogError($"广告加载失败,错误码:{args.LoadAdError.GetCode()},信息:{args.LoadAdError.GetMessage()}"); }; AdRequest request = AdRequestBuild(); adBanner.LoadAd(request); } public void DestroyBannerAd() { if (adBanner != null) adBanner.Destroy(); } #endregion AdRequest AdRequestBuild() { // 测试阶段也可以直接在代码中添加测试设备,无需后台配置 return new AdRequest.Builder() //.AddTestDevice("你的设备广告ID") .Build(); } void OnDestroy() { DestroyBannerAd(); } }
打包测试包后用Android Studio的Logcat过滤Unity标签,即可看到具体的加载失败原因。
2. 打包配置排查
- 检查应用包名:Unity打包的包名必须和Admob后台绑定的应用包名完全一致
- 检查权限配置:确保AndroidManifest.xml中已添加网络权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- 检查签名配置:如果开启了Google Play应用签名,需要将Google Play后台「应用签名」页面的SHA1值同步到Admob后台,本地debug签名的SHA1仅适用于本地测试,不适用于上架商店的版本。
3. 账号与ID排查
- 刚创建的广告位ID需要等待24小时审核,审核通过前无法加载正式广告
- 检查Admob账号是否完成了支付信息验证,未验证的账号会被限制广告填充
- 若测试ID可以正常加载,仅你的正式ID无法加载,说明是广告位ID本身的审核或账号问题,等待审核完成即可。
内容的提问来源于stack exchange,提问作者Mohab Mohamed
相关产品推荐
相关产品推荐

