Android 13应用无AD_ID权限致广告ID重置问题求助
解决Play控制台AD_ID权限提示问题(React Native + react-native-google-mobile-ads ^11.2.0)
问题场景
- React Native安卓应用使用
react-native-google-mobile-ads@^11.2.0 - 已在Play控制台应用内容板块完成AD_ID相关配置(勾选广告及分析选项),线上旧版本广告运行正常
- 新版本仅新增几处Banner广告,发布时收到Play控制台提示:
Apps targeting Android 13 (API 33) without AD_ID permission will have their advertising ID reset
- 编译正式版后,在
android\app\build\intermediates\bundle_manifest\release\AndroidManifest.xml中确认存在<uses-permission android:name="com.google.android.gms.permission.AD_ID" />权限配置
可行解决方案
1. 显式声明AD_ID权限
虽然编译后的manifest中已存在该权限,但Play控制台可能无法识别依赖自动注入的间接声明。直接在android/app/src/main/AndroidManifest.xml中显式添加权限:
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
同时确认项目的targetSdkVersion已设置为33或更高(对应Android 13),这是触发该提示的前提条件。
2. 强制保留权限避免被合并规则移除
部分依赖的manifest合并规则可能会自动移除AD_ID权限,可在android/app/build.gradle中添加配置强制保留:
android { // 其他现有配置 manifestPlaceholders = [ "googleMobileAdsAdIdPermissionEnabled": "true" ] }
react-native-google-mobile-ads包原生支持该占位符,显式设为true可确保权限不会被合并过程移除。
3. 清理缓存后重新编译
- 执行命令清理编译缓存:
./gradlew clean - 重新构建正式版安装包
- 再次验证编译后的manifest文件中权限是否存在
- 重新提交新版本至Play控制台
内容的提问来源于stack exchange,提问作者Kıvanç ARSLAN
相关产品推荐
相关产品推荐

