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

Android项目Google Consent Mode V2调试日志缺失ad_personalization字段

在Android项目中使用Google Consent Mode V2时,调试视图下LogCat仅打印Setting consent, ... ad_storage=denied/granted和Setting consent, ... analytics_storage=denied/granted相关日志,ad_personalization字段完全不显示;部分设备同时缺失ad_user_data和ad_personalization字段,部分设备仅缺失ad_personalization字段。

已配置的清单文件meta-data:

<meta-data
    android:name="google_analytics_default_allow_analytics_storage"
    android:value="false" />

<meta-data
    android:name="google_analytics_default_allow_ad_storage"
    android:value="false" />

<meta-data
    android:name="google_analytics_default_allow_ad_user_data"
    android:value="false" />

<meta-data
    android:name="google_analytics_default_allow_ad_personalization_signals"
    android:value="false" />

代码中设置Consent的逻辑:

public void setConsent() {
    // Set consent types.
    Map<FirebaseAnalytics.ConsentType, FirebaseAnalytics.ConsentStatus> consentMap = new EnumMap<>(FirebaseAnalytics.ConsentType.class);
    consentMap.put(FirebaseAnalytics.ConsentType.ANALYTICS_STORAGE, FirebaseAnalytics.ConsentStatus.GRANTED);
    consentMap.put(FirebaseAnalytics.ConsentType.AD_STORAGE, FirebaseAnalytics.ConsentStatus.GRANTED);
    consentMap.put(FirebaseAnalytics.ConsentType.AD_USER_DATA, FirebaseAnalytics.ConsentStatus.GRANTED);
    consentMap.put(FirebaseAnalytics.ConsentType.AD_PERSONALIZATION, FirebaseAnalytics.ConsentStatus.GRANTED);

    mFirebaseAnalytics.setConsent(consentMap);
}

可能的原因及解决办法

  • 依赖库版本过低
    确保Firebase Analytics和Google Tag Manager相关依赖使用最新稳定版,旧版本可能对Consent Mode V2的字段支持不全。在build.gradle中更新依赖:

    implementation 'com.google.firebase:firebase-analytics:22.0.0+'
    implementation 'com.google.android.gms:play-services-tagmanager:20.4.0+'
    
  • 调试日志过滤规则限制
    检查LogCat的过滤条件,避免仅筛选了部分关键词导致字段遗漏。直接搜索Setting consent完整日志,或把日志级别调整为Verbose,确保所有日志都能显示。

  • 设备系统或Google Play服务版本差异
    低版本Android系统或Google Play服务可能不支持Consent Mode V2的全部字段。测试优先选用搭载Google Play服务22.0以上版本的设备,同时确保设备系统版本不低于Android 8.0(API 26)。

  • 初始化时机问题
    保证setConsent()方法在Firebase Analytics实例初始化完成后调用,且在任何事件发送前执行。可以把该方法放在FirebaseApp.initializeApp(this)之后,或者在Application的onCreate()方法中调用。

  • 默认配置与代码设置冲突
    虽然清单中配置了默认值为false,代码已覆盖为GRANTED,但某些场景下默认配置可能影响日志输出。可暂时移除清单中的meta-data配置,仅通过代码设置Consent,观察日志是否正常显示所有字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 11:06:36