onBeforeEventSend

Il callback onBeforeEventSend consente di registrare una funzione di JavaScript in grado di modificare i dati inviati immediatamente prima dell'invio dei dati ad Adobe. Questo callback consente di manipolare l'oggetto xdm o data, inclusa la possibilità di aggiungere, modificare o rimuovere elementi. Puoi anche annullare completamente l’invio di dati in modo condizionale, ad esempio con il traffico bot lato client rilevato.

WARNING
Questo callback consente l’utilizzo di codice personalizzato. Se un codice incluso nel callback genera un'eccezione non rilevata, l'elaborazione per l'evento si interrompe. I dati non vengono inviati ad Adobe.

Configurare su prima del callback di invio dell’evento utilizzando l’estensione tag Web SDK tag-extension

Seleziona il pulsante Fornisci prima del codice di callback dell'invio dell'evento durante la configurazione dell'estensione tag. Questo pulsante apre una finestra modale in cui puoi inserire il codice desiderato.

  1. Accedi a experience.adobe.com utilizzando le credenziali Adobe ID.
  2. Passa a Raccolta dati > Tag.
  3. Seleziona la proprietà tag desiderata.
  4. Passa a Estensioni, quindi fai clic su Configura nella scheda Adobe Experience Platform Web SDK.
  5. Scorri verso il basso fino alla sezione Raccolta dati, quindi seleziona il pulsante Fornisci prima del codice di callback di invio dell'evento.
  6. Questo pulsante apre una finestra modale con un editor di codice. Inserisci il codice desiderato, quindi fai clic su Salva per chiudere la finestra modale.
  7. Fai clic su Salva in Impostazioni estensione, quindi pubblica le modifiche.

Nell’editor di codice puoi accedere alle seguenti variabili:

  • content.xdm: payload XDM per l'evento.
  • content.data: payload dell'oggetto data per l'evento.
  • return true: uscire immediatamente dal callback e inviare i dati all'Adobe con i valori correnti nell'oggetto content.
  • return false: uscire immediatamente dal callback e interrompere l'invio di dati all'Adobe.

È possibile utilizzare qualsiasi variabile definita al di fuori di content, ma non è inclusa nel payload inviato a Adobe.

// 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
Evita di restituire false nel primo evento di una pagina. La restituzione di false sul primo evento può avere un impatto negativo sulla personalizzazione.

Configurare su prima del callback di invio dell’evento utilizzando la libreria JavaScript dell’SDK web library

Registra il callback onBeforeEventSend durante l'esecuzione del comando configure. È possibile modificare il nome della variabile content in qualsiasi valore desiderato modificando la variabile di parametro all'interno della funzione in linea.

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');
  }
});

È inoltre possibile registrare una propria funzione invece di una funzione in linea.

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