onBeforeEventSend
El onBeforeEventSend
la devolución de llamada le permite registrar una función de JavaScript que puede alterar los datos que envía justo antes de que se envíen al Adobe. Esta llamada de retorno le permite manipular la variable xdm
o data
, incluida la posibilidad de agregar, editar o eliminar elementos. También puede cancelar de forma condicional el envío de datos, por ejemplo, con el tráfico de bots del lado del cliente detectado.
Configure en antes de la devolución de llamada de envío de evento mediante la extensión de etiqueta del SDK web tag-extension
Seleccione el Proporcionar antes del código de devolución de llamada de envío de evento botón cuando configuración de la extensión de etiqueta. Este botón abre una ventana modal donde puede insertar el código deseado.
- Iniciar sesión en experience.adobe.com usando sus credenciales de Adobe ID.
- Vaya a Recopilación de datos > Etiquetas.
- Seleccione la propiedad de etiquetas que desee.
- Vaya a Extensiones, luego haga clic en Configurar en el SDK web de Adobe Experience Platform Tarjeta de.
- Desplácese hacia abajo hasta el Recopilación de datos , luego seleccione el botón Proporcionar antes del código de devolución de llamada de envío de evento.
- Este botón abre una ventana modal con un editor de código. Inserte el código deseado y haga clic en Guardar para cerrar la ventana modal.
- Clic Guardar en configuración de la extensión, publique los cambios.
En el editor de código, tiene acceso a las siguientes variables:
content.xdm
: La XDM carga útil para el evento.content.data
: La datos carga útil del objeto para el evento.return true
: Salga inmediatamente de la llamada de retorno y envíe datos al Adobe con los valores actuales en lacontent
objeto.return false
: Salga inmediatamente de la llamada de retorno y anule el envío de datos al Adobe.
Cualquier variable definida fuera de content
se pueden usar, pero no se incluyen en la carga útil enviada al 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;
}
false
en el primer evento de una página. Retorno false
en el primer evento puede afectar negativamente a la personalización.Configurar en antes de la devolución de llamada de envío de evento mediante la biblioteca JavaScript del SDK web library
Registre el onBeforeEventSend
devolución de llamada al ejecutar configure
comando. Puede cambiar el content
nombre de la variable a cualquier valor que desee cambiando la variable del parámetro dentro de la función dentro de la línea.
alloy("configure", {
edgeConfigId: "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');
}
});
También puede registrar su propia función en lugar de una función en línea.
function lastChanceLogic(content) {
content.xdm.application ??= {};
content.xdm.application.name = "App name";
}
alloy("configure", {
edgeConfigId: "ebebf826-a01f-4458-8cec-ef61de241c93",
orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
onBeforeEventSend: lastChanceLogic
});