[Alpha]{class="badge informative"}

onBeforeEventSend (Server-SDK)

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. implementationDetails und die Seiten-URL aus dem Referer. Siehe Kontext und weitergeleitete Kopfzeilen.
  • data: Die Nicht-XDM-Daten des Ereignisses aus der data Option von sendEvent.

Ä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.

WARNING
Wenn Ihre Funktion einen Fehler ausgibt, sendet die SDK das Ereignis nicht und 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];
    }
  }
});
recommendation-more-help
experience-platform-help-collection