Der User-Agent-Header wurde bisher in Gebotsanfragen aufgenommen, um nützliche Targeting-Daten wie den Browser und die Plattform des ausführenden Geräts bereitzustellen. In Browsern wird der User-Agent jedoch häufig stark entfernt, da er nur schwer zu verwenden ist und der Datenschutz der Nutzer besser geschützt werden soll. Google unterstützt daher User-Agent-Client-Hints, die bei Verfügbarkeit in Gebotsanfragen enthalten sind, um den User-Agent-Header zu ergänzen. Diese Client-Hinweise können aus Sec-Ch-UA*-Headern oder aus der JavaScript Client Hints API stammen.
Der User-Agent-Header wird im Feld BidRequest.device.ua
als String angezeigt.
Eine UserAgent
-Nachricht wird mit Client-Hints ausgefüllt, wenn diese verfügbar sind. Andernfalls werden Werte aus der User-Agent-Header-Zeile verwendet. Dieser Wert wird im Feld BidRequest.device.sua
angezeigt.
Bietern wird dringend empfohlen, die UserAgent
-Nachricht anstelle des User-Agent-Strings zu verwenden.
Wie UserAgent
ausgefüllt wird
Im Gegensatz zum User-Agent-Header enthält die UserAgent
-Nachricht die User-Agent-Informationen in mehreren Feldern für bestimmte Informationen.
Je nachdem, ob in der Anzeigenanfrage Client-Hinweise verfügbar sind, kann die UserAgent
-Nachricht auf folgende Arten ausgefüllt werden:
- Wenn die Anfrage mindestens Client-Hinweise mit niedriger Entropie enthält, wird
UserAgent
anhand ihres Inhalts ausgefüllt. - Wenn die Anfrage nur den User-Agent-Header enthält, wird
UserAgent
anhand der Informationen aus dem Header ausgefüllt.
Beispiel: UserAgent
anhand des User-Agent-Headers ausfüllen
Angenommen, es gibt eine Anzeigenanfrage, bei der der Browser die folgenden Header sendet:
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 auf Grundlage des User-Agent-Headers ausgefüllt wird, könnte so aussehen:
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
basierend auf Client-Hints ausfüllen
Angenommen, es gibt eine Anzeigenanfrage, bei der der Browser die folgenden Header sendet:
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, wird UserAgent
anhand des Inhalts dieser Header ausgefüllt, auch wenn User-Agent-Header vorhanden sind. Das 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 oder Client-Hints einfügen
Einige Felder werden unterschiedlich ausgefüllt, je nachdem, ob sie auf der User-Agent-Header oder auf Clienthinweisen basieren. Im Folgenden finden Sie eine Zusammenfassung dieser Unterschiede:
- Bei identischen Browsern und Plattformen unterscheiden sich
UserAgent.browsers.brand
undUserAgent.platform.brand
häufig zwischen einerUserAgent
, die auf dem User-Agent-Header oder Client-Hinweisen basiert.UserAgent.platform.brand
könnte beispielsweise als „Windows NT“ angezeigt werden, wenn es auf dem User-Agent-Header basiert, oder als „Windows“, wenn es auf Client-Hints basiert. - Einige
UserAgent.browsers
-Einträge sind nur für den User-Agent-Header oder für Client-Hints spezifisch. Beispielsweise würde „AppleWebKit“ angezeigt, wennUserAgent
auf dem User-Agent-Header basiert, während „Chromium“ nur angezeigt würde, wenn es auf Clienthinweisen basiert. - Nur eine
UserAgent
, die auf dem User-Agent-Header basiert, kann eingefrorene Werte enthalten. Wenn die Plattform beispielsweise Windows 11 22H2 ist, wirdUserAgent.platform.brand
auf „Windows NT“ undUserAgent.platform.version
auf[“10”, “0”]
festgelegt, da dies der eingefrorene Wert für alle Windows-Versionen ab 10 ist.
Daten in UserAgent
, die auf Clienthinweisen basieren, sind normalerweise kein ungenauer Ersatz für eingefrorene oder entfernte Informationen. Bei Abweichungen zwischen dem User-Agent-Header und einer UserAgent
, die auf Client-Hints basiert, sollten die Informationen aus der UserAgent
bevorzugt verwendet werden.
Felder des User-Agent-Objekts
In diesem Abschnitt werden die einzelnen Felder zusammengefasst. Dabei liegt der Schwerpunkt auf dem spezifischen Verhalten von Google RTB und Best Practices für die Verwendung.
Browser
Enthält eine Liste von BrandVersion-Einträgen, die in der Regel nach Spezifität sortiert sind. Wenn Sie beispielsweise den Inhalt von browsers
auflisten, werden die brand
für jeden Eintrag möglicherweise in der folgenden Reihenfolge angezeigt:
Marke | Bedeutung |
Mozilla | Mozilla-kompatibel |
AppleWebKit | AppleWebKit-basiert, ein Teil von Mozilla. |
Chrome | Chrome-Browser, eine Teilmenge der AppleWebKit-kompatiblen Browser |
Safari | Desktopversion im Vergleich zur mobilen Version. |
Die UserAgent
listet Browser nicht immer in einer bestimmten Reihenfolge auf, insbesondere wenn sie auf Clienthinweisen basiert. Im Folgenden werden weitere Unterschiede beschrieben, die sich je nach Wert von source
ergeben können:
USER_AGENT
: Das Feldversion
kann auf eine Hauptversion reduziert oder eingefroren werden (je nach agentenspezifischer Richtlinie). Es gibt keine Angabe dazu, dass der Wert eingefroren ist.CLIENT_HINTS_LOW_ENTROPY
undCLIENT_HINTS_HIGH_ENTROPY
: Die Einträge werden nicht nach bestimmten Kriterien sortiert. Beispielsweise kann derselbe Browser diese Einträge in jeder Anfrage in einer anderen Reihenfolge senden. Sie können auch einen GREASE-Eintrag enthalten, der ignoriert werden sollte.CLIENT_HINTS_HIGH_ENTROPY
: Alleversion
-Felder in Browsern können auf die Vollversionen gesetzt werden.
Plattform
Ein BrandVersion-Eintrag, der die Plattform beschreibt. Das ist möglicherweise nicht mit dem User-Agent-Header und Client-Hinweisen kompatibel. Daher müssen für das Targeting auf einigen Plattformen möglicherweise zwei Namen getestet werden. Das Macintosh-Betriebssystem von Apple wird beispielsweise in der User-Agent-Header-Datei als „Macintosh“ und in Clienthinweisen als „macOS“ bezeichnet.
Im Folgenden werden weitere Unterschiede beschrieben, die sich je nach Wert von source
ergeben können:
USER_AGENT
: Das Feldversion
kann auf eine Hauptversion reduziert oder eingefroren werden. Es gibt keinen Hinweis darauf, dass der Wert eingefroren ist.CLIENT_HINTS_LOW_ENTROPY
: Das Feldversion
wird nicht ausgefüllt.CLIENT_HINTS_HIGH_ENTROPY
: Das Feldversion
kann auf die Vollversion gesetzt sein.
Mobilgerät
Gibt an, ob Inhalte wie Anzeigen für kleine Bildschirme und/oder Eingaben per Berührung optimiert werden sollen. Dies ist nicht unbedingt ein Indikator für den Gerätetyp, da mobile Browser so konfiguriert werden können, dass eine „Desktop-Website“ angefordert wird.
Architektur
Gibt die Architektur der Plattform an, z. B. „x86“ oder „arm“.
Bei einer UserAgent
, die auf Client-Hints basiert, wird dieser Wert nur dann ausgefüllt, wenn source
auf CLIENT_HINTS_HIGH_ENTROPY
festgelegt ist.
Bitness
Gibt die Bitanzahl der Plattform an, z. B. ob es sich um eine 32-Bit- oder 64-Bit-CPU handelt. Das Feld ist ein Ganzzahlstring, der zusätzliche Informationen zur Architektur enthält. Beispielsweise kann die Bitanzahl einer „x86“-Architektur auf „32“ oder „64“ festgelegt sein.
Bei einer UserAgent
, die auf Client-Hints basiert, wird dieser Wert nur dann ausgefüllt, wenn source
auf CLIENT_HINTS_HIGH_ENTROPY
festgelegt ist.
Modell
Gibt das Gerätemodell an. Bei Mobilgeräten (nicht Laptops oder Desktop-Computern) wird hier ein Modellname wie „Pixel 6 Pro“ angezeigt.
Im Folgenden werden die Unterschiede beschrieben, die sich je nach Wert von source
ergeben können:
USER_AGENT
- Nicht mobile Geräte: Das Feld
model
enthält häufig einen kombinierten Wert für Architektur und Bitanzahl, z. B. „x64“ für Windows. Dieser Wert ist nicht plattformübergreifend. Unter Linux wird beispielsweise für dieselbe Hardware möglicherweise „x86_64“ verwendet. - Mobilgeräte: Dieses Feld enthält keine Informationen zur Architektur und Bitanzahl.
Weitere Informationen zu diesen Werten finden Sie unter
UserAgent.architecture
undUserAgent.bitness
.
- Nicht mobile Geräte: Das Feld
CLIENT_HINTS_LOW_ENTROPY
: Das Feldmodel
wird nicht ausgefüllt.CLIENT_HINTS_HIGH_ENTROPY
: Das Feldmodel
wird nur für das Gerätemodell von Mobilgeräten ausgefüllt. Für Computerplattformen ist kein Wert festgelegt.
Quelle
Gibt an, welche Überschriften zum Erstellen der UserAgent
verwendet wurden. Bei Clienthinweisen wird außerdem zwischen den folgenden beiden Fällen unterschieden:
CLIENT_HINTS_LOW_ENTROPY
: Es sind nur grundlegende Client-Hints verfügbar.CLIENT_HINTS_HIGH_ENTROPY
: Clienthinweise sind verfügbar, einschließlich mindestens eines Felds, das als „hohe Entropie“ klassifiziert ist.