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 esempioimplementationDetailse l’URL della pagina ricavato dall’intestazioneReferer. Vedi Intestazioni contestuali e inoltrate.data: dati non XDM dell’evento, dall’opzionedatadisendEvent.
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.
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];
}
}
});