[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-IncomingMessage aus dem node:http.
  • Ein Anfrageobjekt aus einem auf node:http aufbauenden Framework, z. B. Express oder Fastify.
  • Eine Fetch-API Request, die viele Server-seitige JavaScript-Laufzeiten und -Frameworks an Anfrage-Handler übergeben. Seine headers ist ein Headers.

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.

Header
Zweck
User-Agent
Identifiziert den Browser und das Gerät des Besuchers.
Accept-Language
Gibt die bevorzugten Sprachen des Besuchers an.
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, die den Browser und das Gerät des Besuchers detaillierter beschreiben. Siehe User-agent Client Hints.
X-Forwarded-For, Forwarded, X-Real-IP
Identifizieren Sie die IP-Adresse des Besuchers, wenn sich ein Proxy oder Lastenausgleich vor Ihrem Server befindet.

Der 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: Referer enthält die URL dieser Seite, die normalerweise der gewünschte Wert ist.
  • Der Browser navigiert zu einer Seite, die Ihr Server rendert: Referer enthä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-Policy der Seite in der Regel Referer auf 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.

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