[Alpha]{class="badge informative"}

Contexto e cabeçalhos encaminhados

Em um navegador, o Web SDK lê o URL da página, o tamanho da tela, o fuso horário e outros detalhes da página e os adiciona a cada evento. Um servidor não tem página para ler, portanto, o SDK do servidor adiciona um conjunto menor de dados de contexto. Também encaminha detalhes da solicitação do visitante para que o Edge Network possa usá-los.

Detalhes da implementação implementation-details

O SDK adiciona o objeto xdm.implementationDetails a cada evento. Este objeto identifica a biblioteca que enviou o evento:

{
  "implementationDetails": {
    "name": "https://ns.adobe.com/experience/alloy-node",
    "version": "0.2.1",
    "environment": "server"
  }
}

O valor version corresponde à versão instalada do pacote @adobe/alloy-node. Você não pode desativar estes dados.

Transmita a solicitação recebida request

Para adicionar contexto sobre o visitante, passe a solicitação recebida para forRequest como a propriedade request:

const visitor = alloy.forRequest({ request: req });

O valor request pode ser qualquer objeto que tenha uma propriedade headers, incluindo:

  • Um Node.js IncomingMessage do módulo node:http.
  • Um objeto de solicitação de uma estrutura criada em node:http, como Express ou Fastify.
  • Uma API Fetch Request, que muitos tempos de execução e estruturas de JavaScript do lado do servidor transmitem para os manipuladores de solicitação. Sua propriedade headers é um objeto Headers.

Se você mesmo criar um objeto simples, use nomes de cabeçalho em minúsculas, como { headers: { "user-agent": "..." } }.

Cabeçalhos encaminhados forwarded-headers

Quando você passa um request, o SDK copia os seguintes cabeçalhos dele para cada solicitação que envia para o Edge Network. Sem esses cabeçalhos, o Edge Network veria seu servidor como o visitante, e suas pesquisas de dispositivo e local descreveriam seu servidor em vez do visitante.

Header
Finalidade
User-Agent
Identifica o navegador e o dispositivo do visitante.
Accept-Language
Identifica os idiomas preferidos do visitante.
Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform, Sec-CH-UA-Platform-Version, Sec-CH-UA-Arch, Sec-CH-UA-Bitness, Sec-CH-UA-Full-Version-List, Sec-CH-UA-Model, Sec-CH-UA-WoW64
User-Agent Client Hints, que descrevem o navegador e o dispositivo do visitante com mais detalhes. Consulte User-agent client hints.
X-Forwarded-For, Forwarded, X-Real-IP
Identifique o endereço IP do visitante quando um proxy ou balanceador de carga estiver na frente do servidor.

O SDK encaminha somente os cabeçalhos nesta tabela. Ele nunca encaminha os cabeçalhos Cookie, Authorization ou Referer do visitante.

A Edge Network usa esses cabeçalhos para recursos como geolocalização e pesquisa de dispositivo, quando eles são habilitados na sua sequência de dados. Se o servidor for executado por trás de um proxy ou balanceador de carga, verifique se ele define X-Forwarded-For ou Forwarded para o endereço IP real do visitante.

Por padrão, os navegadores enviam apenas algumas dicas de cliente de baixa entropia. Para receber os outros, seu servidor deve solicitar ao navegador o cabeçalho de resposta Accept-CH.

URL da página do cabeçalho Referenciador page-url

Se a solicitação de entrada tiver um cabeçalho Referer, o SDK usará seu valor como xdm.web.webPageDetails.URL. O cabeçalho Referer contém o endereço da página que fez a solicitação, portanto, ele é preciso somente em alguns casos:

  • O navegador chama seu servidor de uma página, por exemplo, com fetch: Referer contém a URL dessa página, que geralmente é o valor desejado.
  • O navegador navega para uma página que o servidor renderiza: Referer contém a página anterior, não a página que o visitante está visualizando agora. Em vez disso, defina você mesmo o URL da página.
  • A solicitação cruza origens: os navegadores geralmente cortam Referer para a origem, como https://www.example.com/, dependendo da Referrer-Policy da página.

Os valores definidos no objeto xdm têm prioridade sobre o valor Referer. Para definir explicitamente o URL da página:

await visitor.sendEvent({
  xdm: {
    eventType: "web.webpagedetails.pageViews",
    web: {
      webPageDetails: {
        URL: `https://www.example.com${req.url}`
      }
    },
    identityMap: {
      Email: [{ id: "visitor@example.com", primary: true }]
    }
  }
});

Dados que a SDK não coleta not-collected

Os seguintes dados que o Web SDK pode coletar em um navegador não têm uma fonte confiável em um servidor, portanto, o Server SDK não os adiciona:

  • Título da página, página de referência e orientação da tela
  • Tamanho da tela, tamanho do visor e posição de rolagem
  • Horário local e fuso horário
  • Dicas de cliente de agente do usuário de alta entropia que o navegador não enviou na solicitação

Se o aplicativo souber qualquer um desses valores, por exemplo, porque o navegador os enviou ao servidor, adicione-os ao objeto xdm você mesmo.

recommendation-more-help
experience-platform-help-collection