[Alpha]{class="badge informative"}
Contexto y encabezados reenviados
En un explorador, Web SDK lee la dirección URL de la página, el tamaño de la pantalla, la zona horaria y otros detalles de la página y los agrega a cada evento. Un servidor no tiene ninguna página para leer, por lo que SDK agrega un conjunto más pequeño de datos de contexto. También reenvía detalles de la solicitud del visitante para que Edge Network pueda utilizarlos.
Detalles de implementación implementation-details
SDK agrega el objeto xdm.implementationDetails a cada evento. Este objeto identifica la biblioteca que envió el evento:
{
"implementationDetails": {
"name": "https://ns.adobe.com/experience/alloy-node",
"version": "0.2.1",
"environment": "server"
}
}
El valor version coincide con la versión instalada del paquete @adobe/alloy-node. No puede desactivar estos datos.
Pasar la solicitud entrante request
Para agregar contexto sobre el visitante, pase la solicitud entrante a forRequest como propiedad de request:
const visitor = alloy.forRequest({ request: req });
El valor request puede ser cualquier objeto que tenga una propiedad headers, que incluya:
- Un Node.js
IncomingMessagedel módulonode:http. - Un objeto de solicitud de un marco de trabajo creado en
node:http, como Express o Fastify. - Una API de recuperación
Request, que muchos tiempos de ejecución y marcos de trabajo de JavaScript del lado del servidor pasan a los controladores de solicitudes. Su propiedadheaderses un objetoHeaders.
Si genera un objeto sin formato, use nombres de encabezado en minúsculas, como { headers: { "user-agent": "..." } }.
Encabezados reenviados forwarded-headers
Cuando pasa un request, SDK copia los siguientes encabezados a cada solicitud que envía a Edge Network. Sin estos encabezados, Edge Network vería su servidor como el visitante, y las búsquedas de dispositivo y ubicación describirían su servidor en lugar de al 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-IPSDK solo reenvía los encabezados de esta tabla. Nunca reenvía los encabezados Cookie, Authorization o Referer del visitante.
Edge Network usa estos encabezados para características como geolocalización y búsqueda de dispositivos, cuando están habilitados en el flujo de datos. Si el servidor se ejecuta detrás de un proxy o equilibrador de carga, asegúrese de que establece X-Forwarded-For o Forwarded en la dirección IP real del visitante.
Los exploradores envían solo algunas sugerencias de cliente de baja entropía de forma predeterminada. Para recibir a los demás, el servidor debe solicitarlos al explorador con el encabezado de respuesta Accept-CH.
Dirección URL de página del encabezado Referente page-url
Si la solicitud entrante tiene un encabezado Referer, SDK usa su valor como xdm.web.webPageDetails.URL. El encabezado Referer contiene la dirección de la página que realizó la solicitud, por lo que solo es precisa en algunos casos:
- El explorador llama al servidor desde una página, por ejemplo con
fetch:Referercontiene la dirección URL de esa página, que suele ser el valor que desea. - El explorador navega a una página que el servidor procesa:
Referercontiene la página anterior, no la página que el visitante está viendo en este momento. Configure usted mismo la dirección URL de la página. - La solicitud cruza los orígenes: Los exploradores normalmente recortan
Refereral origen, comohttps://www.example.com/, según elReferrer-Policyde la página.
Los valores que ha establecido en el objeto xdm tienen prioridad sobre el valor Referer. Para establecer la dirección URL de la página explícitamente:
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 }]
}
}
});
Datos que SDK no recopila. not-collected
Los siguientes datos que Web SDK puede recopilar en un explorador no tienen una fuente fiable en un servidor, por lo que Server SDK no los agrega:
- Título de página, página de referencia y orientación de la pantalla
- Tamaño de la pantalla, tamaño de la ventanilla móvil y posición de desplazamiento
- Hora y zona horaria locales
- El cliente user-agent de alta entropía sugiere que el explorador no envió la solicitud
Si su aplicación conoce alguno de estos valores, por ejemplo porque el explorador los envió al servidor, agréguelo usted mismo al objeto xdm.