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
undUserAgent.platform.brand
unterscheidet sich oft zwischen einemUserAgent
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, wennUserAgent
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 undUserAgent.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 Feldversion
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
undCLIENT_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 gefundenenversion
-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 Feldversion
kann auf eine Hauptversion reduziert werden oder eingefroren. Es wird nicht darauf hingewiesen, dass der Wert eingefroren ist.CLIENT_HINTS_LOW_ENTROPY
: Das Feldversion
wird nicht ausgefüllt.CLIENT_HINTS_HIGH_ENTROPY
: Für das Feldversion
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
undUserAgent.bitness
.
- Nicht-Mobilgeräte: Das Feld
CLIENT_HINTS_LOW_ENTROPY
: Das Feldmodel
wird nicht ausgefüllt.CLIENT_HINTS_HIGH_ENTROPY
: Das Feldmodel
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.