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.

WARNING
Esse retorno de chamada permite o uso do código personalizado. Se qualquer código incluído no retorno de chamada acionar uma exceção não capturada, o processamento do evento será interrompido. Os dados não são enviados para o Adobe.

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.

  1. Faça logon em experience.adobe.com usando suas credenciais da Adobe ID.
  2. Navegue até Coleção de dados > Marcas.
  3. Selecione a propriedade de tag desejada.
  4. Navegue até Extensões e clique em Configurar no cartão Adobe Experience Platform Web SDK.
  5. 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.
  6. 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.
  7. 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 objeto content.
  • 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;
}
TIP
Evite retornar 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
});
recommendation-more-help
ad108910-6329-42f1-aa1d-5920a2b13636