整合Experience Platform Web SDK以處理客戶同意資料
Adobe Experience Platform Web SDK可讓您擷取同意管理平台(CMP)產生的客戶同意訊號,並在同意變更事件發生時傳送給Adobe Experience Platform。
SDK未與任何立即可用的CMP介面。 您可以自行決定如何將SDK整合至您的網站、接聽CMP中的同意變更,以及呼叫適當的命令。 本檔案提供將CMP與Experience Platform Web SDK整合的一般指引。
先決條件 prerequisites
本教學課程假設您已決定如何在CMP中產生同意資料,並建立資料集,其中包含符合Adobe標準或IAB透明與同意架構(TCF) 2.0標準的同意欄位。 如果您尚未建立此資料集,請先參閱下列教學課程,再返回閱讀本指南:
本指南會遵循在UI中使用標籤擴充功能設定SDK的工作流程。 如果您不想使用擴充功能,且想要直接在網站上內嵌獨立版本的SDK,請參閱下列檔案,而非本指南:
本指南中的安裝步驟需要您實際瞭解標籤擴充功能及其在Web應用程式中的安裝方式。 如需詳細資訊,請參閱下列檔案:
設定資料串流
為了讓SDK將資料傳送至Experience Platform,您必須先設定資料流。 在資料收集UI或Experience Platform UI中,選取左側導覽中的Datastreams。
建立新資料流或選取要編輯的現有資料流後,選取 Adobe Experience Platform 旁的切換按鈕。 接下來,使用下列值完成表單。
完成時,選取畫面底部的Save,然後繼續按照任何其他提示完成設定。
安裝及設定Experience Platform Web SDK
依照上節所述建立資料串流後,您必須設定Experience Platform Web SDK擴充功能,才能最終在網站上部署。 如果您的標籤屬性上未安裝SDK擴充功能,請在左側導覽中選取「Extensions」,然後選取「Catalog」標籤。 然後,在可用擴充功能清單中,選取Experience Platform SDK擴充功能底下的Install。
設定SDK時,在「Edge Configurations」下選取您在上一步中建立的資料流。
選取 Save 以安裝擴充功能。
建立資料元素以設定預設同意
安裝SDK擴充功能後,您可選擇為使用者建立資料元素,以代表預設的資料收集同意值(collect.val)。 如果您想要根據使用者有不同的預設值,例如pending適用於歐盟使用者,而in適用於北美使用者,則此功能相當實用。
在此使用案例中,您可以實作下列專案,以根據使用者地區設定預設同意:
- 判斷使用者在網頁伺服器上的區域。
- 在網頁上的
script標籤(內嵌程式碼)之前,轉譯根據使用者地區設定script變數的個別adobeDefaultConsent標籤。 - 設定使用
adobeDefaultConsentJavaScript變數的資料元素,並使用此資料元素作為使用者的預設同意值。
如果使用者的區域由CMP決定,您可以改用以下步驟:
- 處理頁面上的「CMP已載入」事件。
- 在事件處理常式中,根據使用者的地區設定
adobeDefaultConsent變數,然後使用JavaScript載入標籤程式庫指令碼。 - 設定使用
adobeDefaultConsentJavaScript變數的資料元素,並使用此資料元素作為使用者的預設同意值。
若要在UI中建立資料元素,請在左側導覽中選取Data Elements,然後選取 Add Data Element 以導覽至資料元素建立對話方塊。
您必須從此處,根據JavaScript Variable建立adobeDefaultConsent資料元素。 完成後選取「Save」。
建立資料元素後,導覽回網頁SDK擴充功能設定頁面。 在Privacy區段下,選取Provided by data element,然後使用提供的對話方塊來選取您先前建立的預設同意資料元素。
在您的網站上部署擴充功能
完成擴充功能設定後,即可將其整合至您的網站。 請參閱標籤檔案中的發佈指南,以取得有關如何部署已更新程式庫組建的詳細資訊。
發出同意變更命令 commands
將SDK擴充功能整合至您的網站後,您就可以開始使用Experience Platform Web SDK setConsent命令,將同意資料傳送至Experience Platform。
setConsent命令會執行兩個動作:
- 直接在設定檔存放區中更新使用者的設定檔屬性。 這不會將任何資料傳送至Data Lake。
- 建立記錄同意變更事件之時間戳記帳戶的體驗事件。 此資料會直接傳送至Data Lake,並可用來追蹤同意偏好設定在一段時間內的變更。
何時呼叫setConsent
在兩種情況下,應該在您的網站上呼叫setConsent:
- 同意載入頁面時(換言之,每次載入頁面時)
- 做為CMP連結或事件監聽器的一部分,可偵測同意設定中的變更
setConsent語法
setConsent命令需要包含單一陣列型別屬性的裝載物件: consent。 consent陣列必須至少包含一個物件,以提供Adobe標準的必要同意欄位。
Adobe標準的必要同意欄位會顯示在下列範例setConsent呼叫中:
alloy("setConsent", {
consent: [{
standard: "Adobe",
version: "2.0",
value: {
collect: {
val: "y"
},
share: {
val: "y"
},
personalize: {
content: {
val: "y"
}
},
metadata: {
time: "YYYY-10-12T15:52:25+00:00"
}
}
}]
});
standardAdobe。versionstandard下表示的同意標準的版本號碼。 此值必須設定為2.0,以進行Adobe標準的同意處理。valueAdobe (例如IAB TCF),您可以為每個標準新增其他物件至consent陣列。 每個物件都必須針對它們所代表的同意標準,包含適當的standard、version和value值。以下JavaScript提供處理網站上同意偏好設定變更的函式範例,可在事件監聽器或CMP勾點中作為回呼:
var setConsent = function () {
// Retrieve the current consent data.
var categories = getConsentData();
// If the script is running on a consent change, generate a new timestamp.
// If the script is running on page load, set the timestamp to when the consent values last changed.
var now = new Date();
var collectedAt = consentChanged ? now.toISOString() : categories.collectedAt;
// Map the consent values and timestamp to XDM
var consentXDM = {
collect: {
val: categories.collect !== -1 ? "y" : "n"
},
personalize: {
content: {
val: categories.personalizeContent !== -1 ? "y" : "n"
}
},
share: {
val: categories.share !== -1 ? "y" : "n"
},
metadata: {
time: collectedAt
}
};
// Pass the XDM object to the Experience Platform Web SDK
alloy("setConsent", {
consent: [{
standard: "Adobe",
version: "2.0",
value: consentXDM
}]
});
});
處理SDK回應
所有Experience Platform SDK命令都會傳回表示呼叫成功或失敗的Promise。 然後,您可以將這些回應用於其他邏輯,例如向客戶顯示確認訊息。 如需詳細資訊,請參閱命令回應。
當您成功使用SDK進行setConsent呼叫後,您可以在Experience Platform UI中使用設定檔檢視器,驗證資料是否登陸設定檔存放區。 如需詳細資訊,請參閱依身分瀏覽設定檔的相關章節。
後續步驟
依照本指南,您已設定Experience Platform Web SDK擴充功能將同意資料傳送至Experience Platform。 如需測試實作的指引,請參閱您正在實作的同意標準檔案: