本页介绍了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。
存储同意如何影响默认值 stored-consent
当访客设置其同意时,SDK会通过您传递给forRequest的Cookie服务,将其存储在kndctr_<orgId>_consent Cookie中。 在后续的请求中,只要访客的身份Cookie也存在,SDK就会使用存储的首选项,而不是defaultConsent。 如果缺少身份Cookie,SDK会放弃存储的同意,因为同意与访客的身份相关联。
服务器SDK使用与Web SDK相同的Cookie名称。 如果您的Cookie服务读取访客的浏览器Cookie,则访客在浏览器中记录的同意也适用于该服务器。
如果您没有将Cookie服务传递给forRequest,SDK将记不起两次请求之间的访客同意。 在这种情况下,每个请求都从defaultConsent开始。