[Alpha]{class="badge informative"}

onBeforeEventSend (SDK do Servidor)

Esta página descreve onBeforeEventSend no método configure do SDK do Servidor. Para o Web SDK, consulte onBeforeEventSend.

O retorno de chamada onBeforeEventSend permite registrar uma função que é executada antes que o SDK do servidor envie cada evento. Use-a para adicionar, alterar ou remover dados em cada evento em um local ou para cancelar eventos que você não deseja enviar, como tráfego de bots conhecidos.

O SDK chama a função com um objeto content que contém as seguintes propriedades:

  • xdm: os dados XDM do evento. Ela já inclui os dados que o SDK adiciona automaticamente, como implementationDetails e a URL da página retirada do cabeçalho Referer. Consulte Contexto e cabeçalhos encaminhados.
  • data: Os dados não XDM do evento, da opção data de sendEvent.

Altere o objeto content diretamente. Retorne false para cancelar o evento. Ao cancelar um evento, sendEvent é resolvido com um objeto vazio e a SDK não contata a Adobe.

WARNING
Se a sua função gerar um erro, a SDK não enviará o evento e sendEvent será rejeitado com um erro que inclui a mensagem da sua função.

Exemplo de código

Registre o retorno de chamada onBeforeEventSend ao chamar configure. O SDK chama a mesma função para cada evento da instância e de cada identificador forRequest, portanto, a função não deve depender dos dados de uma única solicitação. Em vez disso, use o objeto content.

await alloy.configure({
  datastreamId: "ebebf826-a01f-4458-8cec-ef61de241c93",
  orgId: "ADB3LETTERSANDNUMBERS@AdobeOrg",
  edgeCredentials: {
    clientId: process.env.ADOBE_CLIENT_ID,
    clientSecret: process.env.ADOBE_CLIENT_SECRET,
    scopes: process.env.ADOBE_SCOPES.split(",")
  },
  onBeforeEventSend: (content) => {
    // Cancel events that your application marked as bot traffic
    if (content.data?.isBot) {
      return false;
    }

    // Add a value to every event
    content.xdm.application ??= {};
    content.xdm.application.name = "Example storefront";

    // Remove the query string from the page URL
    const pageUrl = content.xdm.web?.webPageDetails?.URL;
    if (pageUrl) {
      content.xdm.web.webPageDetails.URL = pageUrl.split("?")[0];
    }
  }
});
recommendation-more-help
experience-platform-help-collection