onBeforeEventSend
O retorno de chamada onBeforeEventSend
permite registrar uma função JavaScript que pode alterar os dados enviados antes que esses dados sejam enviados ao Adobe. Este retorno de chamada permite manipular o objeto xdm
ou data
, incluindo a capacidade de adicionar, editar ou remover elementos. Você também pode cancelar condicionalmente o envio de dados, como com o tráfego de bot do lado do cliente detectado.
Configure em antes do retorno de chamada do envio do evento usando a extensão de tag do SDK da Web tag-extension
Selecione o botão Fornecer antes do envio do evento do código de retorno de chamada ao configurar a extensão de marca. Esse botão abre uma janela modal onde você pode inserir o código desejado.
- Faça logon em experience.adobe.com usando suas credenciais da Adobe ID.
- Navegue até Coleção de dados > Marcas.
- Selecione a propriedade de tag desejada.
- Navegue até Extensões e clique em Configurar no cartão Adobe Experience Platform Web SDK.
- Role para baixo até a seção Coleção de dados e selecione o botão Fornecer antes do código de retorno de chamada de envio do evento.
- Esse botão abre uma janela modal com um editor de código. Insira o código desejado e clique em Salvar para fechar a janela modal.
- Clique em Salvar nas configurações de extensão e publique suas alterações.
No editor de código, você tem acesso às seguintes variáveis:
content.xdm
: a carga XDM para o evento.content.data
: a carga do objeto data para o evento.return true
: Saia imediatamente do retorno de chamada e envie dados para o Adobe com os valores atuais no objetocontent
.return false
: Saia imediatamente do retorno de chamada e interrompa o envio de dados para o Adobe.
Qualquer variável definida fora de content
pode ser usada, mas não está incluída na carga enviada para o 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
no primeiro evento da página. Retornar false
no primeiro evento pode afetar negativamente a personalização.Configure em antes do evento enviar retorno de chamada usando a biblioteca JavaScript do SDK da Web library
Registre o retorno de chamada onBeforeEventSend
ao executar o comando configure
. Você pode alterar o nome da variável content
para qualquer valor desejado alterando a variável de parâmetro dentro da função embutida.
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');
}
});
Você também pode registrar sua própria função em vez de uma função em linha.
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
});