setConsent
setConsent命令告知Web SDK是应发送数据(选择启用)、丢弃数据(选择禁用)还是使用defaultConsent(同意未知)。
Web SDK支持以下标准:
-
Adobe standard:同时支持1.0和2.0标准。
-
IAB透明度和同意框架:如果使用此标准,且您的实施配置正确,则访客的实时客户配置文件将更新为同意信息:
- XDM个人配置文件架构包含IAB TCF 2.0同意字段组。
- 体验事件架构包含IAB TCF 2.0同意字段组。
- 您将IAB同意信息包含在事件XDM对象中。 在发送事件数据时,Web SDK不会自动包含同意信息。
使用此命令后,Web SDK会将用户的首选项写入Cookie。 下次用户在浏览器中加载您的网站时,SDK将检索这些保留的首选项,以确定是否可将事件发送到Adobe。
Adobe建议您将任何同意对话框首选项与Web SDK同意分开存储。 Web SDK不提供检索同意的方法。 为确保用户首选项与SDK保持同步,您可以在每次加载页面时调用setConsent命令。 Web SDK仅在同意更改时进行服务器调用。
身份同步注意事项 identity-considerations
setConsent命令仅使用标识映射中的ECID,因为该命令在设备级别运行。 setConsent命令不考虑标识映射中的其他标识。
将defaultConsent与setConsent一起使用 using-consent
Web SDK提供了两个互补的同意配置命令:
defaultConsent:此命令用于捕获使用Web SDK的Adobe客户的同意首选项。setConsent:此命令用于捕获网站访客的同意首选项。
如果同时使用这些设置,则可能会导致数据收集和Cookie设置结果有所不同,具体取决于其配置的值。
请参阅下表,根据同意设置了解何时进行数据收集以及何时设置Cookie。
defaultConsentsetConsentinininoutinpendinginpendingoutpendingoutinoutoutout在同意配置允许时设置以下Cookie:
Demdex cookiekndctr_orgid_clusterkndct_orgid_identitykndctr_orgid_consents_ecids_ecid=MCMID|<ECID>。调用Web SDK的配置实例时运行setConsent命令。 您可以在此命令中包含以下对象:
consent[]:consent对象的数组。 同意对象的格式有所不同,具体取决于您选择的标准和版本。 有关每个同意对象的示例,请参见下面的选项卡,具体取决于同意标准。identityMap:一个对象,它控制如何生成ECID以及同意信息绑定到哪些ID。 Adobe建议当setConsent在其他命令(如sendEvent)之前运行时包含此对象。edgeConfigOverrides:包含数据流配置的对象将覆盖。
Adobe 2.0标准consent对象
如果您将数据发送到Adobe Experience Platform,则需要在配置文件架构中包含隐私架构字段组。 有关Adobe Experience Platform 2.0标准的更多信息,请参阅Adobe中的治理、隐私和安全性。 您可以在对应于consents配置文件字段组Consents and Preferences字段的架构的下方值对象中添加数据。
-
standard:您选择的同意标准。 为Adobe 2.0标准将此属性设置为"Adobe"。 -
version:表示同意标准版本的字符串。 为Adobe 2.0标准将此属性设置为"2.0"。 -
value:包含同意值的对象。value.collect.val:同意值。 当用户选择加入时将此项设置为"y",当用户选择退出时将此项设置为"n"。value.metadata.time:用户上次更新其同意设置的时间戳。
| code language-js |
|---|
|
IAB TCF 2.0标准consent对象
要记录通过交互式Advertising Bureau Europe (IAB)透明度和同意框架(TCF)标准提供的用户同意首选项,请设置如下所示的同意字符串。
以这种方式设置同意后,Real-time Customer Profile将更新同意信息。 要使此功能正常工作,配置文件XDM架构需要包含配置文件隐私架构字段组。 发送事件时,需要手动将IAB同意信息添加到事件XDM对象。 Web SDK不会自动在事件中包含同意信息。
要在事件中发送同意信息,您必须将体验事件隐私字段组添加到已启用Profile的XDM ExperienceEvent架构中。 有关如何配置此架构的步骤,请参阅数据集准备指南中有关更新ExperienceEvent架构的部分。
standard:您选择的同意标准。 对于IAB TCF 2.0标准,将此属性设置为"IAB TCF"。version:表示同意标准版本的字符串。 对于IAB TCF 2.0标准,将此属性设置为"2.0"。value:包含同意值的字符串。gdprApplies:一个布尔值,用于确定GDPR是否适用于此同意值。 其默认值为true。gdprContainsPersonalData:一个布尔值,用于确定与此用户关联的事件数据是否包含个人数据。 其默认值为false。
| code language-js |
|---|
|
IAB TCF 2.0 API提供了一个事件,用于指示客户何时更新同意。 当客户最初设置其首选项以及更新其首选项时,会发生这种情况。 您可以添加事件侦听器以运行setConsent命令:
| code language-js |
|---|
|
上述代码块监听useractioncomplete事件,然后设置同意,传递同意字符串和gdprApplies标记。 如果您有客户的自定义标识,请务必填写identityMap变量。
Adobe 1.0标准consent对象
standard:您选择的同意标准。 为Adobe 1.0标准将此属性设置为"Adobe"。version:表示同意标准版本的字符串。 为Adobe 1.0标准将此属性设置为"1.0"。value.general:同意值。 当用户选择加入时将此项设置为"in",当用户选择退出时将此项设置为"out"。
| code language-js |
|---|
|
在一个请求中发送多个标准 multiple-standards
Web SDK还支持在请求中发送多个同意对象,如下面的示例所示。
alloy("setConsent", {
consent: [{
standard: "Adobe",
version: "2.0",
value: {
collect: {
val: "y"
},
metadata: {
time: "YYYY-03-17T15:48:42-07:00"
}
}
}, {
standard: "IAB TCF",
version: "2.0",
value: "CO1Z4yuO1Z4yuAcABBENArCsAP_AAH_AACiQGCNX_T5eb2vj-3Zdt_tkaYwf55y3o-wzhhaIse8NwIeH7BoGP2MwvBX4JiQCGBAkkiKBAQdtHGhcCQABgIhRiTKMYk2MjzNKJLJAilsbe0NYCD9mnsHT3ZCY70--u__7P3fAwQgkwVLwCRIWwgJJs0ohTABCOICpBwCUEIQEClhoACAnYFAR6gAAAIDAACAAAAEEEBAIABAAAkIgAAAEBAKACIBAACAEaAhAARIEAsAJEgCAAVA0JACKIIQBCDgwCjlACAoAAAAA.YAAAAAAAAAAA",
gdprApplies: true
}]
});
同意偏好设置的持久性 persistence
使用setConsent命令向Web SDK传达用户偏好设置后,SDK会保留对Cookie的用户偏好设置。 下次用户在浏览器中加载您的网站时,Web SDK将检索并使用这些保留的首选项来确定是否可将事件发送到Adobe。
单独存储用户的首选项,以便使用当前首选项显示同意对话框。 无法从Web SDK检索用户偏好设置。 为确保用户首选项与SDK保持同步,您可以在每次加载页面时调用setConsent命令。 Web SDK仅在首选项发生更改时进行服务器调用。
使用Web SDK标记扩展设置同意
与此命令等效的Web SDK标记扩展是 Set consent 操作。