Kullanıcı Aracısı hedefleme

User-Agent başlığı, teklif isteklerine geçmişte başlatıcı cihazın tarayıcısı ve platformu gibi faydalı hedefleme verileri sağlamak için dahil edilmiştir. Ancak tarayıcılar, kullanım zorluğu ve kullanıcı gizliliğini daha iyi korumak için genellikle User-Agent'ı yoğun bir şekilde sansürler. Buna karşılık Google, Kullanıcı Aracısı başlığını tamamlamak için kullanılabilir olduğunda teklif isteklerine dahil edilen Kullanıcı Aracısı İstemci İpuçları'nı destekler. Bu istemci ipuçları (kısaca) Sec-Ch-UA* üstbilgilerinden veya JavaScript istemci ipuçları API'sinden alınabilir.

Kullanıcı aracısı üstbilgisi, BidRequest.device.ua alanında dize olarak gösterilir.

Bir UserAgent ileti, istemci ipuçları kullanılabildiğinde bu ipuçlarıyla doldurulur. Aksi takdirde, Kullanıcı Aracısı üstbilgisinden ayrıştırılan değerlere göre doldurulur. Bu, BidRequest.device.sua alanında gösterilir.

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

UserAgent nasıl doldurulur?

Kullanıcı aracısı üstbilgisinden farklı olarak, UserAgent mesajı, kullanıcı aracısı bilgilerini belirli bilgiler için birden fazla alana ayrılmış şekilde gösterir.

İstemci ipuçlarının reklam isteğinde kullanılabilir olup olmamasına bağlı olarak UserAgent mesajı aşağıdaki şekillerde doldurulabilir:

  • İstek en az bir düşük entropili istemci ipucu içeriyorsa UserAgent, içeriklerine göre doldurulur.
  • İstek yalnızca User-Agent başlığını içeriyorsa UserAgent, başlıktan ayrıştırılabilen bilgilere göre doldurulur.

Örnek: Kullanıcı aracısı başlığına göre UserAgent değerini doldurma

Tarayıcının aşağıdaki başlıkları 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 göre doldurulmuş 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: UserAgent alanını istemci ipuçlarına göre doldurma

Tarayıcının aşağıdaki başlıkları 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 düşük entropili İstemci İpuçları'nın dahil edildiği durumlarda, Kullanıcı Aracısı üstbilgileri mevcut olsa bile UserAgent bu üstbilgilerin içeriklerine göre doldurulur. Bu durumda aşağıdaki gibi bir görünüm elde edilir:

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ığına göre doldurma ve istemci ipuçlarına göre doldurma

Bazı alanlar, Kullanıcı Aracısı üstbilgisine veya İstemci İpuçları'na dayalı olup olmamasına bağlı olarak farklı şekilde doldurulur. Bu farkların özeti aşağıda verilmiştir:

  • Aynı tarayıcılar ve platformlar için UserAgent.browsers.brand ve UserAgent.platform.brand, genellikle kullanıcı aracısı başlığına veya istemci ipuçlarına dayalı bir UserAgent arasında farklılık gösterir. Örneğin, Kullanıcı Aracısı başlığına göre belirlenirse UserAgent.platform.brand "Windows NT", İstemci İpuçları'na göre belirlenirse "Windows" olarak görünebilir.
  • Bazı UserAgent.browsers girişleri, Kullanıcı Aracısı üstbilgisine veya İstemci İpuçları'na özgüdür. Örneğin, UserAgent kullanıcı aracısı üstbilgisine göre belirleniyorsa "AppleWebKit", yalnızca istemci ipuçlarına göre belirleniyorsa "Chromium" 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, UserAgent.platform.version ise [“10”, “0”] olarak ayarlanır. Bunun nedeni, 10 veya üzeri Windows sürümlerinde bu değerin sabit olmasıdır.

İstemci ipuçlarına dayalı olan UserAgent içindeki veriler, normalde dondurulmuş veya çıkarılmış bilgilerin yerine yanlış bir şekilde kullanılmaz. Kullanıcı aracısı üstbilgisi ile istemci ipuçlarına dayalı bir UserAgent arasında tutarsızlık varsa UserAgent'daki bilgiler tercih edilmelidir.

UserAgent nesne alanları

Bu bölümde, Google RTB'ye özgü davranış ve kullanım için en iyi uygulamalara odaklanarak her alan özetlenmektedir.

Tarayıcılar

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

Marka Anlamı
Mozilla Mozilla ile uyumlu
AppleWebKit Mozilla'nın bir alt kümesi olan AppleWebKit tabanlıdır.
Chrome Chrome Tarayıcı, AppleWebKit uyumlu tarayıcıların bir alt kümesi
Safari Mobil cihazların aksine masaüstü varyantı.

UserAgent, özellikle İstemci İpuçları'na dayalıysa tarayıcıları her zaman belirli bir sırada listelemez. Aşağıda, source değerine bağlı olarak görebileceğiniz diğer farklılıklar açıklanmaktadır:

  • USER_AGENT: version alanı ana sürüme indirilebilir veya dondurulabilir (aracıya özel politikaya bağlıdır). Değerin dondurulduğuna dair bir gösterge olmayacağı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ı bu girişleri her istekte farklı sıralarda gönderebilir. Bu dosyalar, yok sayılması gereken bir GREASE girişi de içerebilir.
  • CLIENT_HINTS_HIGH_ENTROPY: Tarayıcılarda bulunan tüm version alanları tam sürümlere ayarlanabilir.

Platform

Platformu açıklayan bir BrandVersion girişi. Bu, kullanıcı aracısı üstbilgisi ve istemci ipuçlarıyla uyumlu olmayabilir. Bu nedenle, bazı platformların hedeflenmesi için iki adın test edilmesi gerekebilir. Örneğin, Apple'ın Macintosh işletim sistemi, kullanıcı aracısı üstbilgisinde "Macintosh" olarak, istemci ipuçlarında ise "macOS" olarak markalanır. Aşağıda, source değerine bağlı olarak görebileceğiniz diğer farklılıklar açıklanmaktadır:

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

Mobil

Reklamlar gibi içeriklerin küçük ekranlar ve/veya dokunma girişi için optimize edilip edilmeyeceğini belirtir. Mobil tarayıcılar "masaüstü sitesi" isteyecek şekilde yapılandırılabilir. Bu nedenle, bu durumun cihaz türünü gösteren bir işaret olmadığını unutmayın.

Mimari

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

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

Bitness

Platformun bit sayısını (ör. 32 bit veya 64 bit CPU'ya sahip olup olmadığını) tanımlar. Bu alan, mimarisi hakkında ek bilgi sağlayan bir tam sayı dizesidir. Örneğin, "x86" mimarisinin bit sayısı "32" veya "64" olarak ayarlanabilir.

İstemci ipuç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. Dizüstü veya masaüstü bilgisayarlar dışındaki mobil cihazlar için bu alan "Pixel 6 Pro" gibi bir model adıyla doldurulur.

Aşağıda, source değerine bağlı olarak görebileceğiniz farklılıklar açıklanmaktadır:

  • USER_AGENT
    • Mobil olmayan cihazlar: model alanı genellikle Windows için "x64" gibi birleşik bir mimari ve bit sayısı 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 alana mimari ve bit sayısı dahil edilmez. Bu değerlerle ilgileniyorsanız UserAgent.architecture ve UserAgent.bitness başlıklı makalelere göz atın.
  • 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 ayarlanmamıştır.

Kaynak

UserAgent oluşturmak için hangi başlıkların kullanıldığını tanımlar. İstemci ipuçları için bu, aşağıdaki iki durumu da ayırt eder:

  • CLIENT_HINTS_LOW_ENTROPY: Yalnızca temel istemci ipuçları kullanılabilir.
  • CLIENT_HINTS_HIGH_ENTROPY: En az bir alan yüksek entropi olarak sınıflandırılmış olmak üzere istemci ipuçları kullanılabilir.