Esta página descreve o método sendEvent do SDK do Servidor. Para o Web SDK, consulte sendEvent.
O método sendEvent é a principal maneira de enviar dados do seu servidor para o Adobe. O resultado também é a maneira como você recupera o conteúdo personalizado. Use o objeto xdm para enviar dados que mapeiam para o esquema do Adobe Experience Platform, e o objeto data para enviar outros dados.
Chame sendEvent no identificador forRequest do visitante atual depois de configure resolver:
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"]
}
}
});
O SDK envia cada evento para a API autenticada do Edge Network Server em server.adobedc.net. Consulte Autenticação.
Exigências requirements
- Identidade principal: cada evento deve incluir uma identidade principal em
xdm.identityMap. Caso contrário, o Edge Network rejeita o evento. Consultexdm. - Tamanho: a solicitação enviada pelo SDK pode ter até 64 KB. Consulte Medidas de proteção na documentação da API do Edge Network.
- Consentimento: se o visitante recusou a participação ou
defaultConsenté"out"e o visitante não aceitou,sendEventresolve com um objeto vazio sem enviar nada.
Opções options
personalization.decisionScopes.Se você passar uma opção que a SDK não reconhece, sendEvent será rejeitado com um erro Unknown field.
Opções que não afetam um servidor no-effect
O Server SDK aceita as seguintes opções do Web SDK para que você possa compartilhar o código de criação de eventos com uma implementação de navegador. No entanto, eles dependem de um navegador e não têm efeito no servidor:
renderDecisions: o SDK nunca renderiza conteúdo. Em vez disso, retorna apresentações no resultado.personalization.sendDisplayEvent,personalization.includeRenderedPropositions,personalization.defaultPersonalizationEnabledepersonalization.decisionContext.advertising.
Não definir documentUnloading em um servidor. Isso não se aplica fora de um navegador. Para visitantes que já têm uma identidade, isso faz com que o SDK envie o evento como uma solicitação não autenticada para o edgeDomain em vez de para a API do servidor autenticada. Esse ponto de extremidade não retorna uma resposta, portanto, sendEvent não retorna propostas.
As opções datasetId e mergeId obsoletas ainda são aceitas. Em vez de datasetId, use com_adobe_experience_platform.datasets.event.datasetId em edgeConfigOverrides.
Objeto de resultado result
O método sendEvent retorna uma promessa. Consulte Resultados do identificador. Quando a promessa é resolvida, o objeto de resultado pode conter a seguinte propriedade:
propositions: Uma matriz de propostas de personalização que o Edge Network retornou para os escopos e superfícies solicitados compersonalization. Essa propriedade está presente somente quando você solicita personalização. O SDK não renderiza apresentações ou as marca como renderizadas.
Se você não solicitar personalização ou o evento não for enviado devido ao consentimento ou onBeforeEventSend, o resultado será um objeto vazio.
const { propositions = [] } = await visitor.sendEvent({
xdm: {
eventType: "decisioning.propositionFetch",
identityMap: {
Email: [{ id: "visitor@example.com", primary: true }]
}
},
personalization: {
surfaces: ["web://example.com/home"]
}
});
Ao contrário do Web SDK, o resultado nunca contém inferences ou destinations.