setConsent

setConsent命令告知Web SDK是应发送数据(选择启用)、丢弃数据(选择禁用)还是使用defaultConsent(同意未知)。

Web SDK支持以下标准:

使用此命令时,Web SDK会将用户的首选项写入kndctr_<orgId>_consent Cookie。 无论访客的同意首选项如何,都会设置此Cookie,因为它存储该访客的同意首选项。 下次用户在浏览器中加载您的网站时,SDK将检索这些保留的首选项,以确定是否可将事件发送到Adobe。

Adobe建议您将任何同意对话框首选项与Web SDK同意分开存储。 Web SDK不提供检索同意的方法。 为确保用户首选项与SDK保持同步,您可以在每次加载页面时调用setConsent命令。 Web SDK仅在同意更改时进行服务器调用。

身份同步注意事项 identity-considerations

setConsent命令仅使用标识映射中的ECID,因为该命令在设备级别运行。 setConsent命令不考虑标识映射中的其他标识。

如果同时使用,defaultConsentsetConsent会根据其配置的值生成不同的数据收集、Cookie设置和标识结果。 有关完整的交互表,请参阅数据收集中的同意和标识。

使用setConsent命令

调用Web SDK的配置实例时运行setConsent命令。 您可以在此命令中包含以下对象:

  • consent[]consent对象的数组。 同意对象的格式有所不同,具体取决于您选择的标准和版本。 有关每个同意对象的示例,请参见下面的选项卡,具体取决于同意标准。
  • identityMap:一个对象,它控制如何生成ECID以及同意信息绑定到哪些ID。 Adobe建议当setConsent在其他命令(如sendEvent)之前运行时包含此对象。
  • edgeConfigOverrides:包含数据流配置的对象将覆盖
Adobe 2.0

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
// Set consent using the Adobe 2.0 standard
alloy("setConsent", {
  "consent": [{
    "standard": "Adobe",
    "version": "2.0",
    "value": {
      "collect": {
        "val": "y"
      },
      "metadata": {
        "time": "YYYY-03-17T15:48:42-07:00"
      }
    }
  }]
});
IAB TCF 2.0

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
// Set consent using the IAB TCF 2.0 standard
alloy("setConsent", {
  consent: [{
    "standard": "IAB TCF",
    "version": "2.0",
    "value": "CO052l-O052l-DGAMBFRACBgAIBAAAAABIYgEawAQEagAAAA",
    "gdprApplies": true,
    "gdprContainsPersonalData": true
  }]
});

IAB TCF 2.0 API提供了一个事件,用于指示客户何时更新同意。 当客户最初设置其首选项以及更新其首选项时,会发生这种情况。 您可以添加事件侦听器以运行setConsent命令:

code language-js
const identityMap = { ... };
window.__tcfapi('addEventListener', 2, function (tcData, success) {
  if (success && tcData.eventStatus === 'useractioncomplete') {
    window.alloy("setConsent", {
      identityMap,
      consent: [
        {
          standard: "IAB TCF",
          version: "2.0",
          value: tcData.tcString,
          gdprApplies: tcData.gdprApplies
        }
      ]
    });
  }
});

上述代码块监听useractioncomplete事件,然后设置同意,传递同意字符串和gdprApplies标记。 如果您有客户的自定义标识,请务必填写identityMap变量。

Adobe 1.0

Adobe 1.0标准consent对象

  • standard:您选择的同意标准。 为Adobe 1.0标准将此属性设置为"Adobe"
  • version:表示同意标准版本的字符串。 为Adobe 1.0标准将此属性设置为"1.0"
  • value.general:同意值。 当用户选择加入时将此项设置为"in",当用户选择退出时将此项设置为"out"
code language-js
// Set consent using the Adobe 1.0 standard
alloy("setConsent", {
  "consent": [{
    "standard": "Adobe",
    "version": "1.0",
    "value": {
      "general": "in"
    }
  }]
});

在一个请求中发送多个标准 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 操作。

recommendation-more-help
1ae86b30-e55e-49c1-ab11-9d0356a5f3e1