[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控制代碼若為訪客流量,請呼叫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