[Alpha]{class="badge informative"}
适用于JavaScript的Server 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的方法。 选择与代码运行位置匹配的代码:
您可以将Server SDK和Web SDK结合使用。 例如,您的服务器可以请求个性化内容,而浏览器可以呈现这些内容。 请参阅混合个性化。
工作原理 how-it-works
- 当您的服务器启动时,您创建一个实例,并使用您的数据流、组织和API凭据调用
configure一次。 - 对于每个传入请求,您致电
forRequest以获取一个作用域为该访客的句柄。 该句柄通过您提供的Cookie服务读取和写入访客的身份和同意,并将访客的请求标头(例如User-Agent)转发到Edge Network。 - 您在句柄上调用方法,如
sendEvent。 SDK使用它获取并缓存的访问令牌将事件发送到经过身份验证的Edge Network服务器API。 - SDK将结果返回到您的代码。 例如,
sendEvent返回个性化建议作为数据。 SDK不呈现它们。 您的应用程序可决定如何处理这些区段,例如,将它们包含在页面中以便呈现Web SDK。
有关详细信息,请参阅实例和请求。
受支持的功能 features
下表列出了Alpha版本支持的内容。 有关详细比较,请参阅与Web SDK的差异。
sendEvent发送事件defaultConsent只接受"in"和"out"。personalization请求个性化debugEnabled和setDebug进行调试要求 requirements
在使用Server 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的模块。 其默认平台服务仅使用Web标准API,如fetch。
这些指南使用Node.js作为主要示例运行时。 代码示例使用Node.js约定,例如从process.env读取凭据并使用node:http模块处理请求。 如果使用不同的运行时,请用运行时的对等项替换这些零件。 SDK自己的方法在每个受支持的运行时中的工作方式相同。
Source代码和反馈 source
服务器SDK是开放源代码。 其源代码位于GitHub上adobe/alloy存储库的packages/node文件夹中。 在该存储库中报告问题和请求功能。