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
ileUserAgent.platform.brand
, Kullanıcı Aracısı başlığına veya İstemci İpuçlarına bağlı olarak genellikleUserAgent
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 iseUserAgent.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
veCLIENT_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ümversion
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
veUserAgent.bitness
sayfalarını inceleyin.
- Mobil olmayan cihazlar:
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.