[Alpha]{class="badge informative"}
Intestazioni contestuali e inoltrate
In un browser, il Web SDK legge l’URL della pagina, le dimensioni dello schermo, il fuso orario e altri dettagli dalla pagina e li aggiunge a ogni evento. Un server non ha una pagina da leggere, pertanto Server SDK aggiunge un set più piccolo di dati contestuali. Inoltra inoltre i dettagli della richiesta del visitatore in modo che l’Edge Network possa utilizzarli.
Dettagli di implementazione implementation-details
SDK aggiunge l’oggetto xdm.implementationDetails a ogni evento. Questo oggetto identifica la libreria che ha inviato l’evento:
{
"implementationDetails": {
"name": "https://ns.adobe.com/experience/alloy-node",
"version": "0.2.1",
"environment": "server"
}
}
Il valore version corrisponde alla versione installata del pacchetto @adobe/alloy-node. Non è possibile disattivare questi dati.
Passa la richiesta in ingresso request
Per aggiungere contesto sul visitatore, passa la richiesta in ingresso a forRequest come proprietà request:
const visitor = alloy.forRequest({ request: req });
Il valore request può essere qualsiasi oggetto con una proprietà headers, inclusi:
- Node.js
IncomingMessagedal modulonode:http. - Oggetto di richiesta da un framework basato su
node:http, ad esempio Express o Fastify. - Un’API di recupero
Request, che molti runtime e framework JavaScript lato server trasmettono ai gestori di richieste. La proprietàheadersè un oggettoHeaders.
Se si crea un oggetto normale manualmente, utilizzare nomi di intestazione minuscoli, ad esempio { headers: { "user-agent": "..." } }.
Intestazioni inoltrate forwarded-headers
Quando si passa un request, SDK copia le intestazioni seguenti da esso a ogni richiesta inviata ad Edge Network. Senza queste intestazioni, Edge Network considererebbe il server come il visitatore e le ricerche sul dispositivo e sulla posizione descriverebbero il server anziché il visitatore.
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-IPIl SDK inoltra solo le intestazioni di questa tabella. Non inoltra mai le intestazioni Cookie, Authorization o Referer del visitatore.
Edge Network utilizza queste intestazioni per funzionalità quali geolocalizzazione e ricerca dispositivi, quando sono abilitate nello stream di dati. Se il server viene eseguito dietro un proxy o un load balancer, assicurarsi che imposti X-Forwarded-For o Forwarded sull’indirizzo IP reale del visitatore.
Per impostazione predefinita, i browser inviano solo alcuni suggerimenti client a bassa entropia. Per ricevere gli altri, il server deve chiedere al browser di inviarli con l’intestazione di risposta Accept-CH.
URL della pagina dall’intestazione Referer page-url
Se la richiesta in ingresso ha un’intestazione Referer, SDK utilizza il relativo valore come xdm.web.webPageDetails.URL. L’intestazione Referer contiene l’indirizzo della pagina che ha effettuato la richiesta, quindi è accurata solo in alcuni casi:
- Il browser chiama il server da una pagina, ad esempio con
fetch:Referercontiene l’URL della pagina, che in genere è il valore desiderato. - Il browser passa a una pagina renderizzata dal server:
Referercontiene la pagina precedente, non la pagina che il visitatore sta visualizzando. Imposta l’URL della pagina autonomamente. - La richiesta attraversa le origini: in genere i browser tagliano
Refererall’origine, ad esempiohttps://www.example.com/, a seconda diReferrer-Policydella pagina.
I valori impostati nell’oggetto xdm hanno priorità rispetto al valore Referer. Per impostare esplicitamente l’URL della pagina:
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 }]
}
}
});
Dati che SDK non raccoglie not-collected
I seguenti dati che il Web SDK può raccogliere in un browser non hanno un’origine affidabile su un server, pertanto Server SDK non li aggiunge:
- Titolo pagina, pagina di riferimento e orientamento dello schermo
- Dimensioni dello schermo, dimensioni del riquadro di visualizzazione e posizione di scorrimento
- Ora locale e fuso orario
- Hint client user-agent ad alta entropia che il browser non ha inviato nella richiesta
Se l’applicazione conosce uno di questi valori, ad esempio perché il browser li ha inviati al server, aggiungerli all’oggetto xdm.