[Alpha]{class="badge informative"}

onBeforeEventSend (SDK de servidor)

Esta página describe onBeforeEventSend en el método Server SDK configure. Para Web SDK, consulte onBeforeEventSend.

La llamada de retorno onBeforeEventSend le permite registrar una función que se ejecuta justo antes de que Server SDK envíe cada evento. Utilícelo para agregar, cambiar o quitar datos en cada evento en un solo lugar, o para cancelar eventos que no desee enviar, como el tráfico de bots conocidos.

SDK llama a la función con un objeto content que contiene las siguientes propiedades:

  • xdm: los datos XDM del evento. Ya incluye los datos que SDK agrega automáticamente, como implementationDetails y la dirección URL de la página tomada del encabezado Referer. Ver Contexto y encabezados reenviados.
  • data: los datos no XDM del evento, de la opción data de sendEvent.

Cambie directamente el objeto content. Devuelva false para cancelar el evento. Al cancelar un evento, sendEvent se resuelve con un objeto vacío y SDK no se pone en contacto con Adobe.

WARNING
Si la función genera un error, SDK no envía el evento y sendEvent lo rechaza con un error que incluye el mensaje de la función.

Ejemplo de código

Registre la llamada de retorno onBeforeEventSend cuando llame a configure. SDK llama a la misma función para cada evento desde la instancia y desde cada identificador de forRequest, por lo que la función no debe depender de los datos de una única solicitud. En su lugar, use el objeto 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