選擇加入參考資料

選擇加入程式庫 API 與組態設定參考資料。

同意設定會當做類別提供給選擇加入函數:

adobe.OptInCategories = { 
    "AAM": "aam", 
    "ANALYTICS": "aa", 
    "ECID": "ecid", 
    "TARGET": "target" 
}

選擇加入設定參數

本節探討如何使用 API 來設定選擇加入。大部分的設定與實作都可使用 Experience Platform Launch 擴充功能來完成。

訪客 JavaScript 的 getInstance() 函數中提供選擇加入設定,可實例化全域 adobe 物件。下表列出與選擇加入服務有關的訪客 JS 設定。

doesOptInApply (boolean or function that evaluates to a boolean)

若為 false,則表示訪客不需要選擇加入。Experience Cloud 中的結果會建立 Cookie,無論類別為選擇加入還是選擇退出。此設定會整體啟用或停用選擇加入。

preOptInApprovals (Object <adobe.OptInCategories enum: boolean>)

當訪客未設定偏好設定時,定義核准或拒絕的類別,且以組織預設值參照。

previousPermissions (Object<adobe.OptInCategories enum: boolean>)

訪客明確設定的偏好設定。此設定的權限會覆寫組織的預設值 (previousPermissions 覆寫 preOptInApprovals)。

isOptInStorageEnabled (boolean)

啟用選擇加入以將權限儲存在第一方 Cookie 中 (位於目前客戶的網域內)

(選擇性) optInCookiesDomain (string)

用於選擇加入 Cookie 的第一方網域或子網域 (若 isOptInStorageEnabled 為 true)

(選擇性) optInStorageExpiry (integer)

覆寫預設到期時間 13 個月的秒數

同意參數的變更

在造訪您網站期間的任何時刻,訪客可以初次設定偏好設定,也可以使用您的 CMP 變更其偏好設定。使用初始設定初始化訪客 JS 之後,可以使用以下函數變更訪客的權限:

adobe.optIn.approve(categories, shouldWaitForComplete)

核准或選擇將訪客加入清單中的所有類別。如需 shouldWaitForComplete 參數的詳細資訊,請參閱「選擇加入工作流程」。

adobe.optIn.deny(categories, shouldWaitForComplete)

拒絕或選擇將訪客退出所有指定類別的函數。

adobe.optIn.approveAll()

如果您請求允許網站建立 Cookie,以便訪客完全同意或拒絕授予網站建立 Cookie 的權限,請依據訪客的回應使用 approveAll()denyAll()

adobe.optIn.denyAll()

如果您的網站建立權限要求是讓訪客概括授予或拒絕網站建立 Cookie 的權限,請依據訪客的回應使用 approveAll()denyAll()

選擇加入工作流程參數

選擇加入支援可從多個要求週期收集權限的工作流程,例如一次指定一項偏好設定時。使用下列函數並將 ** 設定設為 shouldWaitForCompletetrue,您的解決方案便能夠收集一個解決方案或全部類別之子集合的同意,然後收集下一個解決方案或類別子集合的同意。從首次呼叫開始,adobe.optIn.status 屬性會擱置,直到流程結束時呼叫 adobe.optIn.complete() 為止。呼叫後,狀態會設為 complete

adobe.optIn.approve(categories, shouldWaitForComplete)

核准或選擇將訪客加入清單中的所有類別。

adobe.optIn.deny(categories, shouldWaitForComplete)

拒絕或選擇將訪客退出所有指定類別的函數。

adobe.optIn.complete()

此函數會觸發將正在執行的 approve() 和 deny() 呼叫彙總進單一要求中,以設定訪客的偏好設定。訂閱下方的選擇加入變更時 (請參閱 adobe.optIn.fetchPermissions(callback, shouldAutoSubscribe),只有呼叫此函數時會觸發回呼。

訪客選擇加入權限的參數

使用其中一個權限函數來收集訪客的選擇加入權限:

adobe.optIn.permissions

此物件會以類別形式,列出訪客授權或拒絕的所有 Experience Cloud 解決方案。

adobe.optIn.isApproved(categories)

如果所有類別皆經核准,此函數會傳回 true。

adobe.optIn.fetchPermissions(callback, shouldAutoSubscribe)

非同步擷取權限清單。在完成權限授予/拒絕程序後,使用權限清單呼叫回呼。將 的值設為 trueshouldAutoSubscribe,會登錄往後任何的選擇加入變更。以下為 adobe.OptIn 的屬性:

permissions

此物件會以類別形式列出訪客授權或拒絕的所有 Experience Cloud 解決方案。範例:{ aa: true, ecid: false, aam: true... }

status

  • 擱置中
  • 已變更
  • 完成

doesOptInApply

值為 true 或 false,代表您提供的初始化設定

isPending

True 或 false (視狀態值而定)。對於尚未明確接受或拒絕權限的訪客,選擇加入會針對這個屬性傳回 true

isComplete

True 或 false (視狀態值而定)。當工作流程式同意已開始但尚未完成時,選擇加入可能會針對這個屬性傳回 false。

選擇加入物件的方法

approve(categories, shouldWaitForComplete)

categories:要核准的一或多個類別。例如:adobe.optIn.approve([adobe.OptInCategories.AAM, adobe.OptInCategories.ECID])
shouldWaitForComplete:(選擇性) 布林值參數,預設為 false。如果您傳入 true,在您呼叫 adobe.optIn.complete() () 前,選擇加入不會完成核准程序。此程序類似工作流程。

<codeblock>
  adobe.optIn.approve(adobe.OptInCategories.ANALYTICS, 
         true); adobe.optIn.approve(adobe.OptInCategories.ECID, true); 
         adobe.optIn.complete() 
</codeblock>

deny(categories, shouldWaitForComplete)

  • 傳遞一個或多個類別,以查看它們是否已核准。
  • 如果未傳入任何類別,則會檢查所有可用類別。

isApproved(categories)

檢查客戶是否核准一或多個類別。

isPreApproved(categories)

檢查客戶是否預先核准一或多個類別。(如果類別以 preOptInApprovals 設定傳入。)

fetchPermissions(callback, shouldAutoSubscribe)

非同步處理 API 以擷取權限清單。在完成權限授予/拒絕程序後,使用權限清單呼叫回呼。shouldAutoSubscribe Helper 公用程式,將會自動針對所有未來事件訂閱此回呼。這表示每當在選擇加入中觸發核准或拒絕時,都會呼叫此回呼。如此一來,您總是會保持更新,而不用自行訂閱這些事件。

範例

fetchPermissions

optIn.fetchPermissions(function (permissions) { 
    // Here you can check if your category has been approved or not. 
    // We recommend using `optIn.isApproved()` to check for permissions because it abstracts  
       out the details of knowing exactly how the `permissions` list looks like. 
 
    if (adobe.optIn.isApproved(MY_CATEGORY) { 
        sendBeacon(); // Or something 
    } 
});

// OR: You can pass in `shouldAutoSubscribe` as true, your callback will be used to subscribe  
to all OptIn events going forward:

function callback() { 
    if (adobe.optIn.isApproved(MY_CATEGORY) { 
        sendBeacon(); // Or something 
    } 
} 
 
optIn.fetchPermissions(callback, true);

complete():

注意

只有在您傳遞 shouldWaitForComplete 參數以核准或拒絕時才使用。此 API 會完成核准程序。範例:adobe.optIn.complete()

approveAll():

核准所有現有類別。

denyAll()

拒絕所有現有類別。

選擇加入物件的事件

complete:

當核准程序完成時,完成事件就會觸發。如果您沒有傳遞 shouldWaitForComplete 便呼叫核准/拒絕,或是 approveAll/ denyAll,此事件就會觸發。或者,如果您傳入 shouldWaitForComplete,則此事件會在呼叫 complete 時觸發。

範例

<codeph>
  adobe.optIn.on("complete", callback); 
</codeph>

本頁內容