[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。 由于它是在服务器上运行,而不是在浏览器中运行,因此它在创建实例、验证和处理每个访客请求的方式上有所不同。

IMPORTANT
服务器SDK采用Alpha格式。 其方法、选项和行为在版本之间可以更改,并且只有受支持的功能中列出的功能可用。 在升级之前查看发行说明。

何时使用服务器SDK when-to-use

Adobe提供了几种将数据发送到Edge Network的方法。 选择与代码运行位置匹配的代码:

方法
使用时机
Web SDK
您的代码在访客的浏览器中运行。 Web SDK可以自动呈现个性化内容、收集链接点击次数和读取页面上下文。
服务器SDK
您的代码运行在处理访客请求的JavaScript服务器上。 例如,用于呈现页面的服务器、API后端或在页面到达浏览器之前获取个性化设置的中间件。
Edge Network API
您希望在不使用库的情况下,从任何语言直接调用Edge Network。 服务器SDK会为您调用此API。

您可以将Server SDK和Web SDK结合使用。 例如,您的服务器可以请求个性化内容,而浏览器可以呈现这些内容。 请参阅混合个性化。

工作原理 how-it-works

  1. 当您的服务器启动时,您创建一个实例,并使用您的数据流、组织和API凭据调用configure一次。
  2. 对于每个传入请求,您致电forRequest以获取一个作用域为该访客的句柄。 该句柄通过您提供的Cookie服务读取和写入访客的身份和同意,并将访客的请求标头(例如User-Agent)转发到Edge Network。
  3. 您在句柄​上调用方法,如sendEvent。 SDK使用它获取并缓存的访问令牌将事件发送到经过身份验证的Edge Network服务器API。
  4. SDK将结果返回到您的代码。 例如,sendEvent返回个性化建议作为数据。 SDK不呈现它们。 您的应用程序可决定如何处理这些区段,例如,将它们包含在页面中以便呈现Web SDK。

有关详细信息,请参阅实例和请求。

受支持的功能 features

下表列出了Alpha版本支持的内容。 有关详细比较,请参阅与Web SDK的差异。

功能
状态
使用sendEvent发送事件
受支持
使用getIdentity和appendIdentityToUrl检索身份
受支持
同意setConsent和defaultConsent
支持。 defaultConsent只接受"in"和"out"。
使用personalization请求个性化
支持。 建议将作为数据返回,并且不会渲染。
上下文数据
部分支持。 请参阅上下文和转发的标头。
使用debugEnabled和setDebug进行调试
支持。 日志将写入控制台。
渲染个性化内容、点击收集、Media Analytics、推送通知、Brand Concierge、受众和基于规则的内容卡片
不受支持

要求 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文件夹中。 在该存储库中报告问题和请求功能。

后续步骤 next-steps

recommendation-more-help
experience-platform-help-collection