根據 mbox.js 程式庫版本鎖定頁面方法

Target 進行和回應來自您頁面呼叫的方法,取決於您所使用的 Target 資料庫、是否實作 Experience Cloud 訪客 ID,以及是否有訪客 ID 存在。

注意

如果您使用 at.js,則會使用 JSON 執行所有呼叫。此頁面提供 mbox.js 程式庫版本的詳細資料。下列案例所述的行為不適用於 at.js。

在下列各案例中,針對每個 Target 程式庫版本如何回應來自頁面的 Target 呼叫,本節提供相關資訊。

視您的實作和程式庫版本而定而有多種類型或端點。您必須熟悉每個類型,才能瞭解每個案例中 Target 如何回應呼叫。

類型/端點 呼叫方法 回應內容
自動建立全域 mbox - 同步 document.write 以進行呼叫 JavaScript 不帶 document.write()
自動建立全域 mbox - 非同步 createElement() 以附加呼叫至主體 JavaScript 不帶 document.write()
標準 document.write 以進行呼叫 JavaScript 含 document.write()
ajax createElement() 以附加呼叫至主體 JavaScript 不帶 document.write()
json XMLHTTPrequest() 執行呼叫 傳回 JSON 回應
重要

對於 standard 以外的任何類型,所有自訂程式碼和選件皆應撰寫為支援 ajax 環境。例如,如果您使用包含 document.write() 的 JavaScript,指令碼將無法如運期般運作。

沒有訪客 ID 實作

如果您使用 Target Standard 或 Premium 並搭配 mbox.js,且您的帳戶已啟用建立全域 Mbox,則會執行 autocreate global mbox synchronous 類型的呼叫和回應,而不會考慮 mbox.js 版本。

如果您撰寫自訂的自訂程式碼,而不使用可視化體驗撰寫器動作,請確定您的程式碼適用於 ajax 環境。例如,如果您使用包含 document.write() 的 JavaScript,指令碼將無法如運期般運作。

注意

具有相同 mbox 名稱但不同參數的多個 ajax mbox 呼叫將無法在同一個頁面上運作。僅會發出第一次呼叫。

如果您使用「auto-create global mbox」,但頁面上也有 mboxCreate 呼叫,假設您想在先前於舊版實作中使用的頁面上實作 Target Standard 或 Premium,則系統會使用 ** autocreate global mbox - standard** 端點執行全域 mbox 呼叫,並使用 mboxCreatestandard 端點執行 呼叫。standard 端點使用 document.write() 來執行呼叫和回應。這樣會防止頁面載入,包括 ajax 回應中傳送的內容,直到所有資訊皆下載為止。

例如,在使用 Target Classic 所建立的頁面上,如果您只使用 mboxCreate,則頁面會照常運作。

建立方法 mbox.js 57 版 mbox.js 58 版 mbox.js 59 版 mbox.js 60 版
自動建立全域 mbox 自動建立全域 mbox - 同步 自動建立全域 mbox - 同步 自動建立全域 mbox - 同步 自動建立全域 mbox - 同步
mboxCreate 標準 標準 標準 標準

訪客 ID 實作存在,但未設定訪客 ID

如果尚未設定訪客 ID,則不會有使用者的 Experience Cloud 訪客 Cookie。頁面會呼叫訪客 ID 服務來取得訪客 ID。會以呼叫 TargetTarget 的 ID 來等待回應。

注意

Mbox.js強烈建議使用 v58,以確保在執行 Target 呼叫之前傳回訪客 ID。

如果您在此案例中使用 mbox.js 版本 57,只要沒有訪客 ID 實作 (如上一個案例所述),則一切皆沒問題。自 mbox.js 58 版開始,Experience Cloud Visitor ID 服務會在執行 Target 呼叫之前傳回訪客 ID。這可確保透過「設定檔和對象」核心服務共用的對象資料,可供訪客工作階段中的第一次 Target 呼叫使用。為了避免傳回測試內容前的預設內容發生忽隱忽現的情形,Target 會隱藏 <BODY> 直到訪客 ID 服務返回為止。在版本 58 中,display:none 用於隱藏頁面。這會對有回應的網站造成一些問題,所以自版本 59 開始,就使用 opacity:0 來隱藏內容。

建立方法 mbox.js 57 版 mbox.js 58 版 mbox.js 59 版 mbox.js 60 版
自動建立全域 mbox 自動建立全域 mbox - 同步 自動建立全域 mbox - 非同步 自動建立全域 mbox - 非同步 自動建立全域 mbox - 非同步
mboxCreate 標準 ajax ajax ajax

訪客 ID 實作存在,訪客 ID 也存在

如果訪客 ID Cookie 存在,Target 就不需要呼叫訪客 ID 服務。在此情況下,顯示內容之前不需要等待訪客 ID 服務。若為版本 57 至 59,則是使用 autocreate global mbox - synchronous 類型,所以頁面會等待 Target 的呼叫返回,才繼續載入。這可確保預設內容不會忽隱忽現。若為 v60,則是使用 global mbox-asynchronous type,以確保 Target 會等待 Experience Cloud 退出服務有所回應。退出服務是 2016 年秋天推出的 Data Co-op 的一部分。因為所有呼叫皆使用 ajax 來傳回,請勿在 mbox.js 60 版中使用 document.write()

建立方法 mbox.js 57 版 mbox.js 58 版 mbox.js 59 版 mbox.js 60 版
自動建立全域 mbox 自動建立全域 mbox - 同步 自動建立全域 mbox - 同步 自動建立全域 mbox - 同步 autocreate global mbox - asynchronous (支援開發 Data Co-op,已於 2016 年下半年推出)
mboxCreate 標準 標準 標準 ajax

本頁內容