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

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

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

  • Google: BidRequest.user_agent
  • OpenRTB: BidRequest.device.ua

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

  • Google: BidRequest.user_agent_data
  • OpenRTB: BidRequest.device.sua

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

วิธีป้อนข้อมูลของ UserAgent

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

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

  • ถ้าคำขอมีคำแนะนำไคลเอ็นต์อย่างน้อย low-entropy ระบบจะป้อนข้อมูล 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 กับคำแนะนำของลูกค้า

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

  • สำหรับเบราว์เซอร์และแพลตฟอร์มที่เหมือนกัน 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

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

เบราว์เซอร์

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

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

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

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

แพลตฟอร์ม

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