[Alpha]{class="badge informative"}
Kontext und weitergeleitete Header
In einem Browser liest Web SDK die Seiten-URL, Bildschirmgröße, Zeitzone und andere Details von der Seite und fügt sie zu jedem Ereignis hinzu. Da ein Server keine Seite zum Lesen hat, fügt der SDK-Server einen kleineren Satz an Kontextdaten hinzu. Außerdem werden Details aus der Besucheranfrage weitergeleitet, damit die Edge Network sie verwenden kann.
Implementierungsdetails implementation-details
Die SDK fügt das xdm.implementationDetails-Objekt zu jedem Ereignis hinzu. Dieses Objekt identifiziert die Bibliothek, die das Ereignis gesendet hat:
{
"implementationDetails": {
"name": "https://ns.adobe.com/experience/alloy-node",
"version": "0.2.1",
"environment": "server"
}
}
Der version entspricht der installierten Version des @adobe/alloy-node. Man kann diese Daten nicht deaktivieren.
Übergeben der eingehenden Anfrage request
Um Kontext über den Besucher hinzuzufügen, übergeben Sie die eingehende Anfrage an forRequest als request:
const visitor = alloy.forRequest({ request: req });
Der request kann ein beliebiges Objekt sein, das über eine headers verfügt, darunter:
- Ein Node.js-
IncomingMessageaus demnode:http. - Ein Anfrageobjekt aus einem auf
node:httpaufbauenden Framework, z. B. Express oder Fastify. - Eine Fetch-API
Request, die viele Server-seitige JavaScript-Laufzeiten und -Frameworks an Anfrage-Handler übergeben. Seineheadersist einHeaders.
Wenn Sie selbst ein einfaches Objekt erstellen, verwenden Sie Header-Namen in Kleinbuchstaben, z. B. { headers: { "user-agent": "..." } }.
Weitergeleitete Header forwarded-headers
Wenn Sie einen request übergeben, kopiert der SDK die folgenden Kopfzeilen aus diesem in jede Anfrage, die er an den Edge Network sendet. Ohne diese Kopfzeilen würde der Edge Network Ihren Server als Besucher sehen, und die Geräte- und Standortsuchen würden Ihren Server anstelle des Besuchers beschreiben.
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-IPDer SDK leitet nur die Kopfzeilen in dieser Tabelle weiter. Die Cookie, Authorization oder Referer des Besuchers werden niemals weitergeleitet.
Die Edge Network verwendet diese Kopfzeilen für Funktionen wie Geolokalisierung und Gerätesuche wenn sie in Ihrem Datenstrom aktiviert sind. Wenn Ihr Server hinter einem Proxy oder Lastenausgleich ausgeführt wird, stellen Sie sicher, dass er X-Forwarded-For oder Forwarded auf die tatsächliche IP-Adresse des Besuchers setzt.
Browser senden standardmäßig nur wenige Client-Hinweise mit niedriger Entropie. Um die anderen zu erhalten, muss Ihr Server den Browser mit dem Accept-CH Antwort-Header nach ihnen fragen.
Seiten-URL aus der Referrer-Kopfzeile page-url
Wenn die eingehende Anfrage eine Referer Kopfzeile hat, verwendet die SDK deren Wert als xdm.web.webPageDetails.URL. Der Referer-Header enthält die Adresse der Seite, von der die Anfrage stammt. Daher ist er nur in einigen Fällen korrekt:
- Der Browser ruft Ihren Server von einer Seite, z. B. mit
fetch:Refererenthält die URL dieser Seite, die normalerweise der gewünschte Wert ist. - Der Browser navigiert zu einer Seite, die Ihr Server rendert:
Refererenthält die vorherige Seite, nicht die Seite, die der Besucher gerade anzeigt. Legen Sie stattdessen die Seiten-URL selbst fest. - Die Anfrage hat verschiedene Ursprünge: Browser kürzen je nach
Referrer-Policyder Seite in der RegelRefererauf den Ursprung, z. B.https://www.example.com/.
Werte, die Sie im xdm festlegen, haben Vorrang vor dem Referer. So legen Sie die Seiten-URL explizit fest:
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 }]
}
}
});
Daten, die SDK nicht erfasst not-collected
Die folgenden Daten, die die Web-SDK in einem Browser erfassen kann, haben keine zuverlässige Serverquelle, sodass die Server-SDK sie nicht hinzufügt:
- Seitentitel, verweisende Seite und Bildschirmausrichtung
- Bildschirmgröße, Viewport-Größe und Bildlaufposition
- Lokale Zeit und Zeitzone
- Benutzeragent-Client mit hoher Entropie weist darauf hin, dass der Browser die Anfrage nicht gesendet hat
Wenn Ihre Anwendung einen dieser Werte kennt, z. B. weil der Browser sie an Ihren Server gesendet hat, fügen Sie sie selbst zum xdm hinzu.