onBeforeEventSend

Mit dem Rückruf onBeforeEventSend können Sie eine JavaScript-Funktion registrieren, die die gesendeten Daten ändern kann, bevor diese Daten an Adobe gesendet werden. Mit diesem Rückruf können Sie das Objekt xdm oder data bearbeiten, einschließlich der Möglichkeit, Elemente hinzuzufügen, zu bearbeiten oder zu entfernen. Sie können das Senden von Daten auch bedingt abbrechen, z. B. mit erkanntem clientseitigem Bot-Traffic.

WARNING
Dieser Rückruf ermöglicht die Verwendung von benutzerdefiniertem Code. Wenn Code, den Sie in den Rückruf einschließen, eine nicht abgefangene Ausnahme ausgibt, wird die Verarbeitung für das Ereignis angehalten. Daten werden nicht an Adobe gesendet.

Vor dem Ereignis-Rückruf konfigurieren mit der Web SDK-Tag-Erweiterung tag-extension

Wählen Sie bei der Konfiguration der Tag-Erweiterung die Schaltfläche Vor dem Senden des Rückruffods durch das Ereignis bereitstellen aus.Diese Schaltfläche öffnet ein modales Fenster, in das Sie den gewünschten Code einfügen können.

  1. Melden Sie sich mit Ihren Adobe ID-Anmeldedaten bei experience.adobe.com an.
  2. Navigieren Sie zu Datenerfassung > Tags.
  3. Wählen Sie die gewünschte Tag-Eigenschaft aus.
  4. Navigieren Sie zu Erweiterungen und klicken Sie dann auf der Karte Adobe Experience Platform Web SDK auf Konfigurieren .
  5. Scrollen Sie nach unten zum Abschnitt Datenerfassung und wählen Sie dann die Schaltfläche Vor dem Senden des Rückrufcodes für das Ereignis bereitstellen aus.
  6. Diese Schaltfläche öffnet ein modales Fenster mit einem Code-Editor. Fügen Sie den gewünschten Code ein und klicken Sie dann auf Speichern , um das modale Fenster zu schließen.
  7. Klicken Sie unter den Erweiterungseinstellungen auf Speichern und veröffentlichen Sie dann Ihre Änderungen.

Im Code-Editor haben Sie Zugriff auf die folgenden Variablen:

  • content.xdm: Die XDM-Payload für das Ereignis.
  • content.data: Die data -Objekt-Payload für das Ereignis.
  • return true: Beenden Sie sofort den Rückruf und senden Sie Daten mit den aktuellen Werten im content -Objekt an Adobe.
  • return false: Beenden Sie den Callback sofort und brechen Sie das Senden von Daten an Adobe ab.

Alle Variablen, die außerhalb von content definiert sind, können verwendet werden, sind jedoch nicht in der Payload enthalten, die an Adobe gesendet wird.

// Use nullish coalescing assignments to add objects if they don't yet exist
content.xdm.commerce ??= {};
content.xdm.commerce.order ??= {};

// Then add the purchase ID
content.xdm.commerce.order.purchaseID = "12345";

// Use optional chaining to prevent undefined errors when setting tracking code to lower case
if(content.xdm.marketing?.trackingCode) content.xdm.marketing.trackingCode = content.xdm.marketing.trackingCode.toLowerCase();

// Delete operating system version
if(content.xdm.environment) delete content.xdm.environment.operatingSystemVersion;

// Immediately end onBeforeEventSend logic and send the data to Adobe for this event type
if (content.xdm.eventType === "web.webInteraction.linkClicks") {
  return true;
}

// Cancel sending data if it is a known bot
if (myBotDetector.isABot()) {
  return false;
}
TIP
Vermeiden Sie es, beim ersten Ereignis auf einer Seite false zurückzugeben. Die Ausgabe von false beim ersten Ereignis kann sich negativ auf die Personalisierung auswirken.

Vor dem Ereignis-Rückruf konfigurieren mit der Web SDK JavaScript-Bibliothek library

Registrieren Sie den Rückruf onBeforeEventSend , wenn Sie den Befehl configure ausführen. Sie können den Variablennamen content in einen beliebigen Wert ändern, indem Sie die Parametervariable innerhalb der Inline-Funktion ändern.

alloy("configure", {
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  onBeforeEventSend: function(content) {
    // Use nullish coalescing assignments to add a new value
    content.xdm._experience ??= {};
    content.xdm._experience.analytics ??= {};
    content.xdm._experience.analytics.customDimensions ??= {};
    content.xdm._experience.analytics.customDimensions.eVars ??= {};
    content.xdm._experience.analytics.customDimensions.eVars.eVar1 = "Analytics custom value";

    // Use optional chaining to change an existing value
    if(content.xdm.web?.webPageDetails) content.xdm.web.webPageDetails.URL = content.xdm.web.webPageDetails.URL.toLowerCase();

    // Remove an existing value
    if(content.xdm.web?.webReferrer) delete content.xdm.web.webReferrer.URL;

    // Return true to immediately send data
    if (sendImmediate == true) {
      return true;
    }

    // Return false to immediately cancel sending data
    if(myBotDetector.isABot()){
      return false;
    }

    // Assign the value in the 'cid' query string to the tracking code XDM element
    content.xdm.marketing ??= {};
    content.xdm.marketing.trackingCode = new URLSearchParams(window.location.search).get('cid');
  }
});

Sie können auch Ihre eigene Funktion anstelle einer Inline-Funktion registrieren.

function lastChanceLogic(content) {
  content.xdm.application ??= {};
  content.xdm.application.name = "App name";
}

alloy("configure", {
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  onBeforeEventSend: lastChanceLogic
});
recommendation-more-help
ad108910-6329-42f1-aa1d-5920a2b13636