Cette page décrit les onBeforeEventSend de la méthode configure de Server SDK. Pour le Web SDK, voir onBeforeEventSend.
Le rappel onBeforeEventSend vous permet d’enregistrer une fonction qui s’exécute juste avant que le SDK du serveur n’envoie chaque événement. Utilisez-le pour ajouter, modifier ou supprimer des données dans chaque événement au même endroit, ou pour annuler des événements que vous ne souhaitez pas envoyer, tels que le trafic provenant de robots connus.
Le SDK appelle la fonction avec un objet content contenant les propriétés suivantes :
xdm: données XDM de l’événement. Il inclut déjà les données que le SDK ajoute automatiquement, telles que lesimplementationDetailset l’URL de la page provenant de l’en-tête de laReferer. Voir En-têtes contextuels et transférés.data: données non XDM de l’événement, à partir de l’optiondatadesendEvent.
Modifiez directement l’objet content. Retournez false pour annuler l’événement. Lorsque vous annulez un événement, sendEvent est résolu avec un objet vide et le SDK ne contacte pas Adobe.
sendEvent le rejette avec une erreur contenant le message de votre fonction.Exemple de code
Enregistrez le rappel onBeforeEventSend lorsque vous appelez configure. Le SDK appelle la même fonction pour chaque événement de l’instance et de chaque handle de forRequest. Par conséquent, la fonction ne doit pas dépendre de données d’une seule requête. Utilisez plutôt l’objet content .
await alloy.configure({
datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
edgeCredentials: {
clientId: process.env.ADOBE_CLIENT_ID,
clientSecret: process.env.ADOBE_CLIENT_SECRET,
scopes: process.env.ADOBE_SCOPES.split(",")
},
onBeforeEventSend: (content) => {
// Cancel events that your application marked as bot traffic
if (content.data?.isBot) {
return false;
}
// Add a value to every event
content.xdm.application ??= {};
content.xdm.application.name = "Example storefront";
// Remove the query string from the page URL
const pageUrl = content.xdm.web?.webPageDetails?.URL;
if (pageUrl) {
content.xdm.web.webPageDetails.URL = pageUrl.split("?")[0];
}
}
});