[Alpha]{class="badge informative"}
與Web SDK的差異
伺服器SDK和Web SDK共用相同的核心,因此會以相同的格式傳送資料給相同的資料串流,並使用相同的Cookie。 因為一個檔案是在伺服器上執行,另一個檔案是在瀏覽器上執行,所以它們有幾種不同的方式。 使用此頁面來計畫移轉,或在瀏覽器和伺服器實作之間共用程式碼。
比較 comparison
defaultConsent接受"in"、"out"和"pending"defaultConsent只接受"in"和"out"sendEvent個結果propositions、inferences和destinationspropositionsdebugEnabled、setDebug、alloy_debug查詢字串引數和Adobe Experience Platform DebuggerdebugEnabled和setDebug,訊息已寫入主控台monitors選項和__alloyMonitors全域變數createInstance的monitors選項方法 methods
伺服器SDK新增forRequest方法,該方法不存在於Web SDK中。
它支援下列Web SDK命令做為方法: appendIdentityToUrl、applyResponse、configure、getIdentity、getLibraryInfo、sendEvent、setConsent和setDebug。
下列Web SDK命令無法使用,因為這些命令相依於瀏覽器或「伺服器SDK」未包含的元件:
applyPropositionscreateMediaSessiongetMediaAnalyticsTrackersendMediaEventsendPushSubscriptionsubscribeRulesetItems
設定選項 configuration
- 新增和必要:
edgeCredentials。 - 支援:
datastreamId、orgId、debugEnabled、defaultConsent、edgeBasePath、edgeConfigOverrides、edgeDomain、idMigrationEnabled、onBeforeEventSend和thirdPartyCookiesEnabled。 其中有些在伺服器上的行為會有所不同。 檢視每個選項的頁面。 - 不支援:其他所有的Web SDK選項。 如果您包含一個,
configure會拒絕。 檢視Server SDK不支援的選項。
sendEvent選項 sendevent
- 支援:
xdm、data、type、personalization.decisionScopes和personalization.surfaces、最上層decisionScopes陣列和edgeConfigOverrides。 - 已接受,但沒有效果:
renderDecisions、advertising和其他personalization屬性。 檢視對伺服器🔗沒有影響的選項。 - 避免:
documentUnloading。
常見問題 faq
我可以在相同網站上使用伺服器SDK和Web SDK嗎? same-site
有。 常見的模式是在伺服器上要求個人化,並在瀏覽器中呈現。 請參閱混合式個人化。 如果資料流的 存取型別 是混合驗證,則兩個資料庫都可以傳送資料至相同的資料流。 兩者使用相同的Cookie名稱來表示身分和同意。
為何每個事件都需要主要身分? primary-identity
伺服器SDK會將事件傳送至已驗證的Edge Network伺服器API。 由於請求來自您的伺服器,Edge Network無法使用訪客的瀏覽器Cookie來識別他們。 而是需要事件中的主要身分。 請參閱xdm。
我可以在無伺服器功能中使用伺服器SDK嗎? serverless
是,如果函式的執行階段符合需求。 在函式處理常式之外,於模組的頂層建立及設定執行個體。 如此一來,熱啟動會重複使用已設定的執行個體及其快取的存取權杖。 在每次呼叫的處理常式中呼叫forRequest。
我可以使用Adobe Experience Platform Debugger嗎? debugger
沒有。 Adobe Experience Platform Debugger是瀏覽器擴充功能,可檢查頁面。 若要偵錯伺服器SDK,請將debugEnabled設定為true或呼叫setDebug,並檢閱伺服器的主控台輸出。