setConsent
setConsent
命令告知Web SDK是应发送数据(选择启用)、丢弃数据(选择禁用)还是使用defaultConsent
(同意未知)。
Web SDK支持以下标准:
-
Adobe标准:同时支持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仅在同意更改时进行服务器调用。
将defaultConsent
与setConsent
一起使用 using-consent
Web SDK提供了两个互补的同意配置命令:
defaultConsent
:此命令用于使用Web SDK捕获Adobe客户的同意首选项。setConsent
:此命令用于捕获网站访客的同意首选项。
如果同时使用这些设置,则可能会导致数据收集和Cookie设置结果有所不同,具体取决于其配置的值。
请参阅下表,根据同意设置了解何时进行数据收集以及何时设置Cookie。
in
in
in
out
in
pending
in
pending
out
pending
out
in
out
out
out
在同意配置允许时设置以下Cookie:
s_ecid=MCMID|<ECID>
。使用Web SDK标记扩展设置同意
在Adobe Experience Platform数据收集标记界面中,将同意设置作为规则中的一项操作。
- 使用您的Adobe ID凭据登录experience.adobe.com。
- 导航到 数据收集 > 标记。
- 选择所需的标记属性。
- 导航到 规则,然后选择所需的规则。
- 在操作下,选择现有操作或创建操作。
- 将扩展下拉字段设置为 Adobe Experience Platform Web SDK,并将操作类型设置为 设置同意。
- 在右侧设置所需字段,包括 标准 和 一般同意。
- 单击 保留更改,然后运行发布工作流程。
您可以在此操作中包含多个同意对象。
使用Web SDK JavaScript库设置同意
调用Web SDK的配置实例时运行setConsent
命令。 您可以在此命令中包含以下对象:
consent[]
:consent
对象的数组。 同意对象的格式有所不同,具体取决于您选择的标准和版本。 有关每个同意对象的示例,请参见下面的选项卡,具体取决于同意标准。identityMap
:一个对象,它控制如何生成ECID以及同意信息绑定到哪些ID。 Adobe建议当setConsent
在其他命令(如sendEvent
)之前运行时包含此对象。edgeConfigOverrides
:包含数据流配置的对象将覆盖。
Adobe2.0标准consent
对象
如果您使用的是Adobe Experience Platform,则需要在配置文件架构中包含隐私架构字段组。 有关Adobe2.0标准的详细信息,请参阅Adobe Experience Platform中的治理、隐私和安全性。 您可以在对应于同意和偏好设置配置文件字段组的consents
字段的架构的下方值对象中添加数据。
-
standard
:您选择的同意标准。 对于Adobe2.0标准,将此属性设置为"Adobe"
。 -
version
:表示同意标准版本的字符串。 对于Adobe2.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 |
---|
|
Adobe1.0标准consent
对象
standard
:您选择的同意标准。 对于Adobe1.0标准,将此属性设置为"Adobe"
。version
:表示同意标准版本的字符串。 对于Adobe1.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: "2021-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才会进行服务器调用。
在设置同意时同步身份 sync-identities
当默认同意(通过defaultConsent参数设置)设置为pending
或out
时,setConsent
设置可能是第一个发出并建立身份的请求。 因此,在第一个请求上同步身份可能很重要。 您可以将标识映射添加到setConsent
命令,就像在sendEvent
命令上一样。 有关如何将标识映射包含在命令中的示例,请参见使用identityMap。