ก่อนหน้านี้ส่วนหัว 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 ช่องที่จัดอยู่ในประเภทเอนโทรปีสูง