Cette page décrit la méthode de sendEvent de Server SDK. Pour le Web SDK, voir sendEvent.
La méthode sendEvent est le principal moyen d’envoyer des données à Adobe à partir de votre serveur. Il en résulte également la manière dont vous récupérez du contenu personnalisé. Utilisez l’objet xdm pour envoyer les données qui correspondent à votre schéma Adobe Experience Platform et l’objet data pour envoyer d’autres données.
Appelez sendEvent sur le handle de forRequest pour le visiteur actuel, après la résolution de configure :
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"]
}
}
});
Le SDK envoie chaque événement à l’API du serveur Edge Network authentifiée à l’adresse server.adobedc.net. Voir Authentification.
Conditions requises requirements
- Identité de Principal : chaque événement doit inclure une identité principale dans
xdm.identityMap. Dans le cas contraire, l’Edge Network rejette l’événement. Voirxdm. - Taille : la requête envoyée par le SDK peut aller jusqu’à 64 Ko. Voir Mécanismes de sécurisation dans la documentation de l’API Edge Network.
- Consentement : si le visiteur s’est désabonné ou si
defaultConsentest"out"et qu’il n’a pas adhéré,sendEventest résolu avec un objet vide sans envoyer aucun élément.
Options options
personalization.decisionScopes.Si vous transmettez une option que le SDK ne reconnaît pas, sendEvent la rejette avec une erreur Unknown field.
Options sans effet sur un serveur no-effect
Le SDK du serveur accepte les options de SDK Web suivantes afin que vous puissiez partager le code de création d’événement avec une implémentation de navigateur. Toutefois, ils dépendent d’un navigateur et n’ont aucun effet sur le serveur :
renderDecisions: le SDK ne rend jamais le contenu. Il renvoie plutôt des propositions dans le résultat .personalization.sendDisplayEvent,personalization.includeRenderedPropositions,personalization.defaultPersonalizationEnabledetpersonalization.decisionContext.advertising.
Ne documentUnloading pas sur un serveur. Elle ne s’applique pas en dehors d’un navigateur. Pour les visiteurs qui disposent déjà d’une identité, cela permet au SDK d’envoyer l’événement sous la forme d’une requête non authentifiée à l’edgeDomain au lieu de l’envoyer à l’API du serveur authentifié. Ce point d’entrée ne renvoie pas de réponse, donc sendEvent ne renvoie pas de propositions.
Les options datasetId et mergeId obsolètes sont toujours acceptées. Au lieu de datasetId, utilisez com_adobe_experience_platform.datasets.event.datasetId dans edgeConfigOverrides.
Objet de résultat result
La méthode sendEvent renvoie une promesse. Voir Gérer les résultats. Lorsque la promesse est résolue, l’objet de résultat peut contenir la propriété suivante :
propositions: tableau de propositions de personnalisation renvoyé par Edge Network pour les portées et les surfaces que vous avez demandées avecpersonalization. Cette propriété n’est présente que lorsque vous demandez une personnalisation. Le SDK ne génère pas de propositions et ne les marque pas comme rendues.
Si vous ne demandez pas de personnalisation ou si l’événement n’est pas envoyé en raison d’un consentement ou d’une onBeforeEventSend, le résultat est un objet vide.
const { propositions = [] } = await visitor.sendEvent({
xdm: {
eventType: "decisioning.propositionFetch",
identityMap: {
Email: [{ id: "visitor@example.com", primary: true }]
}
},
personalization: {
surfaces: ["web://example.com/home"]
}
});
Contrairement au Web SDK, le résultat ne contient jamais de inferences ou de destinations.