本页面中的内容面向在应用中使用 Google Analytics for Firebase SDK 并希望集成意见征求模式的开发者。如需了解关于意见征求模式的基本信息,请参阅意见征求模式概览。
通过 Google Analytics(分析)提供的意见征求模式,您可以根据用户的同意情况来调整 SDK 的行为方式。如需了解所有可用的参数,请参阅用户意见征求类型。
准备工作
您需要先实现以下两项内容,然后才能管理用户意见征求模式:
- Google Analytics for Firebase SDK
一个用于获取用户同意情况的意见征求设置横幅
设置意见征求模式
若要设置意见征求模式,您需要执行以下操作:
- 建立默认的意见征求机制。
- 根据用户与意见征求设置的互动情况来更新同意情况。
第 1 步:建立默认的意见征求机制
默认情况下,未设置任何意见征求模式值。若要为应用设置默认同意情况,请执行以下操作:
- 打开您应用的 AndroidManifest.xml 文件。
添加意见征求模式键值对。键表明用户意见征求类型,而值表明用户同意情况。值可以是
true
(意味着用户选择同意),也可以是false
(意味着用户选择拒绝)。设置以下参数:google_analytics_default_allow_analytics_storage
google_analytics_default_allow_ad_storage
google_analytics_default_allow_ad_user_data
google_analytics_default_allow_ad_personalization_signals
保存您所做的更改。接下来,实现意见征求机制以更新意见征求值。
例如,若要将所有参数默认设置为均已征得用户同意,请按以下步骤操作:
<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />
第 2 步:更新同意情况
若要在应用启动后更新用户意见征求值,请调用 setConsent
方法。
即使应用多次执行,通过 setConsent
方法设置的值也会保持不变,并覆盖默认设置。即使用户关闭并重新打开应用,该值也会保持为所设置的状态,直到再次调用 setConsent
。setConsent
仅更新您指定的参数。
如果用户撤销之前就是否同意使用 Google Analytics(分析)或 Google Ads 存储所作出的选择,Google Analytics(分析)将删除所有用户属性,包括就是否同意使用
ad personalization
所作出的选择。若要保留用户就是否同意使用广告个性化所作出的选择,请使用setConsent
(Kotlin+KTX | Java)恢复之前针对广告个性化设置的值。
下面的示例显示了将不同的意见征求值更新为 granted
的 setConsent
方法:
Java
// Set consent types.
Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);
mFirebaseAnalytics.setConsent(consentMap);
Kotlin
Firebase.analytics.setConsent {
analyticsStorage(ConsentStatus.GRANTED)
adStorage(ConsentStatus.GRANTED)
adUserData(ConsentStatus.GRANTED)
adPersonalization(ConsentStatus.GRANTED)
}
升级到意见征求模式 v2
Google 始终致力于打造注重隐私保护的数字广告生态系统,在这一过程中,我们正在加强对《欧盟地区用户意见征求政策》的执行力度。
除了 Google Ads 存储或 Google Analytics(分析)存储对应的参数之外,意见征求模式用户还需要发送两个新参数:
更新您应用的 AndroidManifest.xml 文件,在其中添加以下参数:
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" /> <meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />
更新用户意见征求调用,在其中包含广告用户数据和广告个性化对应的参数:
Java
// Set consent types. Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class); consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED); consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED); consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED); consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED); mFirebaseAnalytics.setConsent(consentMap);
Kotlin
Firebase.analytics.setConsent { analyticsStorage(ConsentStatus.GRANTED) adStorage(ConsentStatus.GRANTED) adUserData(ConsentStatus.GRANTED) adPersonalization(ConsentStatus.GRANTED) }
验证用户意见征求设置
您可以通过查看应用的日志消息,验证用户意见征求设置是否按预期运行。
请按照以下步骤操作:
- 在您的设备上启用详细日志记录。
在 Android Studio Logcat 中,找到以
Setting consent
开头的日志消息。例如,如果已启用 Google Ads 存储,您会看到以下日志消息:Setting consent, ... AD_STORAGE=granted