Agen Pengguna sebelumnya telah disertakan dalam permintaan bid untuk memberikan informasi menargetkan data seperti browser dan platform perangkat yang memulai pra-rendering. Namun, {i>browser<i} sering kali menyamarkan {i>User-Agent<i} karena kesulitan penggunaan dan untuk melindungi privasi pengguna dengan lebih baik. Untuk menanggapi hal ini, Google mendukung Petunjuk Klien Agen Pengguna, yang disertakan dalam permintaan bid jika tersedia untuk melengkapi header Agen Pengguna. Petunjuk Klien ini (singkatnya) dapat bersumber dari header Sec-Ch-UA* atau dari JavaScript Client Hints API.
Tergantung pada protokol yang digunakan, {i>header<i} Agen Pengguna diekspos dengan salah satu kolom string berikut:
- OpenRTB:
BidRequest.device.ua
- Google RTB (Tidak digunakan lagi):
BidRequest.user_agent
Pesan UserAgent
akan diisi dengan Petunjuk Klien saat tersedia
tersedia, namun akan diisi berdasarkan nilai yang diuraikan dari
Header Agen Pengguna. Tergantung pada protokol yang digunakan, data ini akan diekspos sebagai satu
kolom berikut:
- OpenRTB:
BidRequest.device.sua
- Google RTB (Tidak digunakan lagi):
BidRequest.user_agent_data
Bidder sangat dianjurkan untuk menggunakan pesan UserAgent
, bukan
String Agen Pengguna.
Cara UserAgent
diisi
Tidak seperti header Agen Pengguna, pesan UserAgent
mewakili agen pengguna
informasi yang dipecah menjadi beberapa {i>field<i}
untuk informasi tertentu.
Bergantung pada apakah Petunjuk Klien tersedia di permintaan iklan atau tidak,
Pesan UserAgent
dapat diisi dengan cara berikut:
- Jika permintaan berisi setidaknya
entropi rendah
Petunjuk Klien,
UserAgent
diisi berdasarkan kontennya. - Jika permintaan hanya berisi header Agen Pengguna,
UserAgent
adalah diisi berdasarkan apa yang bisa diurai dari header.
Contoh: Mengisi UserAgent
berdasarkan header Agen Pengguna
Misalkan ada permintaan iklan saat browser mengirimkan header berikut:
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
UserAgent
yang diisi hanya berdasarkan header Agen Pengguna mungkin terlihat seperti
hal berikut:
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
Contoh: Mengisi UserAgent
berdasarkan Petunjuk Klien
Misalkan ada permintaan iklan saat browser mengirimkan header berikut:
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
Jika menyertakan setidaknya Petunjuk Klien dengan entropi rendah, UserAgent
akan diisi berdasarkan konten header tersebut meskipun jika Agen Pengguna
header. Kode tersebut akan terlihat seperti berikut:
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
Mengisi berdasarkan header Agen Pengguna versus Petunjuk Klien
Beberapa kolom diisi secara berbeda, bergantung pada apakah kolom tersebut didasarkan pada {i>header<i} Agen Pengguna atau Petunjuk Klien. Berikut ringkasan dari perbedaan:
- Untuk browser dan platform yang identik,
UserAgent.browsers.brand
danUserAgent.platform.brand
akan sering kali berbeda di antaraUserAgent
berdasarkan {i>header<i} Agen Pengguna atau Petunjuk Klien. Misalnya,UserAgent.platform.brand
mungkin muncul sebagai “Windows NT” jika didasarkan pada {i>header<i} Agen Pengguna, atau "Windows" jika didasarkan pada Petunjuk Klien. - Beberapa entri
UserAgent.browsers
bersifat unik untuk header Agen Pengguna atau ke Petunjuk Klien. Misalnya, “AppleWebKit” akan muncul jikaUserAgent
didasarkan pada header Agen Pengguna, sedangkan "Chromium" hanya akan muncul jika didasarkan pada Petunjuk Klien. - Hanya
UserAgent
yang didasarkan pada header Agen Pengguna yang dapat berisi nilai yang dibekukan. Misalnya, jika platformnya adalah Windows 11 22H2,UserAgent.platform.brand
akan ditetapkan ke “Windows NT” danUserAgent.platform.version
akan ditetapkan ke[“10”, “0”]
karena nilai beku untuk semua versi Windows dengan versi 10 atau yang lebih tinggi.
Data di UserAgent
yang didasarkan pada Petunjuk Klien biasanya tidak akan berupa
penggantian yang tidak akurat untuk informasi
yang dibekukan atau disamarkan. Jika ada
inkonsistensi antara header Agen Pengguna dan UserAgent
berdasarkan Klien
Petunjuk, informasi dari UserAgent
harus lebih diutamakan.
Kolom objek UserAgent
Bagian ini merangkum setiap kolom, dengan fokus pada Google RTB perilaku dan praktik terbaik untuk penggunaan.
Browser
Berisi daftar
BrandVersion
entri yang umumnya diurutkan berdasarkan kekhususan, misalnya, jika Anda ingin
menampilkan daftar isi browsers
, brand
untuk setiap entri mungkin akan muncul
dalam urutan berikut:
Merek | Meaning |
Mozilla | Kompatibel dengan Mozilla |
AppleWebKit | Berbasis AppleWebKit, bagian dari Mozilla. |
Chrome | Browser Chrome, bagian dari browser yang kompatibel dengan AppleWebKit |
Safari | Varian desktop, bukan seluler. |
UserAgent
tidak selalu mencantumkan browser dalam urutan tertentu, terutama
jika didasarkan pada Petunjuk Klien. Hal berikut menjelaskan perbedaan lainnya
yang akan Anda lihat berdasarkan nilai source
:
USER_AGENT
: Kolomversion
dapat dikurangi menjadi versi utama atau dibekukan (bergantung pada kebijakan khusus agen). Perhatikan bahwa tidak akan ada indikasi bahwa nilai dibekukan.CLIENT_HINTS_LOW_ENTROPY
danCLIENT_HINTS_HIGH_ENTROPY
: Entri tidak diurutkan berdasarkan kriteria apa pun; misalnya, browser yang sama mungkin mengirim entri dalam pesanan yang berbeda di setiap permintaan. Aset tersebut juga dapat berisi Entri GREASE, yang sebaiknya diabaikan.CLIENT_HINTS_HIGH_ENTROPY
: Semua kolomversion
yang ditemukan di browser mungkin ke versi lengkap.
Platform
BrandVersion
yang menjelaskan platform. Ini mungkin tidak kompatibel di seluruh Agen Pengguna
header dan Petunjuk Klien, sehingga penargetan beberapa platform mungkin memerlukan pengujian
dua nama. Misalnya, sistem operasi Macintosh
Apple diberi merek sebagai
"Macintosh" di header User-Agent, tetapi "macOS" di Client Hints.
Berikut ini penjelasan mengenai perbedaan lain yang mungkin akan Anda lihat berdasarkan
nilai source
:
USER_AGENT
: Kolomversion
dapat dikurangi menjadi versi utama atau dibekukan. Perhatikan bahwa tidak akan ada indikasi bahwa nilai dibekukan.CLIENT_HINTS_LOW_ENTROPY
: Kolomversion
tidak akan diisi.CLIENT_HINTS_HIGH_ENTROPY
: Kolomversion
dapat disetel ke penuh .
Seluler
Menunjukkan apakah konten seperti iklan harus dioptimalkan untuk layar kecil dan/atau input sentuh. Perhatikan bahwa ini belum tentu merupakan indikator jenis perangkat, karena browser seluler dapat dikonfigurasi untuk meminta “situs desktop”.
Arsitektur
Mengidentifikasi arsitektur platform seperti “x86” atau “arm”.
Untuk UserAgent
berdasarkan Petunjuk Klien, perhatikan bahwa ini hanya akan diisi
jika source
ditetapkan ke CLIENT_HINTS_HIGH_ENTROPY
.
Bit
Mengidentifikasi bitness platform, seperti apakah platform memiliki 32-bit atau 64-bit dengan CPU Bidang ini adalah string bilangan bulat yang memberikan informasi tambahan tentang arsitekturnya; misalnya, arsitektur “x86” dapat memiliki bitness yang disetel ke “32” atau “64”.
Untuk UserAgent
berdasarkan Petunjuk Klien, perhatikan bahwa ini hanya akan diisi
jika source
ditetapkan ke CLIENT_HINTS_HIGH_ENTROPY
.
Model
Mengidentifikasi model perangkat. Untuk perangkat seluler, bukan laptop atau desktop–ini akan diisi dengan nama model seperti “Pixel 6 Pro”.
Hal berikut ini menjelaskan perbedaan yang akan Anda lihat berdasarkan
nilai source
:
USER_AGENT
- Perangkat non-seluler: Bidang
model
sering kali berisi informasi gabungan seperti “x64” untuk Windows. Nilai ini adalah tidak lintas platform; misalnya, Linux mungkin menggunakan "x86_64" untuk perangkat keras. - Perangkat seluler: Kolom ini tidak akan mencakup arsitektur dan bit.
Jika Anda tertarik dengan nilai ini, lihat
UserAgent.architecture
danUserAgent.bitness
.
- Perangkat non-seluler: Bidang
CLIENT_HINTS_LOW_ENTROPY
: Kolommodel
tidak akan diisi.CLIENT_HINTS_HIGH_ENTROPY
: Kolommodel
hanya akan diisi untuk model perangkat dari perangkat seluler. Tidak ada nilai yang ditetapkan untuk platform desktop.
Sumber
Mengidentifikasi header mana yang digunakan untuk membuat UserAgent
. Untuk Petunjuk Klien,
ini juga membedakan antara dua kasus berikut:
CLIENT_HINTS_LOW_ENTROPY
: Hanya Petunjuk Klien dasar yang tersedia.CLIENT_HINTS_HIGH_ENTROPY
: Petunjuk Klien tersedia, termasuk setidaknya satu isian diklasifikasikan sebagai entropi tinggi.