此頁面說明伺服器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拒絕。 只有當執行個體包含createInstance預設包含的Consent元件時,才能使用此屬性。
不支援待處理的同意 pending
Web SDK也支援"pending",在訪客做出選擇之前,它會在瀏覽器中保留事件。 伺服器SDK不支援"pending",configure拒絕它。
在瀏覽器中,當訪客決定時,頁面會保持開啟,以便網頁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開始。