[Alpha]{class="badge informative"}

setConsent (伺服器SDK)

此頁面說明伺服器SDK setConsent方法。 若為Web SDK,請參閱setConsent.

setConsent方法會告訴伺服器SDK它是否可以為訪客(選擇加入)傳送資料,或者必須捨棄它(選擇退出)。 SDK會將訪客的偏好設定傳送至Edge Network,然後透過您傳遞至forRequest的Cookie服務將結果儲存至kndctr_<orgId>_consent Cookie。

SDK支援下列同意標準:

只有當執行個體包含createInstance預設包含的Consent元件時,才能使用此方法。

呼叫訪客的setConsent call

同意屬於單一訪客,因此請一律在該訪客的forRequest控制代碼上呼叫setConsent,不要在頂層執行個體上呼叫。 以下範例使用Adobe 2.0標準:

const visitor = alloy.forRequest({ request: req, cookie: visitorCookies });

await visitor.setConsent({
  consent: [{
    standard: "Adobe",
    version: "2.0",
    value: {
      collect: { val: "y" }
    }
  }]
});

以下範例使用Adobe 1.0標準:

await visitor.setConsent({
  consent: [{
    standard: "Adobe",
    version: "1.0",
    value: { general: "in" }
  }]
});

下列範例使用IAB TCF 2.0標準:

await visitor.setConsent({
  consent: [{
    standard: "IAB TCF",
    version: "2.0",
    value: "CO052l-O052l-DGAMBFRACBgAIBAAAAAAIYgEawAQEagAAAA",
    gdprApplies: true
  }]
});

如果您使用IAB TCF標準且想要知道訪客設定檔上的同意資料,請也將IAB同意資訊包含在事件xdm物件中。 SDK不會自動將其新增至事件。

SDK會透過您傳遞至forRequest的cookie服務讀取及寫入同意Cookie:

  • 如果您的Cookie服務讀取訪客的瀏覽器Cookie,則訪客先前在伺服器上或使用Web SDK的瀏覽器中所記錄的同意已經適用。 在訪客的偏好設定變更之前,您不需要再呼叫setConsent。
  • 如果您未傳遞Cookie服務,SDK就記不得兩次要求之間的同意。 每個請求都從defaultConsent開始。

如果已經傳送訪客的相同偏好設定,SDK會略過請求。 它會追蹤透過storage服務傳送的偏好設定,因此只有在您將該訪客的storage服務傳遞至forRequest時,此檢查才會適用於所有請求。 否則,即使訪客的偏好設定沒有變更,每個呼叫都會傳送要求給Edge Network。 當訪客進行或變更同意選擇(而不是在每個要求上)時,請呼叫setConsent。

要求未經過驗證。 請確定您的資料流接受未驗證的請求。 請參閱設定資料流存取型別。

選項 options

setConsent方法接受具有下列屬性的物件:

  • consent:必要。 同意物件的陣列,每個物件都採用其中一個支援的標準。
  • identityMap:訪客的身分對應。 Edge Network在裝置層級套用同意,因此只使用來自此地圖的ECID。
  • edgeConfigOverrides:此要求的資料流設定覆寫物件。

結果物件 result

當Edge Network接受同意偏好設定時,setConsent方法會傳回以空白物件解析的Promise。

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