ทุกคนควรตรวจสอบว่า Protected Audience API ทำงานได้อย่างมีประสิทธิภาพ
- ผู้ที่ท่องเว็บต้องการให้เว็บไซต์โหลดได้อย่างรวดเร็ว ซึ่งหมายความว่านักพัฒนาซอฟต์แวร์ ควรสร้างด้วย Protected Audience API อย่างมีประสิทธิภาพเพื่อไม่ให้ใช้ทรัพยากรแบบจำกัดของอุปกรณ์มากเกินไป เช่น ทรัพยากรการประมวลผลหรือเครือข่าย ซึ่งจำเป็นต่อการโหลด เว็บไซต์และโฆษณาที่ฝังไว้
- ผู้เผยแพร่โฆษณาต้องการให้เว็บไซต์โหลดได้อย่างรวดเร็ว เพื่อให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่มีประสิทธิภาพและตอบสนองได้ดี ผู้เผยแพร่โฆษณายังต้องการโฆษณาที่มีประสิทธิภาพเพื่อเพิ่มรายได้ให้ได้สูงสุดด้วย
- ผู้ลงโฆษณาและเทคโนโลยีโฆษณาต้องการให้โฆษณาแสดงอย่างรวดเร็วเพื่อมอบ ประโยชน์สูงสุด
เอกสารนี้ระบุแนวทางปฏิบัติแนะนำบางส่วนสำหรับการติดตั้งใช้งาน Protected Audience API เพื่อให้มั่นใจว่าเว็บไซต์ของคุณจะทำงานได้อย่างมีประสิทธิภาพสูงสุด
แนวทางปฏิบัติแนะนำสำหรับผู้ซื้อ (ผู้เสนอราคา)
โปรดทําตามแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อให้แน่ใจว่าคุณได้เพิ่มประสิทธิภาพเพื่อประสิทธิภาพการประมูลที่ใช้ Protected Audience API
เจ้าของกลุ่มความสนใจน้อยลง
เพื่อปกป้องผู้เสนอราคา Protected Audience API ในลักษณะเดียวกับที่เบราว์เซอร์ปกป้องต้นทางต่างๆ บนเว็บโดยใช้การแยกเว็บไซต์ เบราว์เซอร์จะใช้ทรัพยากรที่มีค่าใช้จ่ายสูง (เช่น กระบวนการของระบบปฏิบัติการ) เพื่อ ปกป้องเจ้าของกลุ่มความสนใจแต่ละราย
การมีเจ้าของกลุ่มความสนใจจำนวนน้อยที่สุดจึงเป็นสิ่งสำคัญอย่างยิ่งเพื่อลดค่าใช้จ่ายของทรัพยากรที่มีราคาสูงมากเหล่านี้ หลีกเลี่ยงการมีกลุ่มความสนใจที่แตกต่างกันซึ่งเป็นของโดเมนย่อยต่างๆ เช่น หาก adtech.example
มีกลุ่มความสนใจที่ cats.adtech.example และ dogs.adtech.example เป็นเจ้าของ
เบราว์เซอร์น่าจะใช้กระบวนการแยกกัน 2 กระบวนการเพื่อเรียกใช้สคริปต์การเสนอราคา
กลุ่มความสนใจเสนอราคาน้อยลง
เบราว์เซอร์ต้องทำการตั้งค่าและเตรียมการที่สำคัญก่อนที่จะเรียกใช้สคริปต์ generateBid() ของผู้ซื้อ เช่น การตั้งค่าสภาพแวดล้อมการเรียกใช้ JavaScript ใหม่ที่สะอาด รวมถึงการแยกวิเคราะห์และโหลดโค้ด generateBid()
- กลุ่มความสนใจที่แสดงถึงผู้ใช้ซึ่งไม่ใช่เป้าหมายปัจจุบันของแคมเปญโฆษณาที่ใช้งานอยู่ควรมีรายการครีเอทีฟโฆษณาที่ว่างเปล่า ซึ่งจะป้องกันไม่ให้ Protected Audience API เรียกใช้
generateBid()สำหรับกลุ่มความสนใจที่ไม่มีโฆษณาที่เกี่ยวข้อง - การรวมกลุ่มความสนใจที่คล้ายกันจะช่วยลดจำนวนครั้งที่ต้องเรียกใช้
generateBid()userBiddingSignalsของกลุ่มความสนใจสามารถใช้เพื่อจัดเก็บข้อมูลเมตาเพิ่มเติมเกี่ยวกับผู้ใช้ได้ ดังนั้นการมีกลุ่มความสนใจน้อยลงจึงไม่ได้หมายความว่าการกำหนดเป้าหมายจะมีประสิทธิภาพน้อยลง - Protected Audience API รองรับขีดจํากัดที่ผู้ขายระบุเกี่ยวกับจํานวนกลุ่มความสนใจ และ API สําหรับผู้ซื้อในการระบุลําดับความสําคัญสัมพัทธ์ของกลุ่มความสนใจ คุณใช้ขีดจำกัดเหล่านี้เพื่อลดจำนวนสคริปต์การเสนอราคาที่จะเรียกใช้ได้อย่างมาก
กรองกลุ่มความสนใจออกจากการเสนอราคาในบริการคีย์/ค่า
หากผู้ซื้อระบุในเซิร์ฟเวอร์สัญญาณการเสนอราคาที่เชื่อถือได้แบบเรียลไทม์ว่ากลุ่มความสนใจบางกลุ่มไม่ควรเสนอราคา (เช่น แคมเปญถูกปิดใช้ หยุดชั่วคราว หรือใช้งบประมาณหมด หรือไม่ควรเสนอราคาในผู้เผยแพร่โฆษณารายนี้) ผู้ซื้อจะระบุข้อมูลนี้ต่อเบราว์เซอร์ได้ด้วยpriorityVectorการตอบกลับการดึงข้อมูลสัญญาณการเสนอราคาที่เชื่อถือได้ หากผลคูณแบบกระจัดกระจายของ priorityVector และ prioritySignals เป็นค่าลบ เบราว์เซอร์จะไม่เรียกใช้ generateBid() สำหรับกลุ่มความสนใจนี้ คุณอ่านข้อมูลเพิ่มเติมเกี่ยวกับกลไกนี้ได้ในส่วน"การกรองและการจัดลําดับความสําคัญของกลุ่มความสนใจ" ของคำอธิบาย
นำสภาพแวดล้อมการดำเนินการ JavaScript กลับมาใช้ใหม่
ก่อนที่เบราว์เซอร์จะเรียกใช้ generateBid() ได้ เบราว์เซอร์ต้องเริ่มต้นสภาพแวดล้อมการเรียกใช้ JavaScript ใหม่ ซึ่งอาจใช้เวลานานพอสมควร เทียบเท่ากับเวลาที่ generateBid() ขั้นต่ำใช้ในการดำเนินการ คุณประหยัดเวลานี้ได้โดยใช้โหมดการดำเนินการแบบจัดกลุ่มตามต้นทางหรือแบบบริบทที่หยุดชั่วคราว
group-by-originโหมดนี้สามารถนำสภาพแวดล้อมการดำเนินการกลับมาใช้ใหม่ได้ในกรณีที่มีการเข้าร่วมกลุ่มความสนใจในต้นทางเดียวกัน และไม่น่าจะต้องมีการเปลี่ยนแปลงสคริปต์การเสนอราคา ดูข้อมูลเพิ่มเติมได้ที่group-by-originคำอธิบายในคำอธิบาย โหมดบริบทที่หยุดชั่วคราวสามารถนำสภาพแวดล้อมการดำเนินการทั้งหมดกลับมาใช้ใหม่ได้ แต่อาจต้องมีการเปลี่ยนแปลงสคริปต์การเสนอราคา หากต้องการดูข้อมูลเพิ่มเติม โปรดดูfrozen-contextคำอธิบายในคำอธิบาย
นำสคริปต์การเสนอราคากลับมาใช้ซ้ำ
หากเป็นไปได้ ให้ใช้สคริปต์การเสนอราคาเดียวกันสำหรับกลุ่มความสนใจ วิธีนี้ช่วยให้เบราว์เซอร์ไม่ต้องดาวน์โหลด แยกวิเคราะห์ และคอมไพล์สคริปต์หลายรายการ (ซึ่งทำให้เกิดคำขอเครือข่ายเพิ่มเติม) ผู้เสนอราคายังคงแยกความแตกต่างของการเสนอราคาตามข้อมูลกลุ่มความสนใจ (เช่น name หรือ userBiddingSignals) ได้ในขณะที่ใช้สคริปต์เดียวกัน
หากไม่มีส่วนหัวการควบคุมแคช HTTP ระบบจะไม่แคชสคริปต์การเสนอราคา ระบุส่วนหัวที่เหมาะสมเพื่อให้มั่นใจว่าระบบจะไม่ดึงข้อมูลสคริปต์โดยไม่จำเป็น หากมีการประมูลหลายรายการในหน้าเว็บที่ทํางานแบบคู่ขนาน ระบบจะนํากลับมาใช้ซ้ำสคริปต์การเสนอราคาของผู้เสนอราคาเดียวกันหากอยู่ในหน่วยความจำอยู่แล้ว โดยไม่สนใจความหมายของการแคช หากการประมูลทำงานตามลำดับ เบราว์เซอร์จะยึดกลไกการแคช HTTP
โปรดทราบว่าเบราว์เซอร์จะโหลดสคริปต์การเสนอราคาในระหว่างเวลาเสนอราคา (สำหรับ generateBid()) และในระหว่างเวลาการรายงาน (สำหรับ reportWin()) หากไม่ได้ตั้งค่าส่วนหัวการควบคุมแคช เบราว์เซอร์จะดึงข้อมูลสคริปต์เดียวกัน 2 ครั้ง โดยครั้งละ 1 ช่วงเวลา
ดังนั้น เราขอแนะนำให้ตั้งค่าส่วนหัว Cache-Control ในสคริปต์ทั้งหมด
ใช้ซ้ำ trustedBiddingSignalsUrls
เวลาในการตอบสนองของเครือข่ายและการใช้ทรัพยากรอาจมีนัยสำคัญมาก การดึงข้อมูลสัญญาณการเสนอราคาที่เชื่อถือได้แบบเรียลไทม์น้อยลงจะช่วยลดเวลาในการตอบสนองนี้ได้
สามารถรวมการดึงสัญญาณการเสนอราคาที่เชื่อถือได้
เมื่อมีการนำ trustedBiddingSignalsUrl ไปใช้ซ้ำในกลุ่มความสนใจหลายกลุ่ม
ใช้ trustedBiddingSignalsUrl เดียวกันสำหรับกลุ่มความสนใจทั้งหมดเมื่อเป็นไปได้
ระบุส่วนหัวการควบคุมแคช HTTP ที่เหมาะสมเพื่อให้มั่นใจว่าการดึงสัญญาณการเสนอราคาที่เชื่อถือได้จะได้รับการแคชในช่องโฆษณาทั้งหมดในหน้าเว็บหนึ่งๆ หลีกเลี่ยงการตั้งค่า trustedBiddingSignalsSlotSizeMode เป็น slot-size เนื่องจากจะป้องกันการแคชในช่องโฆษณาทั้งหมดเมื่อขนาดของช่องแตกต่างกันเนื่องจาก URL ที่ขอจะแตกต่างกัน
การดึงข้อมูลสัญญาณการเสนอราคาที่เชื่อถือได้แบบเรียลไทม์ขนาดเล็ก
เวลาในการตอบสนองของเครือข่ายอาจมีความสำคัญอย่างมาก และจะได้รับผลกระทบโดยตรงจากปริมาณข้อมูลที่โอนระหว่างการดึงสัญญาณการเสนอราคาแบบเรียลไทม์ที่เชื่อถือได้
ควรจัดเก็บข้อมูลเฉพาะโฆษณาหรือข้อมูลเฉพาะกลุ่มความสนใจไว้ในกลุ่มความสนใจ แทนที่จะจัดเก็บไว้ในบริการสัญญาณการเสนอราคาแบบเรียลไทม์ที่เชื่อถือได้ สงวนข้อมูลสัญญาณการเสนอราคาที่เชื่อถือได้แบบเรียลไทม์ สำหรับสัญญาณแบบเรียลไทม์อย่างแท้จริงเท่านั้น เช่น การจัดสรรงบประมาณแคมเปญหรือการปิดสวิตช์
ระบบควรจัดเก็บสัญญาณที่อัปเดตได้ทุกวันหรือนานกว่านั้นไว้ใน กลุ่มความสนใจและอัปเดตโดยใช้การอัปเดตรายวัน
อย่าแสดงสัญญาณการเสนอราคาที่เชื่อถือได้สำหรับกลุ่มความสนใจที่กรองออกตามที่อธิบายไว้ในส่วน "กรองกลุ่มความสนใจจากการเสนอราคาในบริการคีย์/ค่า"
จัดลำดับความสำคัญของกลุ่มความสนใจ
ผู้ขายจะใช้การหมดเวลาเพื่อจำกัดวิธีใช้ทรัพยากรของเบราว์เซอร์ในหน้าผู้เผยแพร่โฆษณา เมื่อใช้ perBuyerCumulativeTimeouts เพื่อจำกัดระยะเวลาที่ผู้ซื้อต้องดึงสัญญาณการเสนอราคาที่เชื่อถือได้และเรียกใช้สคริปต์การเสนอราคา ผู้ซื้อจะต้องจัดลำดับความสำคัญของกลุ่มความสนใจเพื่อให้กลุ่มที่มีแนวโน้มที่จะชนะการประมูลมากที่สุดดำเนินการก่อน ตัวอย่างเช่น หากตั้งค่า perBuyerCumulativeTimeouts เป็น 100 มิลลิวินาที และการดึงข้อมูลสัญญาณการเสนอราคาที่เชื่อถือได้ของผู้เสนอราคาใช้เวลา 50 มิลลิวินาที และการเรียกใช้ generateBid() แต่ละครั้งใช้เวลา 10 มิลลิวินาที และมีกลุ่มความสนใจ 10 กลุ่มในอุปกรณ์ ผู้เสนอราคาจะมีโอกาสคำนวณราคาเสนอเพียงครึ่งหนึ่งของกลุ่มความสนใจ ผู้ซื้อในตัวอย่างนี้ควรจัดลำดับความสำคัญของกลุ่มความสนใจจากกลุ่มที่มีแนวโน้มที่จะชนะมากที่สุดไปจนถึงน้อยที่สุด
กลุ่มความสนใจอาจมีลำดับความสำคัญแบบคงที่ซึ่งกำหนดด้วยฟิลด์ priority กลุ่มความสนใจยังใช้ลำดับความสำคัญแบบไดนามิกที่คำนวณได้ในบริการสัญญาณการเสนอราคาที่เชื่อถือได้ และส่งคืนไปยังเบราว์เซอร์พร้อมกับคำตอบ priorityVector สำหรับการดึงข้อมูลสัญญาณการเสนอราคาที่เชื่อถือได้
โปรดทราบว่าเมื่อเบราว์เซอร์เรียกใช้กลุ่มความสนใจจากลำดับความสำคัญสูงสุดไปต่ำสุด กลุ่มความสนใจจากต้นทางการเข้าร่วมที่แตกต่างกันอาจแทรกสลับกัน ซึ่งอาจทำให้การเพิ่มประสิทธิภาพ group-by-origin ไม่ได้ผล
แนวทางปฏิบัติแนะนำสำหรับผู้ขาย
ตรวจสอบว่าคุณกำลังตรวจสอบและเพิ่มประสิทธิภาพเพื่อประสิทธิภาพการประมูลที่ใช้ Protected Audience API
ส่งการประมูลพร้อมกัน
การเชื่อมต่อเครือข่ายที่ทันสมัยและโปรเซสเซอร์แบบมัลติคอร์ทำงานได้ดีในการทำกิจกรรมหลายอย่างพร้อมกัน เบราว์เซอร์สามารถดำเนินการประมูลที่ใช้ Protected Audience API ไปพร้อมกับกิจกรรมอื่นๆ ได้ ซึ่งทำได้ดีที่สุดโดยการโทรหา runAdAuction() โดยเร็วที่สุด เนื่องจากทราบว่าอินพุตบางอย่างใน runAdAuction() อาจไม่พร้อมใช้งานตั้งแต่เนิ่นๆ เช่น อินพุตที่ส่งกลับไปยังเบราว์เซอร์ในการตอบกลับตามบริบท เบราว์เซอร์จึงอนุญาตให้เรียกใช้ runAdAution() ก่อนที่อินพุตจะพร้อมใช้งาน และให้ระบุอินพุตเหล่านี้ในภายหลังโดยใช้ JavaScript Promises หากต้องการให้การประมูลมีเวลาในการตอบสนองต่ำที่สุดเท่าที่จะเป็นไปได้ คุณควรเรียกใช้ runAdAuction() เมื่อทราบอินพุต interestGroupBuyers ซึ่งจะช่วยให้การประมูลหลายส่วนเริ่มต้นได้ทันที รวมถึงการดึงสัญญาณการเสนอราคาแบบเรียลไทม์ของผู้เสนอราคา
ตรวจสอบการประมูล
รวบรวมเมตริกเกี่ยวกับการประมูล เบราว์เซอร์สามารถรายงานper-buyerเมตริกเวลาในการตอบสนองต่อผู้ขาย ซึ่งให้ข้อมูลเชิงลึกมากมายเกี่ยวกับระยะเวลาที่ใช้ในการประมูลของผู้ขาย ผู้ขายสามารถใช้เมตริกเหล่านี้เพื่อหาวิธีเพิ่มประสิทธิภาพการประมูล รวมถึงให้ข้อมูลเกี่ยวกับวิธีตั้งค่าการหมดเวลาที่มีประสิทธิภาพมากที่สุด ผู้ขายสามารถแชร์เมตริกเวลาในการตอบสนองของผู้ซื้อที่เฉพาะเจาะจงกับผู้ซื้อเพื่อช่วยให้ผู้ซื้อเพิ่มประสิทธิภาพได้ต่อไป
ผู้เสนอราคาอาจมีข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพการเสนอราคาของกลุ่มความสนใจของตนเอง แต่ก็อาจเปรียบเทียบข้อมูลนี้กับผู้เสนอราคารายอื่นๆ ไม่ได้ การเปรียบเทียบอัตราการชนะสัมพัทธ์และอัตราการปฏิเสธราคาเสนอสำหรับผู้เสนอราคารายต่างๆ อาจช่วยระบุกรณีที่ มีการสิ้นเปลืองทรัพยากรการประมวลผลการเสนอราคาเนื่องจากกลุ่มความสนใจไม่เคย สร้างราคาเสนอที่ใช้ได้จริง หรือการเสนอราคามากเกินไปด้วยครีเอทีฟโฆษณาที่ไม่ได้รับอนุมัติ
ป้องกันสคริปต์ราคาเสนอที่ทำงานช้า
สคริปต์การเสนอราคาที่ใช้เวลานานเกินไปอาจทำให้การประมูล Protected Audience API ช้าลงสำหรับทุกคนที่เกี่ยวข้อง การใช้การหมดเวลาจะช่วยป้องกันการประมูลที่ช้า ในขณะที่ยังคงกู้คืนรายได้ได้เมื่อการประมูลช้า
ผู้ขายควรใช้ perBuyerCumulativeTimeouts เพื่อป้องกันการประมูลที่ช้า และยังคงยอมรับราคาเสนอเมื่อการประมูลช้าและถึงการหมดเวลา การใช้ perBuyerCumulativeTimeouts ดีกว่าการใช้ perBuyerTimeouts และ perBuyerGroupLimits เนื่องจาก perBuyerCumulativeTimeouts ไม่ได้กำหนดจำนวนกลุ่มความสนใจหรือความเร็วของ generateBid() (เช่น กลุ่มความสนใจจำนวนมากที่เสนอราคาอย่างรวดเร็วและกลุ่มความสนใจจำนวนน้อยที่เสนอราคาอย่างช้าๆ สามารถเสนอราคาให้เสร็จก่อนหมดเวลาได้)
การใช้ฟิลด์การกำหนดค่าการประมูล signal เพื่อใช้การหมดเวลาการประมูลโดยรวมยังเป็นวิธีที่ดีในการป้องกันการประมูลที่ยาวนานเกินไปในกรณีที่การดึงสัญญาณการให้คะแนนที่เชื่อถือได้และการดำเนินการ scoreAd() ใช้เวลานานเกินไป
ขั้นตอนถัดไปคือ
เราต้องการพูดคุยกับคุณเพื่อให้แน่ใจว่าเราได้สร้าง API ที่เหมาะสำหรับทุกคน
พูดคุยเกี่ยวกับ API
API นี้จะได้รับการจัดทำเอกสารและอภิปรายต่อสาธารณะเช่นเดียวกับ Privacy Sandbox API อื่นๆ
ทดลองใช้ API
คุณจะทดสอบและเข้าร่วมในการพูดคุยเกี่ยวกับ Protected Audience API ได้