การกำหนดเป้าหมาย User Agent

ที่ผ่านมา ส่วนหัว User-Agent เคยรวมอยู่ในคําขอราคาเสนอเพื่อให้ข้อมูลการกําหนดเป้าหมายที่เป็นประโยชน์ เช่น เบราว์เซอร์และแพลตฟอร์มของอุปกรณ์ที่เริ่ม อย่างไรก็ตาม เบราว์เซอร์มักจะปกปิด User Agent ไว้อย่างมากเนื่องจากใช้งานยากและเพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ให้ดียิ่งขึ้น Google จึงรองรับคำแนะนำสำหรับไคลเอ็นต์ของ User Agent ซึ่งจะรวมอยู่ในคำขอราคาเสนอหากมีเพื่อเสริมส่วนหัว User Agent คำแนะนำสำหรับไคลเอ็นต์เหล่านี้ (เรียกสั้นๆ ว่า คำแนะนำสำหรับไคลเอ็นต์) มาจากส่วนหัว Sec-Ch-UA* หรือมาจาก Javascript Client Hints API

ส่วนหัว User-Agent จะแสดงเป็นสตริงในช่อง BidRequest.device.ua

ระบบจะป้อนข้อมูลข้อความ UserAgent ด้วยคำแนะนำสำหรับไคลเอ็นต์หากมี แต่หากไม่มี ก็จะป้อนข้อมูลตามค่าที่แยกวิเคราะห์จากส่วนหัว User-Agent ข้อมูลนี้แสดงในช่อง BidRequest.device.sua

เราขอแนะนําอย่างยิ่งให้ผู้เสนอราคาใช้ข้อความ UserAgent แทนสตริง User-Agent

การสร้าง UserAgent

ข้อความ UserAgent จะแสดงข้อมูล User Agent ที่แบ่งออกเป็นหลายช่องสำหรับข้อมูลเฉพาะ ซึ่งแตกต่างจากส่วนหัว User-Agent

ระบบจะป้อนข้อมูลข้อความ UserAgent ได้ด้วยวิธีต่อไปนี้ ทั้งนี้ขึ้นอยู่กับว่าคำบอกใบ้ไคลเอ็นต์มีอยู่ในคำขอโฆษณาหรือไม่

  • หากคำขอมีคำแนะนำไคลเอ็นต์ที่มีเอนโทรปีต่ำเป็นอย่างน้อย ระบบจะป้อนข้อมูล UserAgent ตามเนื้อหาของคำแนะนำ
  • หากคำขอมีเพียงส่วนหัว User-Agent ระบบจะป้อนข้อมูล UserAgent ตามสิ่งที่แยกวิเคราะห์ได้จากส่วนหัว

ตัวอย่าง: การป้อนข้อมูล UserAgent ตามส่วนหัว User-Agent

สมมติว่าคําขอโฆษณาที่เบราว์เซอร์ส่งส่วนหัวต่อไปนี้

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 ที่สร้างขึ้นโดยอิงตามส่วนหัว User-Agent เพียงอย่างเดียวอาจมีลักษณะดังนี้

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

ตัวอย่าง: การป้อนข้อมูล UserAgent ตาม Client Hints

สมมติว่าคําขอโฆษณาที่เบราว์เซอร์ส่งส่วนหัวต่อไปนี้

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

ในกรณีที่มีคำแนะนำสำหรับไคลเอ็นต์ที่มีเอนโทรปีต่ำเป็นอย่างน้อย ระบบจะป้อนข้อมูล UserAgent ตามเนื้อหาของส่วนหัวเหล่านั้น แม้ว่าจะมีส่วนหัว User-Agent อยู่ก็ตาม ซึ่งจะมีลักษณะดังต่อไปนี้

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

การสร้างข้อมูลตามส่วนหัว User-Agent เทียบกับคำแนะนำสำหรับไคลเอ็นต์

ระบบจะป้อนข้อมูลในบางช่องแตกต่างกันไป ขึ้นอยู่กับว่าช่องนั้นอิงตามส่วนหัว User-Agent หรือ Client Hints ความแตกต่างโดยสรุปมีดังนี้

  • สําหรับเบราว์เซอร์และแพลตฟอร์มที่เหมือนกัน UserAgent.browsers.brand และ UserAgent.platform.brand มักจะแตกต่างกันระหว่าง UserAgent โดยอิงตามส่วนหัว User-Agent หรือ Client Hints ตัวอย่างเช่น UserAgent.platform.brand อาจปรากฏเป็น "Windows NT" หากอิงตามส่วนหัว User-Agent หรือ "Windows" หากอิงตามคำแนะนำสำหรับไคลเอ็นต์
  • รายการ UserAgent.browsers บางรายการมีไว้สำหรับส่วนหัว User-Agent หรือคำแนะนำสำหรับไคลเอ็นต์เท่านั้น ตัวอย่างเช่น "AppleWebKit" จะปรากฏขึ้นหาก UserAgent อิงตามส่วนหัว User-Agent ส่วน "Chromium" จะปรากฏขึ้นก็ต่อเมื่ออิงตาม Client Hints
  • เฉพาะ UserAgent ตามส่วนหัว User-Agent เท่านั้นที่จะมีค่าแบบคงที่ ตัวอย่างเช่น หากแพลตฟอร์มคือ Windows 11 22H2 ระบบจะตั้งค่า UserAgent.platform.brand เป็น "Windows NT" และตั้งค่า UserAgent.platform.version เป็น [“10”, “0”] เนื่องจากเป็นค่าคงที่สำหรับ Windows ทุกเวอร์ชันที่เท่ากับหรือมากกว่า 10

โดยปกติแล้ว ข้อมูลใน UserAgent ที่อิงตามคำแนะนำไคลเอ็นต์จะไม่ใช้แทนข้อมูลที่ถูกระงับหรือปกปิดบางส่วนอย่างไม่ถูกต้อง หากมีความไม่สอดคล้องกันระหว่างส่วนหัว User-Agent กับ UserAgent ตามคำแนะนำสำหรับไคลเอ็นต์ คุณควรใช้ข้อมูลจาก UserAgent

ช่องออบเจ็กต์ User Agent

ส่วนนี้จะสรุปแต่ละช่อง โดยมุ่งเน้นที่ลักษณะการทํางานเฉพาะของ Google RTB และแนวทางปฏิบัติแนะนําสําหรับการใช้งาน

เบราว์เซอร์

มีรายการรายการBrandVersion ที่โดยทั่วไปจะจัดเรียงตามความเฉพาะเจาะจง เช่น หากคุณแสดงรายการเนื้อหาของ browsers brand ของแต่ละรายการอาจปรากฏตามลําดับต่อไปนี้

แบรนด์ Meaning
Mozilla ใช้ได้กับ Mozilla
AppleWebKit อิงตาม AppleWebKit ซึ่งเป็นชุดย่อยของ Mozilla
Chrome เบราว์เซอร์ Chrome ซึ่งเป็นชุดย่อยของเบราว์เซอร์ที่เข้ากันได้กับ AppleWebKit
Safari ตัวแปรเดสก์ท็อป เทียบกับอุปกรณ์เคลื่อนที่

UserAgent จะไม่แสดงเบราว์เซอร์ตามลําดับที่เจาะจงเสมอไป โดยเฉพาะในกรณีที่อิงตาม Client Hints ต่อไปนี้อธิบายความแตกต่างอื่นๆ ที่คุณจะพบโดยอิงตามค่าของ source

  • USER_AGENT: ระบบอาจลดฟิลด์ version เป็นเวอร์ชันหลักหรือตรึงไว้ (ขึ้นอยู่กับนโยบายของตัวแทนแต่ละราย) โปรดทราบว่าจะไม่มีบ่งชี้ว่าค่าถูกตรึง
  • CLIENT_HINTS_LOW_ENTROPY และ CLIENT_HINTS_HIGH_ENTROPY: ระบบไม่จัดเรียงรายการตามเกณฑ์ใดๆ เช่น เบราว์เซอร์เดียวกันอาจส่งรายการเหล่านี้ในลําดับที่แตกต่างกันในแต่ละคําขอ และอาจมีรายการ GREASE ด้วย ซึ่งควรละเว้น
  • CLIENT_HINTS_HIGH_ENTROPY: ระบบอาจตั้งค่าช่อง version ทั้งหมดที่พบในเบราว์เซอร์เป็นเวอร์ชันเต็ม

แพลตฟอร์ม

รายการ BrandVersion ที่อธิบายแพลตฟอร์ม การดำเนินการนี้อาจใช้ไม่ได้กับส่วนหัว User-Agent และ Client Hints ดังนั้นการกำหนดเป้าหมายบางแพลตฟอร์มอาจต้องทดสอบชื่อ 2 ชื่อ ตัวอย่างเช่น ระบบปฏิบัติการ Macintosh ของ Apple แสดงเป็นแบรนด์ว่า "Macintosh" ในส่วนหัว User-Agent แต่แสดงเป็น "macOS" ใน Client Hints ต่อไปนี้อธิบายความแตกต่างอื่นๆ ที่คุณจะพบโดยอิงตามค่าของ source

  • USER_AGENT: ระบบอาจลดฟิลด์ version ให้เป็นเวอร์ชันหลักหรือแช่แข็ง โปรดทราบว่าจะไม่มีตัวบ่งชี้ว่าค่าถูกตรึง
  • CLIENT_HINTS_LOW_ENTROPY: ระบบจะไม่ป้อนข้อมูลในช่อง version
  • CLIENT_HINTS_HIGH_ENTROPY: ระบบอาจตั้งค่าช่อง version เป็นเวอร์ชันเต็ม

อุปกรณ์เคลื่อนที่

ระบุว่าควรเพิ่มประสิทธิภาพเนื้อหา เช่น โฆษณา สำหรับหน้าจอขนาดเล็กและ/หรือการป้อนข้อมูลด้วยการสัมผัสหรือไม่ โปรดทราบว่าข้อมูลนี้ไม่ได้เป็นตัวบ่งชี้ประเภทอุปกรณ์เสมอไป เนื่องจากเบราว์เซอร์บนอุปกรณ์เคลื่อนที่สามารถกําหนดค่าให้ขอ "เว็บไซต์เวอร์ชันเดสก์ท็อป" ได้

สถาปัตยกรรม

ระบุสถาปัตยกรรมของแพลตฟอร์ม เช่น "x86" หรือ "arm"

สําหรับ UserAgent อิงตาม Client Hints โปรดทราบว่าระบบจะป้อนข้อมูลนี้เมื่อตั้งค่า source เป็น CLIENT_HINTS_HIGH_ENTROPY เท่านั้น

จำนวนบิต

ระบุจำนวนบิตของแพลตฟอร์ม เช่น มี CPU แบบ 32 บิตหรือ 64 บิต ฟิลด์นี้เป็นสตริงจำนวนเต็มที่ให้ข้อมูลเพิ่มเติมเกี่ยวกับสถาปัตยกรรม เช่น สถาปัตยกรรม "x86" สามารถตั้งค่าจำนวนบิตเป็น "32" หรือ "64"

สําหรับ UserAgent อิงตาม Client Hints โปรดทราบว่าระบบจะป้อนข้อมูลนี้เมื่อตั้งค่า source เป็น CLIENT_HINTS_HIGH_ENTROPY เท่านั้น

รุ่น

ระบุรุ่นอุปกรณ์ สำหรับอุปกรณ์เคลื่อนที่ ซึ่งไม่ใช่แล็ปท็อปหรือเดสก์ท็อป ระบบจะป้อนข้อมูลชื่อรุ่น เช่น "Pixel 6 Pro"

ต่อไปนี้อธิบายความแตกต่างที่คุณคาดว่าจะเห็นตามค่าของ source

  • USER_AGENT
    • อุปกรณ์ที่ไม่ใช่อุปกรณ์เคลื่อนที่: ช่อง model มักจะมีค่าสถาปัตยกรรมและจำนวนบิตรวมกัน เช่น "x64" สำหรับ Windows ค่านี้ใช้ไม่ได้กับหลายแพลตฟอร์ม เช่น Linux อาจใช้ "x86_64" สำหรับฮาร์ดแวร์เดียวกัน
    • อุปกรณ์เคลื่อนที่: ช่องนี้จะไม่รวมสถาปัตยกรรมและจำนวนบิต หากสนใจค่าเหล่านี้ โปรดดูUserAgent.architectureและ UserAgent.bitness
  • CLIENT_HINTS_LOW_ENTROPY: ระบบจะไม่ป้อนข้อมูลในช่อง model
  • CLIENT_HINTS_HIGH_ENTROPY: ระบบจะป้อนข้อมูลในช่อง model สำหรับรุ่นอุปกรณ์ของอุปกรณ์เคลื่อนที่เท่านั้น ไม่มีการกำหนดค่าสำหรับแพลตฟอร์มเดสก์ท็อป

แหล่งที่มา

ระบุส่วนหัวที่ใช้สร้าง UserAgent สําหรับคำแนะนำไคลเอ็นต์ การดำเนินการนี้จะแยกความแตกต่างระหว่าง 2 กรณีต่อไปนี้ด้วย

  • CLIENT_HINTS_LOW_ENTROPY: ใช้ได้เฉพาะคำแนะนำสำหรับไคลเอ็นต์พื้นฐานเท่านั้น
  • CLIENT_HINTS_HIGH_ENTROPY: มีคำแนะนำสำหรับไคลเอ็นต์ รวมถึงช่องอย่างน้อย 1 ช่องที่จัดประเภทเป็น High Entropy