Kierowanie na klienta użytkownika

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 UserAgent jest wypełniane na podstawie ich zawartości.
  • Jeśli żądanie zawiera tylko nagłówek User-Agent, pole UserAgent jest wypełniane na podstawie informacji, które można z niego wyodrębnić.
będzie to oznaczać, że wartość 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.brandUserAgent.platform.brand będą się często różnić w zależności od wartości UserAgent na podstawie nagłówka User-Agent lub wskazówek klienta. Na przykład UserAgent.platform.brand moż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.browsers wpisy są unikalne dla nagłówka User-Agent lub wskazówek dotyczących klienta. Na przykład „AppleWebKit” pojawi się, jeśli UserAgent będzie oparty na nagłówku User-Agent, a „Chromium” pojawi się tylko wtedy, gdy będzie oparty na wskazówkach klienta.
  • Tylko UserAgent na 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, parametr UserAgent.platform.brand miałby wartość „Windows NT”, a parametr UserAgent.platform.version miał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: pole version moż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_ENTROPYCLIENT_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 pola version w 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: pole version moż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: 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ć 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 model czę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.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 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.