[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
IncomingMessagedo módulonode: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 propriedadeheadersé um objetoHeaders.
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.
User-AgentAccept-LanguageSec-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-WoW64X-Forwarded-For, Forwarded, X-Real-IPO 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:Referercontém a URL dessa página, que geralmente é o valor desejado. - O navegador navega para uma página que o servidor renderiza:
Refererconté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
Refererpara a origem, comohttps://www.example.com/, dependendo daReferrer-Policyda 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.