Kullanıcı Aracısı hedefleme

User-Agent başlığı, başlangıçta yapılan cihazın tarayıcısı ve platformu gibi yararlı hedefleme verileri sağlamak için geçmişte teklif isteklerine dahil edilmiştir. Ancak tarayıcılar, kullanım zorluğundan dolayı ve kullanıcı gizliliğini daha iyi korumak için kullanıcı aracısını genellikle büyük ölçüde çıkartır. Google buna yanıt olarak, Kullanıcı Aracısı başlığını tamamlamak için mevcut olduğunda teklif isteklerine dahil edilen Kullanıcı Aracısı İstemci İpuçları'nı destekler. Bu İstemci İpuçları, (kısacası) Sec-Ch-UA* başlıklarından veya JavaScript İstemci İpuçları API'sinden elde edilebilir.

Kullanılan protokole bağlı olarak User-Agent başlığı, aşağıdaki dize alanlarından biriyle gösterilir:

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

UserAgent mesajı, kullanılabilir olduğunda İstemci İpuçları ile doldurulur ancak User-Agent başlığından ayrıştırılan değerlere göre doldurulur. Kullanılan protokole bağlı olarak bu, aşağıdaki alanlardan biri olarak gösterilir:

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

Teklif verenlerin, User-Agent dizesi yerine UserAgent mesajını kullanmaları önemle tavsiye edilir.

UserAgent nasıl doldurulur?

User-Agent üstbilgisinin aksine UserAgent mesajı, belirli bilgiler için birden fazla alana ayrılmış kullanıcı aracısı bilgilerini temsil eder.

Reklam isteğinde İstemci İpuçlarının mevcut olup olmadığına bağlı olarak UserAgent mesajı aşağıdaki şekillerde doldurulabilir:

  • İstek en azından düşük entropi İstemci İpuçları içeriyorsa UserAgent, içeriğine göre doldurulur.
  • İstek yalnızca User-Agent üstbilgisini içeriyorsa UserAgent, başlıktan ayrıştırılabilecek öğelere göre doldurulur.

Örnek: UserAgent alanını User-Agent başlığına göre doldurma

Tarayıcının aşağıdaki üstbilgileri gönderdiği bir reklam isteği olduğunu varsayalım:

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

Yalnızca User-Agent başlığına dayalı olarak doldurulan bir UserAgent aşağıdaki gibi görünebilir:

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

Örnek: Müşteri İpuçlarına göre UserAgent alanını doldurma

Tarayıcının aşağıdaki üstbilgileri gönderdiği bir reklam isteği olduğunu varsayalım:

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

En azından düşük entropili İstemci İpuçlarının dahil edildiği durumlarda, User-Agent başlıkları mevcut olsa bile UserAgent, bu başlıkların içeriğine göre doldurulur. Kod şöyle görünür:

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

Kullanıcı Aracısı başlığı ve İstemci İpuçlarına göre doldurma

Bazı alanlar, User-Agent başlığına veya İstemci İpuçlarına dayalı olmasına bağlı olarak farklı şekilde doldurulur. Bu farkların özeti aşağıda verilmiştir:

  • Aynı tarayıcı ve platformlar için UserAgent.browsers.brand ile UserAgent.platform.brand, Kullanıcı Aracısı başlığına veya İstemci İpuçlarına bağlı olarak genellikle UserAgent arasında farklılık gösterir. Örneğin, UserAgent.platform.brand, Kullanıcı Aracısı başlığına dayalıysa "Windows NT" veya İstemci İpuçlarına dayalıysa "Windows" olarak görünebilir.
  • Bazı UserAgent.browsers girişleri, User-Agent başlığına veya İstemci İpuçları'na özeldir. Örneğin, UserAgent Kullanıcı Aracısı başlığına dayalıysa "AppleWebKit" görünürken "Chromium" yalnızca İstemci İpuçlarına dayalıysa görünür.
  • Yalnızca User-Agent başlığına dayalı bir UserAgent dondurulmuş değerler içerebilir. Örneğin, platform Windows 11 22H2 ise UserAgent.platform.brand "Windows NT" olarak ayarlanır. UserAgent.platform.version ise [“10”, “0”] olarak ayarlanır. Çünkü bu, 10 veya üzerindeki herhangi bir Windows sürümü için dondurulmuş değerdir.

UserAgent içerisindeki İstemci İpuçlarına dayalı veriler, normalde dondurulmuş veya çıkartılmış bilgilerin yerine geçerken hatalı olmaz. User-Agent başlığı ile İstemci İpuçları'na göre UserAgent arasında herhangi bir tutarsızlık varsa UserAgent'deki bilgiler tercih edilmelidir.

UserAgent nesne alanları

Bu bölümde, Google GZT'ye özgü davranış ve kullanımla ilgili en iyi uygulamalara odaklanarak her alan özetlenmektedir.

Tarayıcı

Genellikle belirliliğe göre sıralanmış bir BrandVersion girişlerinin listesini içerir. Örneğin, browsers içeriğini listelerseniz her bir giriş için brand aşağıdaki sırayla görünebilir:

Marka Meaning
Mozilla Mozilla uyumlu
AppleWebKit AppleWebKit tabanlı, Mozilla'nın bir alt kümesi.
Chrome Chrome tarayıcı, AppleWebKit uyumlu tarayıcıların bir alt kümesi
Safari Mobil yerine masaüstü varyantı.

UserAgent, tarayıcıları her zaman belirli bir sırada (özellikle de İstemci İpuçları'na dayanıyorsa) listelemez. Aşağıda, source değerine göre görmeyi bekleyebileceğiniz diğer farklılıklar açıklanmaktadır:

  • USER_AGENT: version alanı ana sürüme düşürülebilir veya dondurulabilir (aracıya özel politikaya bağlıdır). Değerin dondurulduğuna dair herhangi bir gösterge bulunmayacağını unutmayın.
  • CLIENT_HINTS_LOW_ENTROPY ve CLIENT_HINTS_HIGH_ENTROPY: Girişler herhangi bir ölçüte göre sıralanmaz; örneğin, aynı tarayıcı her istekte bu girişleri farklı sıralarla gönderebilir. Bunlar, yoksayılması gereken bir GREASE girişi de içerebilir.
  • CLIENT_HINTS_HIGH_ENTROPY: Tarayıcılarda bulunan tüm version alanları tam sürüme ayarlanmış olabilir.

Platform

Platformu açıklayan bir BrandVersion girişi. Bu, User-Agent başlığı ve İstemci İpuçları ile uyumlu olmayabilir. Bu nedenle bazı platformların hedeflenmesi için iki adın test edilmesi gerekebilir. Örneğin, Apple'ın Macintosh işletim sisteminin markası, Kullanıcı Aracısı başlığında "Macintosh", İstemci İpuçlarında ise "macOS" olarak belirtilir. Aşağıda, source değerine göre görmeyi bekleyebileceğiniz diğer farklılıklar açıklanmaktadır:

  • USER_AGENT: version alanı ana sürüme düşürülebilir veya dondurulabilir. Değerin dondurulduğuna dair herhangi bir gösterge olmayacağını unutmayın.
  • CLIENT_HINTS_LOW_ENTROPY: version alanı doldurulmaz.
  • CLIENT_HINTS_HIGH_ENTROPY: version alanı tam sürüme ayarlanabilir.

Mobil

Reklam gibi içeriklerin küçük ekranlar ve/veya dokunmatik giriş için optimize edilmesi gerekip gerekmediğini belirtir. Mobil tarayıcılar bir "masaüstü sitesi" isteğinde bulunacak şekilde yapılandırılabildiğinden, bunun her zaman cihaz türünün bir göstergesi olmadığını unutmayın.

Mimari

Platformun mimarisini "x86" veya "arm" gibi tanımlar.

İstemci İpuçlarına dayalı bir UserAgent için bunun yalnızca source, CLIENT_HINTS_HIGH_ENTROPY olarak ayarlandığında doldurulacağını unutmayın.

Bit değeri

Platformun bit değerini (ör. 32 bit veya 64 bit CPU olup olmadığı) tanımlar. Bu alan, mimarisi hakkında ek bilgiler sağlayan bir tam sayı dizesidir. Örneğin, "x86" mimarisinin bit hızı "32" veya "64" olarak ayarlanabilir.

İstemci İpuçlarına dayalı bir UserAgent için bunun yalnızca source, CLIENT_HINTS_HIGH_ENTROPY olarak ayarlandığında doldurulacağını unutmayın.

Model

Cihaz modelini tanımlar. Bu alan, mobil cihazlar (dizüstü veya masaüstü bilgisayarlar değil) için "Pixel 6 Pro" gibi bir model adıyla doldurulur.

Aşağıda, source değerine göre görmeyi bekleyebileceğiniz farklılıklar açıklanmaktadır:

  • USER_AGENT
    • Mobil olmayan cihazlar: model alanı genellikle birleşik bir mimari ve Windows için "x64" gibi bitlik değeri içerir. Bu değer platformlar arası değildir; örneğin, Linux aynı donanım için "x86_64" kullanabilir.
    • Mobil cihazlar: Bu alan mimari ve bitlik verilerini içermez. Bu değerlerle ilgileniyorsanız UserAgent.architecture ve UserAgent.bitness sayfalarını inceleyin.
  • CLIENT_HINTS_LOW_ENTROPY: model alanı doldurulmaz.
  • CLIENT_HINTS_HIGH_ENTROPY: model alanı yalnızca mobil cihazların cihaz modeli için doldurulur. Masaüstü platformlar için değer ayarlanmadı.

Kaynak

UserAgent oluşturmak için hangi üstbilgilerin kullanıldığını tanımlar. Bu, İstemci İpuçları için aşağıdaki iki durumu da ayırt eder:

  • CLIENT_HINTS_LOW_ENTROPY: Yalnızca temel İstemci İpuçları kullanılabilir.
  • CLIENT_HINTS_HIGH_ENTROPY: Yüksek entropi olarak sınıflandırılmış en az bir alan dahil olmak üzere istemci ipuçları mevcuttur.