[Alpha]{class="badge informative"}
与Web SDK的区别
Server 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命令不可用,因为它们依赖于浏览器或Server 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
我可以在同一网站上使用Server SDK和Web SDK吗? same-site
是的。 一种常见模式是在服务器上请求个性化并在浏览器中呈现它。 请参阅混合个性化。 如果其 访问类型 为混合身份验证,则两个库都可以将数据发送到相同的数据流。 两者使用相同的Cookie名称来标识和表示同意。
为何每个事件都需要一个主要身份? primary-identity
服务器SDK将事件发送到经过身份验证的Edge Network服务器API。 由于请求来自您的服务器,因此Edge Network无法使用访客的浏览器Cookie来识别这些访客。 相反,它要求在事件中包含主标识。 请参阅xdm。
我可以在无服务器功能中使用Server SDK吗? serverless
是,如果函数的运行时满足要求。 在函数处理程序之外的模块顶级创建和配置实例。 这样,热调用将重用配置的实例及其缓存的访问令牌。 在每次调用的处理程序中调用forRequest。
我可以使用Adobe Experience Platform Debugger吗? debugger
没有。 Adobe Experience Platform Debugger是一种用于检查页面的浏览器扩展。 要调试服务器SDK,请将debugEnabled设置为true或调用setDebug,然后查看服务器的控制台输出。