[Alpha]{class="badge informative"}
適用於JavaScript的伺服器SDK概覽
適用於JavaScript 的 Adobe Experience Platform Server SDK (或Server SDK)是在您的伺服器上執行並將資料傳送至Adobe Experience Platform Edge Network的資料庫。 它在Node.js和其他符合其需求的伺服器端JavaScript執行階段中執行。 它以@adobe/alloy-node的身分發佈至npm。 本指南說明其核心概念、安裝、設定和方法。
伺服器SDK與Web SDK共用其核心。 它使用相同的資料串流、相同的XDM資料模型,以及相同的身分和同意Cookie。 由於它是在伺服器上執行,而不是在瀏覽器上執行,因此在您建立執行個體、驗證及處理每個訪客請求的方式上會有所不同。
何時使用伺服器SDK when-to-use
Adobe提供數種將資料傳送至Edge Network的方式。 選擇與程式碼執行位置相符的專案:
您可以將伺服器SDK和網頁SDK搭配使用。 例如,您的伺服器可以要求個人化內容,而瀏覽器可以轉譯內容。 請參閱混合式個人化。
運作方式 how-it-works
- 當您的伺服器啟動時,您建立一個執行個體,並使用您的資料流、組織和API認證呼叫
configure一次。 - 針對每個傳入要求,您呼叫
forRequest以取得範圍為該訪客的控制代碼。 控制代碼會透過您提供的Cookie服務讀取及寫入訪客的身分和同意,並將訪客的請求標題(例如User-Agent)轉送至Edge Network。 - 您在控制代碼上呼叫方法,例如
sendEvent。 SDK會使用它取得並快取的存取權杖將事件傳送至已驗證的Edge Network伺服器API。 - SDK會將結果傳回至您的程式碼。 例如,
sendEvent會以資料傳回個人化主張。 SDK不會轉譯這些值。 您的應用程式會決定要如何處理這些檔案,例如將它們納入網頁中,以供Web SDK呈現。
如需詳細資訊,請參閱執行個體和要求。
支援的功能 features
下表列出Alpha發行版本支援的內容。 如需詳細比較,請參閱與網頁SDK的差異。
sendEvent一起傳送事件defaultConsent只接受"in"和"out"。personalization要求個人化debugEnabled和setDebug進行偵錯需求 requirements
在使用伺服器SDK之前,請確定您具備下列條件:
- 伺服器端JavaScript執行階段,例如Node.js 22或更新版本。 執行階段必須支援ECMAScript模組,因為您載入的封裝有
import。 它也必須提供下列Web標準全域:fetch、Headers、URLSearchParams、crypto.getRandomValues、setTimeout、clearTimeout、atob、btoa、TextEncoder、TextDecoder以及console。 請參閱執行階段支援。 - 資料流。 請參閱設定資料流。 如果您使用
getIdentity、appendIdentityToUrl或setConsent,請將資料流的 存取型別 設定為混合驗證,因為這些方法會傳送未經驗證的請求。 請參閱驗證。 - 從Adobe Developer Console OAuth伺服器對伺服器認證。 SDK需要它,並使用它來驗證它傳送的事件。 請參閱驗證。
- XDM結構描述和資料集 (如果您傳送資料給Adobe Experience Platform)。
執行階段支援 runtime-support
任何符合需求的伺服器端JavaScript執行階段均支援伺服器SDK。 它不依賴Node.js特定的模組。 其預設平台服務僅使用網頁標準API,例如fetch。
這些指南使用Node.js作為主要範例執行階段。 程式碼範例使用Node.js慣例,例如從process.env讀取認證,以及使用node:http模組處理要求。 如果您使用不同的執行階段,請用執行階段的對應零件取代這些零件。 SDK自己的方法在每個支援的執行階段中以相同的方式運作。
Source程式碼和意見反應 source
伺服器SDK是開放原始碼。 其原始碼位於GitHub上adobe/alloy存放庫的packages/node資料夾中。 在該存放庫中報告問題和請求功能。