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.brandveUserAgent.platform.brand, genellikle kullanıcı aracısı başlığına veya istemci ipuçlarına dayalı birUserAgentarasında farklılık gösterir. Örneğin, Kullanıcı Aracısı başlığına göre belirlenirseUserAgent.platform.brand"Windows NT", İstemci İpuçları'na göre belirlenirse "Windows" olarak görünebilir. - Bazı
UserAgent.browsersgirişleri, Kullanıcı Aracısı üstbilgisine veya İstemci İpuçları'na özgüdür. Örneğin,UserAgentkullanı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
UserAgentdondurulmuş değerler içerebilir. Örneğin, platform Windows 11 22H2 iseUserAgent.platform.brand"Windows NT" olarak,UserAgent.platform.versionise[“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:versionalanı 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_ENTROPYveCLIENT_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ümversionalanları 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:versionalanı, ana sürüme indirgenebilir veya dondurulabilir. Değerin dondurulduğuna dair bir gösterge olmayacağını unutmayın.CLIENT_HINTS_LOW_ENTROPY:versionalanı doldurulmaz.CLIENT_HINTS_HIGH_ENTROPY:versionalanı 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:
modelalanı 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.architectureveUserAgent.bitnessbaşlıklı makalelere göz atın.
- Mobil olmayan cihazlar:
CLIENT_HINTS_LOW_ENTROPY:modelalanı doldurulmaz.CLIENT_HINTS_HIGH_ENTROPY:modelalanı 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.