Penargetan Agen Pengguna

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 dan UserAgent.platform.brand akan sering kali berbeda di antara UserAgent 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 jika UserAgent 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” dan UserAgent.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: Kolom version 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 dan CLIENT_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 kolom version 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: Kolom version dapat dikurangi menjadi versi utama atau dibekukan. Perhatikan bahwa tidak akan ada indikasi bahwa nilai dibekukan.
  • CLIENT_HINTS_LOW_ENTROPY: Kolom version tidak akan diisi.
  • CLIENT_HINTS_HIGH_ENTROPY: Kolom version 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 dan UserAgent.bitness.
  • CLIENT_HINTS_LOW_ENTROPY: Kolom model tidak akan diisi.
  • CLIENT_HINTS_HIGH_ENTROPY: Kolom model 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.