已配置Google UMP及最新SDK,仍遇Firebase广告个性化同意指标未收集警告如何解决?
我已为AdMob配置Google UMP,并为Firebase Analytics添加了官方要求的Manifest值。近一周,我的Android应用Firebase后台出现以下警告:
欧洲经济区(EEA)的终端用户必须同意将其个人数据共享给Google用于广告用途。如果数据标记为未同意,广告个性化及衡量可能会受到影响。请检查您的Firebase同意设置。
查看Google Analytics流详情时,显示:
需要操作
广告个性化未收集同意指标 需要操作 为验证您的业务在向Google提交个人数据用于广告个性化前已获得EEA终端用户的同意,请实施广告个性化同意指标。如果个人数据未标记终端用户同意,EEA访客将不会被纳入导出至Google Ads的受众列表,进而影响广告个性化。如需设置同意指标,请使用同意管理平台或Consent Mode API。了解更多关于同意指标的信息 您可能需要更新支持EEA访客所需同意指标的Firebase Google Analytics Android和iOS SDK版本(Android:21.5.0,iOS:10.17.0)。
我的google-services.json已更新,且使用了最新版本的firebase-analytics:21.5.1、ump:user-messaging-platform:2.2.0,com.google.gms:google-services也已更新至最新版本。请问该如何修复此问题?
同步UMP同意状态到Firebase Consent Mode
在UMP获取用户的同意结果后,必须调用Firebase Analytics的setConsent()方法,将ad_personalization等关键同意指标的状态同步过去。示例代码:val consentInfo = ConsentInformation.getInstance(context) val adPersonalizationStatus = consentInfo.getConsentStatusForPurpose(ConsentPurpose.AD_PERSONALIZATION) val consentSettings = mutableMapOf( "ad_personalization" to if (adPersonalizationStatus == ConsentStatus.GRANTED) "granted" else "denied", "ad_storage" to if (consentInfo.isConsentGiven) "granted" else "denied", "analytics_storage" to if (consentInfo.isConsentGiven) "granted" else "denied" ) FirebaseAnalytics.getInstance(context).setConsent(consentSettings)确保同意流程优先于Firebase初始化
必须先完成UMP的同意弹窗展示、用户选择的流程,再初始化Firebase Analytics。如果Firebase先启动,初始的同意状态会缺失,导致后台触发警告。验证Manifest配置完整性
确认Manifest中已添加Consent Mode的高级模式配置:<meta-data android:name="google_analytics_consent_mode" android:value="advanced" />同时检查AdMob的APP ID配置是否正确存在。
测试EEA地区场景
使用VPN切换到EEA国家(如德国、法国),卸载重装应用,观察UMP是否正常展示同意表单,提交同意后,查看Firebase实时数据中的同意指标是否被正确标记。检查UMP后台配置
登录AdMob后台,确认UMP的消息模板中包含了广告个性化的同意选项,且对应的目的(Purpose)已正确关联到广告个性化的权限请求。清除缓存重新测试
旧的同意状态可能被缓存,导致后台数据未更新,建议清除应用数据或卸载重装后重新测试。
内容的提问来源于stack exchange,提问作者AndreaF

