[Alpha]{class="badge informative"}

方法概述

服务器SDK提供其功能作为对createInstance返回的对象的方法。 如果您使用的是Web SDK,则这些方法与Web SDK命令相对应,但调用这些命令的方式有所不同:

Web SDK(浏览器)
服务器SDK
alloy("sendEvent", { xdm })
alloy.sendEvent({ xdm })
alloy("getIdentity")
alloy.getIdentity()

Web SDK使用一个函数,该函数将命令名称作为字符串,这样页面就可以在库完成加载之前对命令进行排队。 服务器在处理任何请求之前加载库,因此服务器SDK会改用常规方法,编辑者可以在键入时建议和检查这些方法。

可用方法 methods

方法
描述
顶级实例
forRequest句柄
configure
设置数据流、组织、凭据和其他选项。 在服务器启动时调用一次。
是
否
forRequest
返回一个句柄,该句柄的作用范围仅针对一个访客的请求。
是
否
sendEvent
向Edge Network发送事件并返回结果,例如个性化建议。
是
是
getIdentity
返回访客的ECID而不发送事件。
是
是
appendIdentityToUrl
将访客身份添加到URL中,以便其他域可以识别访客。
是
是
setConsent
记录访客的同意首选项。
是
是
applyResponse
处理您以其他方式获得的Edge Network响应。
是
是
getLibraryInfo
返回库版本及其当前配置。
是
是
setDebug
打开或关闭调试日志记录。
是
是

对于访客流量,请对forRequest句柄而不是顶级实例调用方法。 查看实例和请求。

处理结果 results

除forRequest之外的每个方法都返回promise。 当方法成功时,promise使用结果对象解析;当方法失败时,使用Error拒绝。 将await与try...catch一起使用,或使用then和catch:

try {
  const result = await visitor.sendEvent({
    xdm: {
      eventType: "web.webpagedetails.pageViews",
      identityMap: {
        Email: [{ id: "visitor@example.com", primary: true }]
      }
    }
  });
  console.log("Propositions", result.propositions);
} catch (error) {
  console.error("sendEvent failed", error.message);
}

结果对象的内容取决于方法。 每个方法的页面都描述其结果对象。 某些方法(如setConsent)解析为空对象。

结果还取决于访客的同意。 如果访客已选择退出,则诸如sendEvent之类的方法会解析为空对象,而不会向Adobe发送任何内容。

错误 errors

方法拒绝以下情况之一:

  • 无效选项: SDK在发送任何内容之前都会验证每个选项。 未知或拼写错误的选项,或类型错误的值会拒绝显示一条指明问题的消息,如'bogus': Unknown field。
  • 身份验证失败:如果SDK无法获取访问令牌,则方法会拒绝并显示包含Failed to acquire an IMS access token的消息。 请参阅身份验证。
  • Edge Network错误:如果Edge Network拒绝请求(例如,由于事件没有主标识),则该方法将拒绝,并返回Edge Network返回的错误。
  • 网络故障:如果您的服务器无法访问Adobe,则方法会拒绝并显示基础网络错误。

forRequest不返回承诺。 它立即返回一个句柄,如果configure尚未解析,则会引发错误。

根据您的运行时及其配置方式,未处理的Promise拒绝可能会停止您的服务器进程或使请求失败。 始终处理来自SDK方法的拒绝事件,以便向Adobe发送数据时产生的问题不会破坏您的服务器向访客发送的响应。

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