Admob广告在Unity编辑器正常但Android端无法加载问题求助
解决方案
根因说明
你看到的Too many recently failed requests报错属于SDK限流提示,是连续多次广告请求失败后的结果,而非问题根源。编辑器端运行正常说明逻辑代码无问题,问题出在安卓端打包相关的配置/依赖环节,和你之前删除重导插件的操作直接相关,按以下优先级排查即可:
排查步骤
- 第一步:检查Android端基础配置缺失
- 打开Unity菜单
Window > Google Mobile Ads > Settings,确认安卓端Admob App ID已正确填写,该配置仅在打包时生效,编辑器不校验,填错会直接导致打包后请求失败 - 检查
Assets/Plugins/Android/AndroidManifest.xml中是否存在Admob的ID声明:
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="你的安卓端Admob App ID" />- 确认
google-services.json已放在Assets根目录,Firebase自动生成的安卓端配置文件无缺失,若之前删除插件时删掉了自动生成的配置,可手动触发Firebase编辑器工具重新生成。
- 打开Unity菜单
- 第二步:检查Gradle与混淆配置
- 若使用自定义Gradle模板,确认
mainTemplate.gradle的repositories节点已配置google()、mavenCentral()源,且Admob、Firebase依赖项无缺失 - 若开启了R8/ProGuard混淆,需在
proguard-user.txt中添加Admob SDK防混淆规则:
混淆仅在安卓打包时生效,编辑器不会触发,所以会出现编辑器正常、打包后异常的情况。-keep class com.google.android.gms.ads.** { *; } -keep class com.google.ads.** { *; } - 若使用自定义Gradle模板,确认
- 第三步:排查测试设备本地异常
- 完全卸载测试设备上的应用,清除本地广告ID缓存后重启设备,再安装新的测试包,避免短时间内频繁触发广告请求绕过限流
- 更新测试设备的Google Play服务、系统WebView到最新版本,本地依赖版本过低也会导致广告请求失败
- 第四步:清理插件残留文件
若以上步骤都无效,大概率是旧插件的残留文件导致版本冲突:- 完全删除Assets目录下的GoogleMobileAds、Firebase相关文件夹
- 删除项目根目录下的Library文件夹(Unity会自动重建,不会影响项目代码)
- 重新导入对应版本的Admob、Firebase插件,重新完成所有配置后再打包测试
内容的提问来源于stack exchange,提问作者maskoff
相关产品推荐
相关产品推荐

