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

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

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

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

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

วิธีการสร้างข้อมูลใน UserAgent

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

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

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

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

ฟิลด์ออบเจ็กต์ UserAgent

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

เบราว์เซอร์

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

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

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

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

แพลตฟอร์ม

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

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

มือถือ

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

สถาปัตยกรรม

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

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

ความแม่นยำ

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

สำหรับ UserAgent ที่อิงตามคำแนะนำไคลเอ็นต์ โปรดทราบว่าระบบจะป้อนข้อมูลนี้ก็ต่อเมื่อตั้งค่า 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 รายการที่จัดเป็น Entropy สูง