[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 IncomingMessage dal modulo node: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 oggetto Headers.

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.

Header
Scopo
User-Agent
Identifica il browser e il dispositivo del visitatore.
Accept-Language
Identifica le lingue preferite del visitatore.
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, che descrivono in dettaglio il browser e il dispositivo del visitatore. Consulta User-agent client hints.
X-Forwarded-For, Forwarded, X-Real-IP
Identifica l’indirizzo IP del visitatore quando un proxy o un load balancer si trova di fronte al server.

Il 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: Referer contiene l’URL della pagina, che in genere è il valore desiderato.
  • Il browser passa a una pagina renderizzata dal server: Referer contiene 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 Referer all’origine, ad esempio https://www.example.com/, a seconda di Referrer-Policy della 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.

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