本页介绍了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
如果您传递了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。