User-Agent-Targeting

Den User-Agent in Gebotsanfragen bereits verwendet, um nützliche Targeting-Daten wie den Browser und die Plattform des auslösenden Geräts an. Sie können jedoch den User-Agent aufgrund seiner Schwierigkeit um die Privatsphäre der Nutzer besser zu schützen. Daher unterstützt Google User-Agent-Client-Hints: in Gebotsanfragen enthalten, sofern verfügbar als Ergänzung zum User-Agent-Header. Diese Client Hints (kurz gesagt) können aus Headern vom Typ Sec-Ch-UA* stammen oder aus der JavaScript Client Hints API.

Je nach verwendetem Protokoll wird der User-Agent-Header mit einem der folgenden Stringfeldern:

  • OpenRTB: BidRequest.device.ua
  • RTB-Funktion von Google (eingestellt): BidRequest.user_agent

Eine UserAgent-Nachricht wird mit Client Hints gefüllt, wenn diese verfügbar, wird aber ansonsten auf Grundlage von Werten gefüllt, die vom User-Agent-Header. Je nach verwendetem Protokoll wird dies als eine folgenden Feldern hinzu:

  • OpenRTB: BidRequest.device.sua
  • RTB-Funktion von Google (eingestellt): BidRequest.user_agent_data

Bietern wird dringend empfohlen, die Mitteilung UserAgent anstelle der User-Agent-String.

So wird UserAgent ausgefüllt

Im Gegensatz zum User-Agent-Header steht die UserAgent-Nachricht für den User-Agent Informationen, die in mehrere Felder für bestimmte Informationen unterteilt sind.

Je nachdem, ob Client-Hints in der Anzeigenanfrage verfügbar sind, Die UserAgent-Nachricht kann auf folgende Arten ausgefüllt werden:

  • Wenn die Anfrage mindestens niedrige Entropie Client-Hints wird UserAgent basierend auf deren Inhalt gefüllt.
  • Wenn die Anfrage nur den User-Agent-Header enthält, wird UserAgent basierend auf dem, was aus dem Header geparst werden kann.

Beispiel: UserAgent anhand des User-Agent-Headers ausfüllen

Angenommen, der Browser sendet bei einer Anzeigenanfrage die folgenden Header:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
            AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36

Ein UserAgent, das ausschließlich anhand des User-Agent-Headers ausgefüllt wird, könnte so aussehen: Folgendes:

browsers: [{ brand: "Mozilla", version: ["5", "0"] },
           { brand: "AppleWebKit", version: ["537", "36"] },
           { brand: "Chrome", version: ["103", "0", "0", "0"] },
           { brand: "Safari", version: ["537", "36"] }],
platform: { brand: "Windows NT", version: ["10", "0"] },
mobile: false,
architecture: "x86",
bitness: "64",
model: "x64",
source: USER_AGENT_STRING

Beispiel: UserAgent anhand von Clienthinweisen ausfüllen

Angenommen, der Browser sendet bei einer Anzeigenanfrage die folgenden Header:

User-Agent:                 Mozilla/5.0 (Windows NT 10.0; Win64; x64)
                            AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Sec-Ch-Ua:                  ".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"
Sec-Ch-Ua-Arch:             x86
Sec-Ch-Ua-Full-Version:     103.0.5060.134
Sec-Ch-Ua-Mobile:           ?0
Sec-Ch-Ua-Platform:         Windows
Sec-Ch-Ua-Platform-Version: 15.0.0

Wenn mindestens Client-Hints mit niedriger Entropie enthalten sind, ist der UserAgent wird basierend auf dem Inhalt dieser Header eingefügt, auch wenn vorhanden sind. Sie würde so aussehen:

browsers: [{ brand: ".Not/A)Brand", version: ["99", "0", "0", "0"] },
           { brand: "Google Chrome", version: ["103", "0", "5060", "134"] },
           { brand: "Chromium", version: ["103", "0", "5060", "134"] }],
platform: { brand: "Windows", version: ["15", "0", "0"] },
mobile: false,
architecture: "x86",
bitness: "64",
source: CLIENT_HINTS_HIGH_ENTROPY

Daten basierend auf dem User-Agent-Header im Vergleich zu Client-Hints ausfüllen

Einige Felder werden unterschiedlich ausgefüllt, je nachdem, ob sie auf User-Agent-Header oder Client-Hints. Im Folgenden finden Sie eine Zusammenfassung dieser Unterschiede:

  • Bei identischen Browsern und Plattformen werden UserAgent.browsers.brand und UserAgent.platform.brand unterscheidet sich oft zwischen einem UserAgent aufgrund User-Agent-Header oder Client-Hints. Beispiel: UserAgent.platform.brand könnte als „Windows NT“ angezeigt werden, wenn sie auf den User-Agent-Header oder „Windows“, wenn diese auf Client-Hints basieren.
  • Einige UserAgent.browsers-Einträge sind eindeutig im User-Agent-Header oder zu Client Hints. Beispiel: „AppleWebKit“ wird angezeigt, wenn UserAgent basierend auf dem User-Agent-Header, während „Chromium“ wenn sie auf Client Hints basieren.
  • Nur ein UserAgent, der auf dem User-Agent-Header basiert, kann fixierte Werte enthalten. Lautet die Plattform beispielsweise Windows 11 22H2, UserAgent.platform.brand wird auf „Windows NT“ gesetzt und UserAgent.platform.version wird auf [“10”, “0”] gesetzt, weil dies den eingefrorenen Wert für alle Windows-Versionen ab 10

Daten in UserAgent, die auf Clienthinweisen basieren, sind normalerweise kein falscher Ersatz für eingefrorene oder geschwärzte Informationen Falls es welche gibt, Inkonsistenz zwischen User-Agent-Header und UserAgent basierend auf Client Hinweis: Die Informationen aus dem UserAgent sollten bevorzugt werden.

UserAgent-Objektfelder

In diesem Abschnitt werden die einzelnen Felder zusammengefasst. Der Schwerpunkt liegt dabei auf RTB-spezifischen und Best Practices für die Nutzung.

Browser

Enthält eine Liste mit BrandVersion die in der Regel nach Spezifität sortiert sind, z. B. wenn Sie den Inhalt von browsers auflisten, können brand für jeden Eintrag angezeigt werden. in der folgenden Reihenfolge:

Marke Bedeutung
Mozilla Mozilla-kompatibel
AppleWebKit AppleWebKit-basiert, eine Untergruppe von Mozilla.
Chrome Chrome-Browser, eine Untergruppe der AppleWebKit-kompatiblen Browser
Safari Desktop-Variante im Gegensatz zu Mobilgeräten

Das UserAgent listet die Browser nicht immer in einer bestimmten Reihenfolge auf, insbesondere nicht wenn sie auf Client Hints basiert. Im Folgenden werden weitere Unterschiede beschrieben. die Sie basierend auf dem Wert von source erwarten können:

  • USER_AGENT: Das Feld version kann auf eine Hauptversion reduziert werden oder eingefroren (hängt von der agentenspezifischen Richtlinie ab) Beachten Sie, dass es keine gibt an, dass der Wert eingefroren ist.
  • CLIENT_HINTS_LOW_ENTROPY und CLIENT_HINTS_HIGH_ENTROPY: Einträge sind nicht nach keinem Kriterium sortiert; Beispiel: Derselbe Browser sendet diese in unterschiedlichen Reihenfolgen sortiert werden. Sie können auch ein GREASE-Eintrag, der ignoriert werden sollte.
  • CLIENT_HINTS_HIGH_ENTROPY: Alle in Browsern gefundenen version-Felder könnten sein Vollversionen.

Plattform

Eine BrandVersion einen Eintrag zur Beschreibung der Plattform. Dies ist möglicherweise nicht mit dem User-Agent kompatibel Header und Client Hints, sodass die Ausrichtung auf einige Plattformen möglicherweise Tests erfordert. zwei Namen. Das Apple-Betriebssystem Macintosh heißt beispielsweise „Macintosh“ im User-Agent-Header, aber „macOS“ in Client Hints. Im Folgenden werden weitere Unterschiede beschrieben, die basierend auf Wert von source:

  • USER_AGENT: Das Feld version kann auf eine Hauptversion reduziert werden oder eingefroren. Es wird nicht darauf hingewiesen, dass der Wert eingefroren ist.
  • CLIENT_HINTS_LOW_ENTROPY: Das Feld version wird nicht ausgefüllt.
  • CLIENT_HINTS_HIGH_ENTROPY: Für das Feld version kann der vollständige Wert festgelegt werden. Version.

Mobilgeräte

Gibt an, ob Inhalte wie Anzeigen für kleine Bildschirme und/oder Eingabe per Berührung. Beachten Sie, dass dies nicht unbedingt ein Indikator für den Gerätetyp ist, da mobile Browser können so konfiguriert werden, dass sie eine Desktopwebsite anfordern.

Architektur

Identifiziert die Architektur der Plattform, z. B. „x86“ oder „Verzweigung“.

Beachten Sie, dass für UserAgent auf Basis von Client Hints nur dieses Feld wenn source auf CLIENT_HINTS_HIGH_ENTROPY gesetzt ist.

Gesäß

Gibt das Bit der Plattform an, z. B. ob es eine 32-Bit- oder 64-Bit-Version hat CPU Das Feld ist ein ganzzahliger String, der zusätzliche Informationen zu Architektur Beispielsweise kann in einer „x86“-Architektur die Bitness entweder „32“ oder „64“.

Beachten Sie, dass für UserAgent auf Basis von Client Hints nur dieses Feld wenn source auf CLIENT_HINTS_HIGH_ENTROPY gesetzt ist.

Modell

Identifiziert das Gerätemodell. Für Mobilgeräte, also keine Laptops oder Desktops – hier wird ein Modellname wie „Pixel 6 Pro“ verwendet.

Im Folgenden werden die Unterschiede beschrieben, die in Abhängigkeit von der Wert von source:

  • USER_AGENT
    • Nicht-Mobilgeräte: Das Feld model enthält häufig einen kombinierten Architektur- und Bitnesswert wie „x64“ für Windows. Dieser Wert ist nicht plattformübergreifend. z. B. „x86_64“ Hardware.
    • Mobilgeräte: Dieses Feld enthält keine Informationen zu Architektur und Bitness. Wenn Sie sich für diese Werte interessieren, lesen Sie UserAgent.architecture und UserAgent.bitness.
  • CLIENT_HINTS_LOW_ENTROPY: Das Feld model wird nicht ausgefüllt.
  • CLIENT_HINTS_HIGH_ENTROPY: Das Feld model wird nur ausgefüllt für das Gerätemodell von Mobilgeräten. Für Desktop-Plattformen ist kein Wert festgelegt.

Quelle

Gibt an, welche Header zum Erstellen von UserAgent verwendet wurden. Für Client Hints wird auch zwischen den folgenden beiden Fällen unterschieden:

  • CLIENT_HINTS_LOW_ENTROPY: Nur einfache Client-Hints sind verfügbar.
  • CLIENT_HINTS_HIGH_ENTROPY: Client-Hints sind verfügbar, darunter mindestens ein Feld mit hoher Entropie.