[Alpha]{class="badge informative"}

sendEvent (服务器SDK)

本页介绍了Server SDK sendEvent方法。 对于Web SDK,请参阅sendEvent.

sendEvent方法是从您的服务器向Adobe发送数据的主要方式。 其结果也是您检索个性化内容的方式。 使用xdm对象发送映射到Adobe Experience Platform架构的数据,使用data对象发送其他数据。

在configure解析后,对当前访客的forRequest句柄调用sendEvent:

const visitor = alloy.forRequest({ request: req });

const result = await visitor.sendEvent({
  type: "commerce.purchases",
  xdm: {
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    },
    commerce: {
      purchases: { value: 1 },
      order: {
        purchaseID: "a8g784hjq1mnp3",
        currencyCode: "USD",
        priceTotal: 999.98
      }
    }
  },
  data: {
    loyaltyTier: "gold"
  },
  personalization: {
    decisionScopes: ["order-confirmation-offer"]
  },
  edgeConfigOverrides: {
    com_adobe_analytics: {
      reportSuites: ["examplersid1"]
    }
  }
});

SDK将每个事件发送到位于server.adobedc.net的经过身份验证的Edge Network服务器API。 请参阅身份验证。

要求 requirements

  • 主标识:每个事件都必须在xdm.identityMap中包含主标识。 如果不包含,Edge Network将拒绝该事件。 请参阅xdm。
  • 大小: SDK发送的请求最多可达64 KB。 请参阅Edge Network API文档中的护栏。
  • 同意:如果访客已选择退出,或defaultConsent为"out"且访客未选择加入,则sendEvent解析为空对象,不发送任何内容。

选项 options

选项
类型
描述
xdm
对象
与您的XDM架构(包括事件的标识)匹配的数据。
data
对象
与XDM架构不匹配的数据。
type
字符串
事件类型。 xdm.eventType的快捷方式。
personalization
对象
要请求的个性化决策。
decisionScopes
字符串数组
要请求的决策范围。 personalization.decisionScopes的替代项。
edgeConfigOverrides
对象
数据流覆盖仅适用于此事件。

如果您传递了SDK无法识别的选项,则sendEvent会拒绝并显示Unknown field错误。

对服务器没有影响的选项 no-effect

服务器SDK接受以下Web SDK选项,以便您可以与浏览器实施共享事件构建代码。 但是,它们依赖于浏览器,对服务器没有影响:

  • renderDecisions: SDK从不渲染内容。 而是返回结果中的建议。
  • personalization.sendDisplayEvent、personalization.includeRenderedPropositions、personalization.defaultPersonalizationEnabled和personalization.decisionContext。
  • advertising.

不要在服务器上设置documentUnloading。 它不适用于浏览器外部。 对于已具有身份的访客,它使SDK将该事件作为未经身份验证的请求发送到edgeDomain,而不是发送到经过身份验证的服务器API。 该终结点未返回响应,因此sendEvent不返回建议。

仍接受已弃用的datasetId和mergeId选项。 在edgeConfigOverrides中使用com_adobe_experience_platform.datasets.event.datasetId而不是datasetId。

结果对象 result

sendEvent方法返回承诺。 查看处理结果。 解析promise时,结果对象可以包含以下属性:

  • propositions: Edge Network为您通过personalization请求的范围和表面返回的个性化建议数组。 此属性仅在您请求个性化时存在。 SDK不呈现建议或将它们标记为已呈现。

如果不请求个性化,或由于同意或onBeforeEventSend而未发送该事件,则结果为空对象。

const { propositions = [] } = await visitor.sendEvent({
  xdm: {
    eventType: "decisioning.propositionFetch",
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  },
  personalization: {
    surfaces: ["web://example.com/home"]
  }
});

与Web SDK不同,结果从不包含inferences或destinations。

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