[Alpha]{class="badge informative"}

onBeforeEventSend (Server SDK)

Questa pagina descrive onBeforeEventSend nel metodo Server SDK configure. Per il Web SDK, vedere onBeforeEventSend.

Il callback onBeforeEventSend consente di registrare una funzione che viene eseguita immediatamente prima che Server SDK invii ogni evento. Puoi utilizzarlo per aggiungere, modificare o rimuovere dati in ogni evento in un’unica posizione oppure per annullare eventi che non desideri inviare, ad esempio il traffico proveniente da bot noti.

SDK chiama la funzione con un oggetto content che contiene le seguenti proprietà:

  • xdm: dati XDM dell’evento. Include già i dati aggiunti automaticamente da SDK, ad esempio implementationDetails e l’URL della pagina ricavato dall’intestazione Referer. Vedi Intestazioni contestuali e inoltrate.
  • data: dati non XDM dell’evento, dall’opzione data di sendEvent.

Modificare direttamente l’oggetto content. Restituisci false per annullare l’evento. Quando si annulla un evento, sendEvent viene risolto con un oggetto vuoto e SDK non contatta Adobe.

WARNING
Se la funzione genera un errore, SDK non invia l'evento e sendEvent rifiuta con un errore che include il messaggio della funzione.

Esempio di codice

Registra il callback onBeforeEventSend quando chiami configure. SDK chiama la stessa funzione per ogni evento dall’istanza e da ogni handle forRequest, pertanto la funzione non deve dipendere dai dati di una singola richiesta. Utilizzare invece l’oggetto 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