[Alpha]{class="badge informative"}

onBeforeEventSend (Server SDK)

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 les implementationDetails et l’URL de la page provenant de l’en-tête de la Referer. Voir En-têtes contextuels et transférés.
  • data : données non XDM de l’événement, à partir de l’option data de sendEvent.

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.

WARNING
Si votre fonction renvoie une erreur, le SDK n’envoie pas l’événement et 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];
    }
  }
});
recommendation-more-help
experience-platform-help-collection