[Alpha]{class="badge informative"}

defaultConsent (服务器SDK)

本页介绍了Server SDK configure方法中的defaultConsent。 对于Web SDK,请参阅defaultConsent.

defaultConsent属性确定Server SDK是否为没有存储同意首选项的访客收集数据。 您通过setConsent记录的访客存储首选项的优先级始终高于此默认值。

调用configure时设置defaultConsent字符串属性。 它支持以下值:

  • "in": SDK会发送数据,直到访客选择退出为止。 这是默认值。
  • "out":在访客选择加入之前,SDK不会发送数据。 诸如sendEvent之类的方法无需联系Adobe即可解析为空对象。
await alloy.configure({
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  edgeCredentials: {
    clientId: process.env.ADOBE_CLIENT_ID,
    clientSecret: process.env.ADOBE_CLIENT_SECRET,
    scopes: process.env.ADOBE_SCOPES.split(",")
  },
  defaultConsent: "out"
});

值区分大小写。 任何其他值都会导致configure拒绝。 仅当实例包含Consent组件(默认情况下包括createInstance)时,此属性才可用。

不支持待处理同意 pending

Web SDK还支持"pending",在访客做出选择之前,该功能会在浏览器中保存事件。 服务器SDK不支持"pending",configure拒绝它。

在浏览器中,页面在访客做出决定时保持打开状态,以便Web SDK之后可以发送举办的活动。 在服务器上,每个forRequest句柄仅针对单个请求持续存在。 来自同一访客的后续请求无法释放先前请求保留的事件,因此永远不会发送这些事件。

相反,跟踪每个访客是否已在您自己的应用程序中做出同意决策。 对于尚未做出决定的访客,请勿调用sendEvent。

当访客设置其同意时,SDK会通过您传递给forRequest的Cookie服务,将其存储在kndctr_<orgId>_consent Cookie中。 在后续的请求中,只要访客的身份Cookie也存在,SDK就会使用存储的首选项,而不是defaultConsent。 如果缺少身份Cookie,SDK会放弃存储的同意,因为同意与访客的身份相关联。

服务器SDK使用与Web SDK相同的Cookie名称。 如果您的Cookie服务读取访客的浏览器Cookie,则访客在浏览器中记录的同意也适用于该服务器。

如果您没有将Cookie服务传递给forRequest,SDK将记不起两次请求之间的访客同意。 在这种情况下,每个请求都从defaultConsent开始。

recommendation-more-help
experience-platform-help-collection