Nagłówek User-Agent był do tej pory 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 ograniczają dostęp do informacji User-Agent ze względu na trudności w jej użyciu oraz w celu lepszej ochrony prywatności użytkowników. W odpowiedzi na to Google obsługuje wskazówkami dotyczące klienta użytkownika, które są uwzględniane w żądaniach stawek, gdy są dostępne, aby uzupełnić nagłówek User-Agent. Te wskazówki klienta (w skrótach) można pobrać z nagłówków Sec-Ch-UA* lub z interfejsu Javascript Client Hints API.
Nagłówek User-Agent jest widoczny jako ciąg znaków w polu BidRequest.device.ua
.
Wiadomość UserAgent
zostanie wypełniona wskazówkami dotyczącymi klienta, jeśli są dostępne, ale w przeciwnym razie zostanie wypełniona na podstawie wartości zanalizowanych z nagłówka User-Agent. Jest ona widoczna w polu BidRequest.device.sua
.
Zdecydowanie zalecamy stosowanie komunikatu UserAgent
zamiast ciągu znaków User-Agent.
Sposób wypełniania wymiaru UserAgent
W przeciwieństwie do nagłówka User-Agent wiadomość UserAgent
zawiera informacje o kliencie użytkownika podzielone na kilka pól.
W zależności od tego, czy w żądaniu reklamy są dostępne wskazówki klienta, wiadomość UserAgent
może być wypełniana w takie sposoby:
- Jeśli żądanie zawiera co najmniej niską entropię
wskazówek klienta,
UserAgent
jest wypełniana na podstawie ich zawartości. - Jeśli żądanie zawiera tylko nagłówek User-Agent,
UserAgent
jest wypełniany na podstawie tego, co można przeanalizować w nagłówku.
Przykład: wypełnianie parametru 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
Wartość UserAgent
wypełniona tylko 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 dotyczących 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 w zgłoszeniu są uwzględnione co najmniej wskazówki dotyczące klienta o niskiej entropii, UserAgent
będzie wypełnione na podstawie zawartości tych nagłówków, nawet jeśli są obecne nagłówki User-Agent. Wygląda to 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 User-Agent a nie wskazówek klienta
Niektóre pola są wypełniane inaczej w zależności od tego, czy są one oparte na nagłówku User-Agent czy na wskazówkach klienta. Oto podsumowanie tych różnic:
- W przypadku identycznych przeglądarek i platform
UserAgent.browsers.brand
iUserAgent.platform.brand
często różnią się w zależności odUserAgent
na podstawie nagłówka User-Agent lub wskazówek klienta. Na przykład:UserAgent.platform.brand
może się wyświetlać jako „Windows NT”, jeśli jest oparte na nagłówku User-Agent, lub „Windows”, jeśli jest oparte na wskazówkach dotyczących klienta. - Niektóre wpisy
UserAgent.browsers
są unikalne dla nagłówka User-Agent lub wskazówek dotyczących klienta. Na przykład „AppleWebKit” pojawi się, jeśliUserAgent
będzie oparte na nagłówku User-Agent, a „Chromium” tylko wtedy, gdy będzie oparte na wskazówkach klienta. - Wartości zablokowane może zawierać tylko nagłówek
UserAgent
oparty na nagłówku User-Agent. Jeśli na przykład platforma to Windows 11 22H2, wartośćUserAgent.platform.brand
zostanie ustawiona na „Windows NT”, a wartośćUserAgent.platform.version
na[“10”, “0”]
, ponieważ jest to zablokowana wartość dla każdej wersji Windowsa w wersji 10 lub nowszej.
Dane w UserAgent
oparte na wskazówkach klienta zazwyczaj nie będą nieprawidłową alternatywą dla zamrożonych lub utajnionych informacji. Jeśli występują niezgodności między nagłówkiem User-Agent a wartością UserAgent
na podstawie wskazówek dotyczących klienta, należy preferować informacje z UserAgent
.
Pola obiektu UserAgent
W tej sekcji znajdziesz podsumowanie każdego pola z uwzględnieniem specyfiki Google RTB i sprawdzonych metod jego stosowania.
Przeglądarki
Zawiera listę wpisów BrandVersion, które są zazwyczaj uporządkowane według specyfikiczności. Jeśli na przykład chcesz wyświetlić zawartość browsers
, brand
dla każdego wpisu może się pojawić w tej kolejności:
Marka | Znaczenie |
Mozilla | Zgodność z Mozilla |
AppleWebKit | Oparty na AppleWebKit, podzbiór Mozilla. |
Chrome | przeglądarka Chrome, podzbiór przeglądarek zgodnych z AppleWebKit; |
Safari | Wersja na komputery, w przeciwieństwie do wersji mobilnej. |
UserAgent
nie zawsze wyświetla przeglądarki w określonej kolejności, zwłaszcza jeśli jest to spowodowane wskazówkami klienta. Poniżej znajdziesz inne różnice, których możesz się spodziewać w zależności od wartości source
:
USER_AGENT
: poleversion
może zostać zredukowane do wersji głównej lub zamrożone (w zależności od zasad dotyczących konkretnego agenta). Pamiętaj, że nie będzie żadnego wskazania, że wartość jest zablokowana.CLIENT_HINTS_LOW_ENTROPY
iCLIENT_HINTS_HIGH_ENTROPY
: wpisy nie są sortowane według żadnych kryteriów. Na przykład ta sama przeglądarka może wysyłać te wpisy w różnej kolejności w każdej prośbie. Mogą one też zawierać element GREASE, który należy zignorować.CLIENT_HINTS_HIGH_ENTROPY
: wszystkie polaversion
w przeglądarkach mogą być ustawione na pełne wersje.
Platforma
Element 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ć testowania dwóch nazw. Na przykład system operacyjny Macintosh firmy Apple jest oznaczony jako „Macintosh” w nagłówku User-Agent, ale jako „macOS” w wskazówkach klienta.
Poniżej znajdziesz inne różnice, których możesz się spodziewać w zależności od wartości parametru source
:
USER_AGENT
: poleversion
może zostać zredukowane do wersji głównej lub zamrożone. Pamiętaj, że nie będzie żadnego wskaźnika, że wartość jest zablokowana.CLIENT_HINTS_LOW_ENTROPY
: poleversion
nie zostanie wypełnione.CLIENT_HINTS_HIGH_ENTROPY
: poleversion
może być ustawione na pełną wersję.
Urządzenia mobilne
Wskazuje, czy treści, takie jak reklamy, powinny być optymalizowane pod kątem małych ekranów lub urządzeń dotykowych. Pamiętaj, że nie jest to koniecznie wskaźnik typu urządzenia, ponieważ przeglądarki mobilne mogą być skonfigurowane tak, aby żądać „witryny na komputery”.
Architektura
Określa architekturę platformy, np. „x86” lub „arm”.
W przypadku UserAgent
na podstawie wskazówek klienta pamiętaj, że ta wartość zostanie wypełniona tylko wtedy, gdy source
ma wartość CLIENT_HINTS_HIGH_ENTROPY
.
Bitness
Określa liczbę bitów platformy, np. czy ma procesor 32- czy 64-bitowy. To pole jest ciągiem liczb całkowitych, który zawiera dodatkowe informacje o architekturze. Na przykład architektura „x86” może mieć ustawioną liczbę bitów „32” lub „64”.
W przypadku UserAgent
na podstawie wskazówek klienta pamiętaj, że ta wartość zostanie wypełniona tylko wtedy, gdy source
ma wartość CLIENT_HINTS_HIGH_ENTROPY
.
Model
Identyfikuje model urządzenia. W przypadku urządzeń mobilnych (nie laptopów ani komputerów stacjonarnych) pole to będzie zawierać nazwę modelu, np. „Pixel 6 Pro”.
Poniżej opisujemy różnice, których możesz się spodziewać w zależności od wartości parametru source
:
USER_AGENT
- Urządzenia inne niż mobilne: pole
model
często zawiera połączoną wartość architektury i bitów, np. „x64” w przypadku systemu Windows. Ta wartość nie jest wspólna dla różnych platform. Na przykład Linux może używać „x86_64” dla tego samego sprzętu. - Urządzenia mobilne: to pole nie będzie zawierać informacji o architekturze i liczbie bitów.
Jeśli interesują Cię te wartości, zapoznaj się z artykułami
UserAgent.architecture
iUserAgent.bitness
.
- Urządzenia inne niż mobilne: pole
CLIENT_HINTS_LOW_ENTROPY
: polemodel
nie zostanie wypełnione.CLIENT_HINTS_HIGH_ENTROPY
: polemodel
zostanie wypełnione tylko w przypadku modelu urządzenia mobilnego. W przypadku platform stacjonarnych nie jest ustawiana żadna wartość.
Źródło
Określa nagłówki użyte do utworzenia UserAgent
. W przypadku wskazówek klienta rozróżnia się 2 sytuacje:
CLIENT_HINTS_LOW_ENTROPY
: dostępne są tylko podstawowe wskazówki dotyczące klienta.CLIENT_HINTS_HIGH_ENTROPY
: dostępne są wskazówki dotyczące klienta, w tym co najmniej 1 pole o wysokiej entropii.