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

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

ส่วนหัวของ User-Agent จะแสดงด้วยหนึ่งในส่วนหัว ฟิลด์สตริงต่อไปนี้:

  • OpenRTB: BidRequest.device.ua
  • Google RTB (เลิกใช้งานแล้ว): BidRequest.user_agent

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

  • OpenRTB: BidRequest.device.sua
  • Google RTB (เลิกใช้งานแล้ว): BidRequest.user_agent_data

ผู้เสนอราคาควรใช้ข้อความ 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 ตามคำแนะนำของไคลเอ็นต์

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

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 เทียบกับ Client Hint

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

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

ช่องออบเจ็กต์ UserAgent

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

เบราว์เซอร์

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

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

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

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

แพลตฟอร์ม

BrandVersion ซึ่งอธิบายเกี่ยวกับแพลตฟอร์มนี้ วิธีนี้อาจใช้ไม่ได้กับ User-Agent และ Client Hints ดังนั้นการกำหนดเป้าหมายบางแพลตฟอร์มอาจต้องมีการทดสอบ สองชื่อ ตัวอย่างเช่น ระบบปฏิบัติการ 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 ตามคำแนะนำของไคลเอ็นต์ โปรดทราบว่าระบบจะป้อนข้อมูลนี้เท่านั้น เมื่อตั้งค่า source เป็น CLIENT_HINTS_HIGH_ENTROPY

ความไม่สมบูรณ์

ระบุบิตเรตของแพลตฟอร์ม เช่น เป็นบิต 32 บิตหรือ 64 บิต CPU ช่องนี้คือสตริงจำนวนเต็มที่ให้ข้อมูลเพิ่มเติมเกี่ยวกับ สถาปัตยกรรมขององค์กร ตัวอย่างเช่น สถาปัตยกรรม "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: มีคำแนะนำไคลเอ็นต์ ซึ่งรวมถึง หนึ่งฟิลด์ที่จัดเป็นเอนโทรปีสูง