Kierowanie na klienta użytkownika

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.brandUserAgent.platform.brand często różnią się w zależności od UserAgent 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śli UserAgentbę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: pole version 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_ENTROPYCLIENT_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 pola version 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: pole version 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: pole version nie zostanie wypełnione.
  • CLIENT_HINTS_HIGH_ENTROPY: pole version 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.architectureUserAgent.bitness.
  • CLIENT_HINTS_LOW_ENTROPY: pole model nie zostanie wypełnione.
  • CLIENT_HINTS_HIGH_ENTROPY: pole model 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.