Kierowanie na klienta użytkownika

Nagłówek User-Agent był dotychczas uwzględniany w pytaniach o stawkę, aby zapewniać przydatne dane dotyczące kierowania, np. przeglądarkę i platformę urządzenia, które inicjują działanie. Jednak ze względu na trudność użytkowania i lepsze ochronę prywatności użytkownika przeglądarki często w dużym stopniu pomijają ten parametr. Dlatego Google obsługuje wskazówki klienta User-Agent, które są uwzględniane w pytaniach o stawkę (o ile są dostępne jako uzupełnienie nagłówka User-Agent). Te wskazówki dotyczące klienta (w skrócie) można pobrać z nagłówków Sec-Ch-UA* lub z interfejsu JavaScript Client Hints API.

W zależności od używanego protokołu nagłówek User-Agent jest udostępniany z jednym z tych pól ciągu znaków:

  • Google: BidRequest.user_agent
  • OpenRTB: BidRequest.device.ua

Komunikat UserAgent będzie wypełniany wskazówkami klienta, gdy będą dostępne, ale w przeciwnym razie będzie wypełniany na podstawie wartości uzyskanych z nagłówka User-Agent. W zależności od używanego protokołu to pole będzie widoczne jako jedno z tych pól:

  • Google: BidRequest.user_agent_data
  • OpenRTB: BidRequest.device.sua

Zdecydowanie zalecamy licytującym korzystanie z komunikatu UserAgent, a nie z ciągu znaków User-Agent.

Sposób wypełniania pola UserAgent

W przeciwieństwie do nagłówka User-Agent komunikat UserAgent zawiera informacje o kliencie użytkownika podzielone na kilka pól, które zawierają określone informacje.

W zależności od tego, czy w żądaniu reklamy są dostępne wskazówki klienta, komunikat UserAgent może zostać wypełniony w taki sposób:

  • Jeśli żądanie zawiera wskazówki klienta o co najmniej niskiej entropii, wartość UserAgent jest wypełniana na podstawie ich zawartości.
  • Jeśli żądanie zawiera tylko nagłówek User-Agent, pole UserAgent jest wypełniane na podstawie tego, co można odczytać z nagłówka.

Przykład: wypełnianie pola UserAgent na podstawie nagłówka User-Agent

Załóżmy, że istnieje żądanie reklamy, w którym przeglądarka wysyła następujące 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łniane 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 istnieje żądanie reklamy, w którym przeglądarka wysyła następujące 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ędniono co najmniej wskazówki klienta o niskiej entropii, pole UserAgent zostanie uzupełnione na podstawie zawartości tych nagłówków nawet wtedy, gdy występują nagłówki klienta użytkownika. Mogłoby to 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 User-Agent w porównaniu ze wskazówkami klienta

Niektóre pola są wypełniane w różny sposób w zależności od tego, czy zawierają nagłówek User-Agent czy wskazówki klienta. Oto podsumowanie tych różnic:

  • W przypadku identycznych przeglądarek i platform UserAgent.browsers.brand i UserAgent.platform.brand często różnią się wartością UserAgent na podstawie nagłówka User-Agent lub wskazówek klienta. Na przykład pole UserAgent.platform.brand może pojawić się jako „Windows NT”, jeśli ma związek z nagłówkiem User-Agent, lub „Windows”, jeśli bazuje na wskazówkach klienta.
  • Niektóre wpisy UserAgent.browsers są unikalne dla nagłówka User-Agent lub wskazówek klienta. Na przykład tekst „AppleWebKit” wyświetla się, gdy element UserAgent bazuje na nagłówku User-Agent, a „Chromium” – tylko wtedy, gdy korzysta ze wskazówek klienta.
  • Zablokowane wartości może zawierać tylko kod UserAgent oparty na nagłówku klienta użytkownika. Na przykład, jeśli platformą byłby Windows 11 22H2, UserAgent.platform.brand byłby ustawiony na „Windows NT”, a UserAgent.platform.version miałby wartość [“10”, “0”], ponieważ jest to zablokowana wartość dla każdej wersji systemu Windows, która ma wartość 10 lub wyższą.

Dane w usłudze UserAgent, które opierają się na podpowiedziach klienta, zwykle nie są dokładnym zastąpieniem zablokowanych lub usuniętych informacji. W razie rozbieżności między nagłówkiem User-Agent i UserAgent w zależności od wskazówek klienta preferowane powinny być informacje z UserAgent.

Pola obiektów klienta użytkownika

W tej sekcji znajdziesz podsumowanie każdego z tych pól, a w szczególności informacje o zachowaniach Google i sprawdzonych metodach korzystania z nich.

Przeglądarka

Zawiera listę pozycji BrandVersion, które są zwykle uporządkowane według specyfiki. Jeśli na przykład chcesz spisać zawartość właściwości browsers, brand dla każdego wpisu może mieć taką kolejność:

marka; Znaczenie
Mozilla Zgodność z Mozilla
AppleWebKit Oprogramowanie oparte na technologii AppleWebKit, które jest podzbiorem Mozilli.
Chrome Przeglądarka Chrome stanowiąca podzbiór przeglądarek zgodnych z AppleWebKit
Safari Wersja na komputery, a nie na urządzenia mobilne.

Parametr UserAgent nie zawsze wyświetla listę przeglądarek w żadnej określonej kolejności, zwłaszcza jeśli jest oparta na podpowiedziach klienta. Poniżej opisujemy inne różnice, jakich możesz się spodziewać w przypadku wartości source:

  • USER_AGENT: pole version może zostać ograniczone do wersji głównej lub zablokowane (w zależności od zasady dotyczącej agenta). Pamiętaj, że nie będzie widać, że wartość jest zablokowana.
  • CLIENT_HINTS_LOW_ENTROPY i CLIENT_HINTS_HIGH_ENTROPY: wpisy nie są uporządkowane według żadnych kryteriów, na przykład ta sama przeglądarka może wysyłać je 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ę. Ta metoda może nie być zgodna 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 Apple Macintosh w nagłówku User-Agent jest oznaczony etykietą „Macintosh”, a w Wskazówkach klienta – „macOS”. Poniżej opisujemy inne różnice, których możesz spodziewać się w przypadku wartości source:

  • USER_AGENT: pole version może zostać ograniczone do wersji głównej lub zablokowane. Pamiętaj, że nie będzie widać, że wartość jest zablokowana.
  • CLIENT_HINTS_LOW_ENTROPY: pole version nie będzie wypełnione.
  • CLIENT_HINTS_HIGH_ENTROPY: w polu version można ustawić pełną wersję.

Urządzenia mobilne

Określa, czy treści takie jak reklamy powinny być zoptymalizowane pod kątem małych ekranów lub sterowania dotykowego. Pamiętaj, że niekoniecznie musi to być wskaźnik typu urządzenia, ponieważ przeglądarki mobilne można skonfigurować tak, aby żądały „strony na komputery”.

Architektura

Wskazuje architekturę platformy, np. „x86” lub „arm”.

Pamiętaj, że w przypadku UserAgent opartej na podpowiedziach klienta pole będzie wypełniane tylko wtedy, gdy source ma wartość CLIENT_HINTS_HIGH_ENTROPY.

Zmysł

Określa szybkość transmisji bitów platformy, np. to, czy procesor jest 32- czy 64-bitowy. To pole zawiera ciąg liczbowy zawierający dodatkowe informacje o architekturze. Na przykład architektura „x86” może mieć szybkość transmisji bitów „32” lub „64”.

Pamiętaj, że w przypadku UserAgent opartej na podpowiedziach klienta 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 czy komputerów stacjonarnych) pole będzie zawierać nazwę modelu, np. „Pixel 6 Pro”.

Poniżej opisujemy różnice, jakich 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 czasu transmisji bitów, np. „x64” w przypadku systemu Windows. Nie jest to wartość na wielu platformach. Na przykład Linux może użyć „x86_64” dla tego samego sprzętu.
    • Urządzenia mobilne: to pole nie obejmuje architektury ani szybkości transmisji bitów. Jeśli interesują Cię te wartości, zobacz UserAgent.architecture i UserAgent.bitness.
  • CLIENT_HINTS_LOW_ENTROPY: pole model nie będzie wypełnione.
  • CLIENT_HINTS_HIGH_ENTROPY: pole model będzie wypełnione tylko w przypadku modelu urządzenia mobilnego. Nie ustawiono żadnej wartości dla platform komputerowych.

Źródło

Określa, które nagłówki zostały użyte do utworzenia UserAgent. W przypadku wskazówek klientów rozróżnia to też te 2 przypadki:

  • 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 jedno pole sklasyfikowane jako wysoka entropia.