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 22H2UserAgent.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
: มีคำแนะนำไคลเอ็นต์ ซึ่งรวมถึง หนึ่งฟิลด์ที่จัดเป็นเอนโทรปีสูง