[Alpha]{class="badge informative"}

方法概觀

伺服器SDK在createInstance傳回的物件上提供其功能作為方法。 如果您已使用Web SDK,這些方法會對應至Web SDK命令,但呼叫方式不同:

網頁SDK (瀏覽器)
伺服器SDK
alloy("sendEvent", { xdm })
alloy.sendEvent({ xdm })
alloy("getIdentity")
alloy.getIdentity()

Web SDK使用單一函式,將命令名稱當作字串,讓頁面可以在程式庫完成載入之前將命令排入佇列。 伺服器會先載入程式庫,再處理任何請求,因此伺服器SDK會改用一般方法,您的編輯器可以在您輸入時建議並檢查這些方法。

可用的方法 methods

方法
說明
頂層執行個體
forRequest控制代碼
configure
設定資料流、組織、認證和其他選項。 伺服器啟動時呼叫一次。
是
無
forRequest
傳回範圍限定為單一訪客要求的控點。
是
無
sendEvent
傳送事件至Edge Network並傳回結果,例如個人化主張。
是
是
getIdentity
傳回訪客的ECID而不傳送事件。
是
是
appendIdentityToUrl
將訪客的身分新增至URL,讓其他網域可以識別訪客。
是
是
setConsent
紀錄訪客的同意偏好設定。
是
是
applyResponse
處理您以其他方式取得的Edge Network回應。
是
是
getLibraryInfo
傳回程式庫版本及其目前設定。
是
是
setDebug
開啟或關閉偵錯記錄。
是
是

若為訪客流量,請呼叫forRequest控制代碼上的方法,而非最上層執行個體上的方法。 請參閱執行個體和要求。

處理結果 results

除了forRequest之外的每個方法都會傳回promise。 當方法成功時,Promise會使用結果物件解析,而當方法失敗時,會使用Error拒絕。 搭配try...catch使用await,或使用then與catch:

try {
  const result = await visitor.sendEvent({
    xdm: {
      eventType: "web.webpagedetails.pageViews",
      identityMap: {
        Email: [{ id: "visitor@example.com", primary: true }]
      }
    }
  });
  console.log("Propositions", result.propositions);
} catch (error) {
  console.error("sendEvent failed", error.message);
}

結果物件的內容取決於方法。 每個方法的頁面都會描述其結果物件。 某些方法(例如setConsent)會以空白物件解析。

結果也取決於訪客的同意。 如果訪客選擇退出,例如sendEvent的方法會解析為空白物件,而不會將任何內容傳送至Adobe。

錯誤 errors

方法會在下列情況中拒絕:

  • 無效的選項: SDK會先驗證每個選項,再傳送任何內容。 未知或拼錯的選項,或錯誤的型別值,會以指出問題的訊息(例如'bogus': Unknown field)拒絕。
  • 驗證失敗:如果SDK無法取得存取Token,方法會以包含Failed to acquire an IMS access token的訊息拒絕。 請參閱驗證。
  • Edge Network錯誤:如果Edge Network拒絕要求(例如因為事件沒有主要身分),則方法會以Edge Network傳回的錯誤拒絕。
  • 網路失敗:如果您的伺服器無法連線Adobe,方法會以基礎網路錯誤拒絕。

forRequest未傳回Promise。 它會立即傳回控制代碼,或如果configure尚未解析,則會擲回錯誤。

根據您的執行階段和設定的方式,未處理的Promise拒絕可能會停止您的伺服器流程或讓請求失敗。 一律處理來自SDK方法的拒絕,這樣將資料傳送至Adobe的問題就不會中斷您的伺服器傳送給訪客的回應。

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