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

react-native-google-mobile-ads中GDPR同意表单无法获取问题求助

问题:react-native-google-mobile-ads无法触发EEA区域GDPR同意表单

问题背景

尝试通过react-native-google-mobile-ads向EEA区域用户展示GDPR同意表单,已在AdMob后台开启GDPR消息(状态为“message on”),并遵循官方指引调用API,但未得到预期触发同意表单的结果。

调用代码

const consentInfo = await AdsConsent.requestInfoUpdate({
  tagForUnderAgeOfConsent: true,
  testDeviceIdentifiers: [getDeviceId()],
  debugGeography: AdsConsentDebugGeography.EEA,
});

返回结果

{"canRequestAds": true, "isConsentFormAvailable": false, "privacyOptionsRequirementStatus": "NOT_REQUIRED", "status": "NOT_REQUIRED"}

排查与解决方案

  • 修正测试设备ID的获取方式
    react-native-device-info的getDeviceId()返回的是系统设备唯一ID,而AdMob需要的是广告测试设备ID(格式为一串字母数字组合)。可通过以下方式获取:

    • 运行App后,查看Android Logcat或Xcode控制台,搜索关键词Use AdRequest.Builder.addTestDevice("XXX"),其中的XXX即为正确的测试设备ID。
    • 将代码中的getDeviceId()替换为该ID后重新测试。
  • 核对AdMob GDPR消息配置

    • 确认GDPR消息的适用范围包含EEA区域。
    • 检查后台是否将当前测试设备添加到了「排除设备」列表,如有需移除。
    • 确认消息状态为“向用户显示”,未被暂停或禁用。
  • 调整debugGeography与测试设备ID的组合

    • 若测试设备ID配置错误,debugGeography: AdsConsentDebugGeography.EEA的地理位置模拟可能不生效。可先移除testDeviceIdentifiers参数,仅保留debugGeography测试(注意:无测试设备ID时可能加载真实广告,仅限测试环境操作)。
  • 检查tagForUnderAgeOfConsent参数的影响
    当tagForUnderAgeOfConsent: true时,GDPR规则下未成年人无需展示同意表单,会直接限制广告跟踪。可尝试将该参数改为false后测试是否能触发表单。

  • 清除App缓存重置状态
    卸载重装App或清除App缓存数据,避免之前的同意状态缓存干扰测试结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:52:34