Auf dieser Seite werden onBeforeEventSend in der configure-Methode von Server SDK beschrieben. Informationen zu Web SDK finden Sie unter onBeforeEventSend.
Mit dem onBeforeEventSend-Rückruf können Sie eine Funktion registrieren, die unmittelbar vor dem Senden der einzelnen Ereignisse durch den SDK-Server ausgeführt wird. Verwenden Sie sie, um Daten in jedem Ereignis an einem Ort hinzuzufügen, zu ändern oder zu entfernen oder um Ereignisse abzubrechen, die Sie nicht senden möchten, z. B. Traffic von bekannten Bots.
Die SDK ruft die -Funktion mit einem content auf, das die folgenden Eigenschaften enthält:
xdm: Die XDM-Daten des Ereignisses. Sie enthält bereits die Daten, die SDK automatisch hinzufügt, z. B.implementationDetailsund die Seiten-URL aus demReferer. Siehe Kontext und weitergeleitete Kopfzeilen.data: Die Nicht-XDM-Daten des Ereignisses aus derdataOption vonsendEvent.
Ändern Sie das content direkt. Kehren Sie false zurück, um das Ereignis abzubrechen. Wenn Sie ein Ereignis abbrechen, wird sendEvent mit einem leeren Objekt aufgelöst, und die SDK kontaktiert Adobe nicht.
sendEvent wird mit einem Fehler zurückgewiesen, der die Nachricht aus Ihrer Funktion enthält.Code-Beispiel
Registrieren Sie den onBeforeEventSend Callback, wenn Sie configure aufrufen. Die SDK ruft für jedes Ereignis von der Instanz und von jedem forRequest-Handle dieselbe Funktion auf, sodass die Funktion nicht von Daten aus einer einzigen Anfrage abhängig sein darf. Verwenden Sie stattdessen das 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];
}
}
});