setConsent

setConsent命令會告訴網頁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物件

若要記錄透過Interactive Advertising Bureau Europe (IAB) Transparency and Consent Framework (TCF)標準提供的使用者同意偏好設定,請設定同意字串,如下所示。

以這種方式設定同意時,即時客戶設定檔會更新同意資訊。 為了讓此功能發揮作用,設定檔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。 下次使用者在瀏覽器中載入您的網站時,網頁SDK會擷取並使用這些持續存在的偏好設定來判斷是否可將事件傳送至Adobe。

單獨儲存使用者的偏好設定,以便您能使用目前的偏好設定顯示同意對話方塊。 無法從網頁SDK擷取使用者偏好設定。 若要確保使用者偏好設定與SDK保持同步,您可以在每次載入頁面時呼叫setConsent命令。 網頁SDK只會在偏好設定變更時進行伺服器呼叫。

使用網頁SDK標籤擴充功能設定同意

等同於這個命令的網頁SDK標籤延伸是 Set consent 動作。

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