Nagłówek User-Agent był historycznie uwzględniany w pytaniach o stawkę, aby dostarczać przydatne dane do kierowania, takie jak przeglądarka i platforma urządzenia inicjującego. Jednak przeglądarki często mocno redagują ciąg User-Agent ze względu na trudności w jego użyciu i w celu lepszej ochrony prywatności użytkowników. W odpowiedzi na to Google obsługuje wskazówki dotyczące klienta użytkownika, które są uwzględniane w pytaniach o stawkę, gdy są dostępne, aby uzupełnić nagłówek User-Agent. Te wskazówki klienta (w skrócie) mogą pochodzić z nagłówków Sec-Ch-UA* lub z interfejsu Client Hints API w JavaScript.
Nagłówek User-Agent jest udostępniany jako ciąg znaków w polu BidRequest.device.ua.
Wiadomość UserAgent
będzie wypełniana wskazówkami dotyczącymi klienta, gdy będą one dostępne, ale w przeciwnym razie będzie wypełniana na podstawie wartości przeanalizowanych z nagłówka User-Agent. Jest to widoczne w polu BidRequest.device.sua.
Zachęcamy reklamodawców do używania komunikatu UserAgent zamiast ciągu User-Agent.
Sposób wypełniania UserAgent
W przeciwieństwie do nagłówka User-Agent wiadomość UserAgent zawiera informacje o kliencie użytkownika podzielone na kilka pól, w których znajdują się konkretne informacje.
W zależności od tego, czy w żądaniu reklamy dostępne są wskazówki klienta, wiadomość UserAgent może być wypełniana w ten sposób:
- Jeśli żądanie zawiera co najmniej małoentropijne wskazówki klienta, pole
UserAgentjest wypełniane na podstawie ich zawartości. - Jeśli żądanie zawiera tylko nagłówek User-Agent, pole
UserAgentjest wypełniane na podstawie informacji, które można z niego wyodrębnić.
UserAgent została wypełniona na podstawie zawartości nagłówków User-Agent.
Przykład: wypełnianie pola UserAgent na podstawie nagłówka User-Agent
Załóżmy, że pojawia się żądanie reklamy, w którym przeglądarka wysyła te nagłówki:
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
Pole UserAgent wypełnione wyłącznie na podstawie nagłówka User-Agent może wyglądać tak:
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
Przykład: wypełnianie pola UserAgent na podstawie wskazówek klienta
Załóżmy, że pojawia się żądanie reklamy, w którym przeglądarka wysyła te nagłówki:
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
Jeśli uwzględnione są co najmniej wskazówki dotyczące klienta o niskiej entropii, pole UserAgent
zostanie wypełnione na podstawie zawartości tych nagłówków, nawet jeśli nagłówki User-Agent
są obecne. Powinien on wyglądać tak:
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
Wypełnianie na podstawie nagłówka klienta użytkownika a wskazówek dotyczących klienta
Niektóre pola są wypełniane w różny sposób w zależności od tego, czy są oparte na nagłówku User-Agent czy na wskazówkach klienta. Poniżej znajdziesz podsumowanie tych różnic:
- W przypadku identycznych przeglądarek i platform wartości
UserAgent.browsers.brandiUserAgent.platform.brandbędą się często różnić w zależności od wartościUserAgentna podstawie nagłówka User-Agent lub wskazówek klienta. Na przykładUserAgent.platform.brandmoże być wyświetlany jako „Windows NT”, jeśli jest oparty na nagłówku User-Agent, lub „Windows”, jeśli jest oparty na wskazówkach dotyczących klienta. - Niektóre
UserAgent.browserswpisy są unikalne dla nagłówka User-Agent lub wskazówek dotyczących klienta. Na przykład „AppleWebKit” pojawi się, jeśliUserAgentbędzie oparty na nagłówku User-Agent, a „Chromium” pojawi się tylko wtedy, gdy będzie oparty na wskazówkach klienta. - Tylko
UserAgentna podstawie nagłówka User-Agent może zawierać zamrożone wartości. Jeśli na przykład platformą byłby system Windows 11 w wersji 22H2, parametrUserAgent.platform.brandmiałby wartość „Windows NT”, a parametrUserAgent.platform.versionmiałby wartość[“10”, “0”], ponieważ jest to stała wartość dla każdej wersji systemu Windows w wersji 10 lub nowszej.
Dane w UserAgent oparte na wskazówkach klienta zwykle nie będą niedokładnym zamiennikiem zamrożonych ani zredagowanych informacji. Jeśli wystąpi niezgodność między nagłówkiem User-Agent a wartością UserAgent opartą na wskazówkach dotyczących klienta, należy preferować informacje z wartości UserAgent.
Pola obiektu UserAgent
W tej sekcji znajdziesz podsumowanie każdego pola, ze szczególnym uwzględnieniem zachowań związanych z RTB Google i sprawdzonych metod korzystania z tej usługi.
Przeglądarki
Zawiera listę wpisów BrandVersion, które są zwykle uporządkowane według szczegółowości. Jeśli na przykład wypiszesz zawartość browsers, wartość brand dla każdego wpisu może pojawić się w tej kolejności:
| Marka | Znaczenie |
| Mozilla | Zgodność z Mozilla |
| AppleWebKit | oparte na AppleWebKit, podzbiorze Mozilli. |
| Chrome | Przeglądarka Chrome, podzbiór przeglądarek zgodnych z WebKit |
| Safari | wersja na komputery (w przeciwieństwie do wersji mobilnej); |
UserAgent nie zawsze będzie wyświetlać przeglądarki w określonej kolejności, zwłaszcza jeśli dane są oparte na wskazówkach klienta. Poniżej znajdziesz opis innych różnic, których możesz się spodziewać w zależności od wartości source:
USER_AGENT: poleversionmoże zostać ograniczone do wersji głównej lub zablokowane (zależy to od zasad konkretnego agenta). Pamiętaj, że nie będzie żadnej informacji o tym, że wartość jest zamrożona.CLIENT_HINTS_LOW_ENTROPYiCLIENT_HINTS_HIGH_ENTROPY: wpisy nie są uporządkowane według żadnego kryterium. Na przykład ta sama przeglądarka może wysyłać te wpisy w różnej kolejności w każdym żądaniu. Mogą też zawierać wpis GREASE, który należy zignorować.CLIENT_HINTS_HIGH_ENTROPY: wszystkie polaversionw przeglądarkach mogą być ustawione na pełne wersje.
Platforma
Wpis BrandVersion
opisujący platformę. Może to nie być zgodne z nagłówkiem User-Agent i wskazówkami klienta, więc kierowanie na niektóre platformy może wymagać przetestowania 2 nazw. Na przykład system operacyjny Macintosh firmy Apple jest oznaczony w nagłówku User-Agent jako „Macintosh”, ale w podpowiedziach klienta jako „macOS”.
Poniżej znajdziesz inne różnice, których możesz się spodziewać w zależności od wartości source:
USER_AGENT: poleversionmoże zostać ograniczone do głównej wersji lub zamrożone. Pamiętaj, że nie będzie żadnej informacji o tym, że wartość jest zamrożona.CLIENT_HINTS_LOW_ENTROPY: poleversionnie zostanie wypełnione.CLIENT_HINTS_HIGH_ENTROPY: poleversionmoże być ustawione na pełną wersję.
Urządzenia mobilne
Wskazuje, czy treści, takie jak reklamy, powinny być zoptymalizowane pod kątem małych ekranów lub wprowadzania danych dotykiem. Pamiętaj, że nie musi to być wskaźnik typu urządzenia, ponieważ przeglądarki mobilne można skonfigurować tak, aby żądały „witryny na komputery”.
Architektura
Określa architekturę platformy, np. „x86” lub „arm”.
W przypadku UserAgent opartego na wskazówkach klienta pamiętaj, że to pole będzie wypełniane tylko wtedy, gdy source ma wartość CLIENT_HINTS_HIGH_ENTROPY.
Bitness
Określa architekturę platformy, np. czy ma 32-bitowy czy 64-bitowy procesor. To pole jest ciągiem znaków będącym liczbą całkowitą, który zawiera dodatkowe informacje o architekturze, np. w przypadku architektury „x86” może mieć wartość „32” lub „64”.
W przypadku UserAgent opartego na wskazówkach klienta pamiętaj, że to pole będzie wypełniane tylko wtedy, gdy source ma wartość CLIENT_HINTS_HIGH_ENTROPY.
Model
Identyfikuje model urządzenia. W przypadku urządzeń mobilnych (czyli nie laptopów ani komputerów stacjonarnych) będzie to nazwa modelu, np. „Pixel 6 Pro”.
Poniżej opisujemy różnice, których możesz się spodziewać w zależności od wartości source:
USER_AGENT- Urządzenia inne niż mobilne: pole
modelczęsto zawiera połączoną architekturę i wartość bitową, np. „x64” w przypadku systemu Windows. Ta wartość nie jest dostępna na różnych platformach. Na przykład w systemie Linux może być używana wartość „x86_64” dla tego samego sprzętu. - Urządzenia mobilne: to pole nie będzie zawierać architektury ani liczby bitów.
Jeśli interesują Cię te wartości, zapoznaj się z artykułami
UserAgent.architectureiUserAgent.bitness.
- Urządzenia inne niż mobilne: pole
CLIENT_HINTS_LOW_ENTROPY: polemodelnie zostanie wypełnione.CLIENT_HINTS_HIGH_ENTROPY: polemodelzostanie wypełnione tylko w przypadku modelu urządzenia mobilnego. W przypadku platform na komputery nie jest ustawiona żadna wartość.
Źródło
Określa, które nagłówki zostały użyte do utworzenia UserAgent. W przypadku wskazówek klienta rozróżnia też te 2 przypadki:
CLIENT_HINTS_LOW_ENTROPY: dostępne są tylko podstawowe wskazówki klienta.CLIENT_HINTS_HIGH_ENTROPY: Wskazówki dotyczące klienta są dostępne, w tym co najmniej 1 pole sklasyfikowane jako o wysokiej entropii.