UMP SDK许可在Firebase Analytics中的集成及场景配置问询
UMP SDK与Firebase Analytics整合及付费用户场景配置
一、UMP许可结果与Firebase Analytics的整合
1. 获取并同步许可状态到Firebase
首先通过UMP SDK获取当前用户的许可状态:
val consentInfo = ConsentInformation.getInstance(context) val consentStatus = consentInfo.consentStatus
拿到状态后,将其作为用户属性同步到Firebase Analytics,确保所有后续事件都能关联许可状态:
val firebaseAnalytics = FirebaseAnalytics.getInstance(context) firebaseAnalytics.setUserProperty("ad_consent_status", consentStatus.name)
如果用户后续通过CMP更新了许可,要在ConsentFormListener的onConsentFormDismissed回调中重新同步这个属性,保证数据实时性。
2. 根据许可状态控制Analytics数据收集
- 若用户选择个性化许可:保持Firebase Analytics正常启用,可使用所有功能,包括基于用户属性的个性化分析。
- 若用户选择非个性化许可:开启Analytics收集,但避免使用用户身份、设备标识符等做个性化追踪,仅做聚合分析。
- 若用户完全拒绝许可:调用
firebaseAnalytics.setAnalyticsCollectionEnabled(false)关闭数据收集,确保合规。
注意:UMP的许可状态直接决定Firebase Analytics的收集权限,必须在Analytics初始化前完成UMP许可检查,避免违规收集数据。
二、付费用户场景:仅针对Firebase Analytics使用UMP SDK
完全可以针对付费用户单独配置UMP SDK,只处理Analytics合规,跳过广告相关逻辑,步骤如下:
1. 标记付费用户身份
在应用启动时,通过本地存储(如SharedPreferences)或后端接口判断用户是否为付费用户,比如:
val isPaidUser = sharedPreferences.getBoolean("is_paid_user", false)
2. 自定义UMP请求参数
针对付费用户,调整UMP的请求参数,只请求与Analytics相关的许可,跳过广告合规逻辑:
val paramsBuilder = ConsentRequestParameters.Builder() if (isPaidUser) { // 仅请求Analytics相关许可,不处理广告 paramsBuilder.setConsentPurpose(ConsentPurpose.ANALYTICS) } else { // 免费用户保留默认配置,处理广告+Analytics合规 } consentInfo.requestConsentInfoUpdate(context, paramsBuilder.build(), consentInfoUpdateListener)
3. 配置专属许可模板(可选)
在UMP控制台创建两个许可模板:
- 免费用户模板:包含广告个性化、Analytics收集等完整选项
- 付费用户模板:仅展示Analytics数据收集的许可选项
代码中根据用户类型加载对应模板,避免付费用户看到无关的广告许可内容。
4. 根据许可结果控制Analytics
付费用户的UMP结果仅作用于Firebase Analytics:
- 用户允许Analytics收集:启用
setAnalyticsCollectionEnabled(true) - 用户拒绝:关闭收集
setAnalyticsCollectionEnabled(false)
实战经验
- 测试时使用UMP的测试设备ID模拟不同许可状态,同时在Firebase控制台验证用户属性和事件是否正确上报。
- 付费用户的UMP流程要尽可能简洁,避免冗余选项,提升用户体验。
- 无论用户类型如何,都要确保UMP的许可请求符合GDPR、CCPA等地区法规,不要跳过必要的合规步骤。
内容的提问来源于stack exchange,提问作者Sergio Viudes
相关产品推荐
相关产品推荐

