ดูสถาปัตยกรรมการประมูลของบริการเสนอราคาและประมูล
ภาพรวม
บริการเสนอราคาและประมูล (Bidding and Auction หรือ B&A) มีชุดบริการสำหรับผู้ซื้อและผู้ขายโฆษณาที่ทำงานในสภาพแวดล้อมการดำเนินการที่เชื่อถือได้ (TEE) เพื่ออำนวยความสะดวกในการประมูล Protected Audience (PA) หน้านี้อธิบายการกำหนดค่าการประมูลต่างๆ ที่ใช้ B&A ในการประมูล PA ได้
คำจำกัดความ
| คำศัพท์ | คำอธิบาย |
|---|---|
| การประมูลที่ใช้ Protected Audience API | การประมูลเพื่อแสดงโฆษณาที่เกี่ยวข้องกับข้อมูลข้ามเว็บไซต์ |
| การประมูลตามบริบท | การประมูลโฆษณาที่ไม่เกี่ยวข้องกับข้อมูลข้ามเว็บไซต์ การประมูลนี้เป็นไปตามเส้นทางการประมูลการเสนอราคาแบบเรียลไทม์ (RTB) ที่มีอยู่ |
| คำขอการประมูลแบบรวม | คำขอที่ส่งโดยโค้ด JavaScript ของผู้ขายจากเบราว์เซอร์ซึ่งมีเพย์โหลดสำหรับการประมูลที่ใช้ Protected Audience API และการประมูลตามบริบท |
| บริการโฆษณาของผู้ขาย (SAS) | บริการที่มีหน้าที่จัดการคำขอการประมูลแบบรวมจากเบราว์เซอร์ ซึ่งอาจเป็นเซิร์ฟเวอร์โฆษณา RTB ที่ผู้ขายมีอยู่ SAS มีหน้าที่ประสานงานทั้งการประมูลตามบริบทและการประมูล Protected Audience |
| บริการโฆษณาสำหรับผู้ซื้อ | บริการที่มีหน้าที่ส่งราคาเสนอในการประมูลตามบริบท ซึ่งอาจเป็นเซิร์ฟเวอร์โฆษณา ORTB ที่มีอยู่ของผู้ซื้อ |
บริการสำหรับผู้ซื้อและผู้ขาย
บริการ B&A ประกอบด้วยบริการ 4 อย่างสำหรับผู้ซื้อและผู้ขาย ดังนี้
- สำหรับผู้ซื้อ Bidding Service และ Buyer Front-End (BFE) Service พร้อมให้ใช้งานแล้ว
- สำหรับผู้ขาย Auction Service และ Seller Front-End (SFE) Service พร้อมให้ใช้งานแล้ว
| ผู้เข้าร่วม | บริการ | คำอธิบาย |
|---|---|---|
| ผู้ซื้อ | บริการส่วนหน้าของผู้ซื้อ (BFE) | บริการจะจัดการGetBidsคำขอจาก SFE ของผู้ขาย โดยมีหน้าที่ถอดรหัสเพย์โหลด ดึงข้อมูลสัญญาณ K/V และเรียกใช้ GenerateBids ของบริการเสนอราคา |
| บริการเสนอราคา | บริการจะจัดการคำขอ GenerateBids จาก BFE โดยมีหน้าที่เรียกใช้ตรรกะการเสนอราคาของผู้ซื้อและสร้างราคาเสนอ |
|
| ผู้ขาย | บริการส่วนหน้าของผู้ขาย (SFE) | บริการจะจัดการSelectAdคำขอจากบริการโฆษณาของผู้ขาย โดยมีหน้าที่ถอดรหัสเพย์โหลด เรียกใช้การดำเนินการ GetBids ของ BFE ดึงข้อมูลสัญญาณ K/V เรียกใช้การดำเนินการ ScoreAd ของ Auction Service จากนั้นส่งผลการประมูล B&A ที่เข้ารหัสกลับไปยัง SAS
เมื่อบริการเป็นส่วนหนึ่งของกลุ่มผลิตภัณฑ์ของผู้ขายระดับบนสุดในการประมูลแบบหลายผู้ขายที่จัดสรรโดยเซิร์ฟเวอร์ บริการจะจัดการคำขอ |
| บริการประมูล | บริการจะจัดการคำขอ ScoreAd จาก SFE โดยมีหน้าที่เรียกใช้ตรรกะการให้คะแนนของผู้ขาย และให้คะแนนความน่าสนใจของราคาเสนอ |
สถาปัตยกรรมของการประมูล PA B&A สำหรับเว็บ
แผนภาพต่อไปนี้อธิบายการประมูล Protected Audience ขั้นพื้นฐานด้วยบริการ B&A ที่มีผู้ขายรายเดียวและผู้ซื้อรายเดียว กล่องสีแดงหนาทึบแสดงถึงบริการที่ทำงานใน TEE
- โค้ด JavaScript ของ SSP ในหน้าผู้เผยแพร่โฆษณาจะสร้างข้อมูลการประมูลโฆษณา B&A ที่เข้ารหัสโดยการเรียกใช้
navigator.getInterestGroupAdAuctionData()- เพย์โหลดที่เข้ารหัสนี้มีข้อมูลของผู้ซื้อและจะถอดรหัสได้ภายใน SFE ใน TEE เท่านั้น
- โค้ด JavaScript ของ SSP จะส่งคำขอการประมูลแบบรวมไปยังบริการโฆษณาของผู้ขาย
- คำขอการประมูลแบบรวมจะมีทั้งเพย์โหลดการประมูลตามบริบท ORTB แบบข้อความธรรมดาและเพย์โหลดการประมูล B&A ที่เข้ารหัส
- บริการโฆษณาของผู้ขายคือเซิร์ฟเวอร์โฆษณาที่มีอยู่และไม่ได้ทํางานใน TEE
- บริการโฆษณาของผู้ขายจะเรียกใช้บริการ RTB ของ DSP เพื่อขอราคาเสนอในการประมูลตามบริบทและสัญญาณของผู้ซื้อที่จะส่งไปยังการประมูล PA ในภายหลัง
- ขั้นตอนนี้อาจเป็นจุดที่ผู้ซื้อส่งสัญญาณความตั้งใจที่จะเข้าร่วมการประมูล PA
- หลังจากที่การประมูลตามบริบทเสร็จสมบูรณ์แล้ว SAS จะส่งคำขอ
SelectAdไปยังบริการ SFE- ระบบจะเพิ่มราคาเสนอที่ชนะการประมูลตามบริบทและสัญญาณของผู้ซื้อไปยังเพย์โหลดคำขอ
SelectAd
- ระบบจะเพิ่มราคาเสนอที่ชนะการประมูลตามบริบทและสัญญาณของผู้ซื้อไปยังเพย์โหลดคำขอ
- บริการ SFE ของ SSP จะเรียกใช้บริการ BFE ของ DSP ด้วยคำขอ
GetBids - BFE ของ DSP จะเรียกใช้บริการเสนอราคาด้วยคำขอ
GenerateBids - เมื่อ SFE ได้รับราคาเสนอแล้ว ระบบจะเรียกใช้
ScoreAdไปยังบริการประมูล- ระบบจะส่งราคาเสนอที่มีคะแนนความน่าสนใจสูงสุดไปยัง SAS แล้วส่งต่อให้โค้ด JavaScript ในหน้าเว็บ
- การประมูลจะเสร็จสิ้นในเบราว์เซอร์โดยการส่งผลการประมูล B&A ที่เข้ารหัสไปยังการเรียกใช้
navigator.runAdAuction()
การกำหนดค่าการประมูล
การประมูล Protected Audience ที่มีบริการ B&A สามารถกำหนดค่าได้ด้วยวิธีต่อไปนี้
- การประมูลของผู้ขายรายเดียวที่มีผู้ซื้อ B&A
- การประมูลแบบผสมที่มีผู้ซื้อบนอุปกรณ์และผู้ซื้อ B&A
- การประมูลแบบผู้ขายหลายรายที่สามารถจัดการโดยอุปกรณ์หรือเซิร์ฟเวอร์
ผู้เข้าร่วม
ในคู่มือนี้ เราจะใช้ผู้เข้าร่วมต่อไปนี้เพื่ออธิบายการกำหนดค่าการประมูลแต่ละรายการ
| ผู้เข้าร่วม | คำอธิบาย |
|---|---|
DSP-A |
ผู้ซื้อในอุปกรณ์ |
DSP-B |
ผู้ซื้อในอุปกรณ์ |
DSP-X |
ผู้ซื้อ B&A |
DSP-Y |
ผู้ซื้อ B&A |
SSP-TOP |
ผู้ขายระดับสูงสุด |
SSP-OD |
ผู้ขายที่ใช้เฉพาะในอุปกรณ์ |
SSP-BA |
ผู้ขายที่ใช้ B&A เท่านั้น |
SSP-MIX |
ผู้ขายแบบผสม |
DSP มี 4 รายการดังนี้
DSP-AและDSP-Bจะเข้าร่วมเฉพาะการประมูลในอุปกรณ์เท่านั้นDSP-XและDSP-Yเข้าร่วมทั้งการประมูลบนอุปกรณ์และการประมูล B&A
มี SSP 4 ราย และผู้ขายแต่ละรายใช้การกำหนดค่าการประมูลที่แตกต่างกัน ดังนี้
SSP-ODจะจัดการประมูลในอุปกรณ์เท่านั้นSSP-BAเรียกใช้การประมูล B&A เท่านั้นSSP-MIXเรียกใช้การประมูลแบบผสมSSP-TOPดําเนินการประมูลผู้ขายหลายรายSSP-OD/BA/MIXเข้าร่วมเป็นผู้ขายคอมโพเนนต์ของการประมูลแบบผู้ขายหลายรายของSSP-TOP
การประมูล B&A ของผู้ขายรายเดียว
ในการตั้งค่าผู้ขายรายเดียว ผู้ขาย 1 รายจะจัดการประมูลที่ผู้ซื้อหลายรายเข้าร่วม หากผู้ขายทำการประมูล B&A ผู้ซื้อต้องใช้กลุ่มเทคโนโลยีของผู้ซื้อของบริการ B&A เพื่อส่งราคาเสนอในการประมูล ผู้ซื้อและผู้ขายไม่จำเป็นต้องใช้ผู้ให้บริการระบบคลาวด์รายเดียวกัน
ในการตั้งค่าก่อนหน้านี้ SSP-BA จะเรียกใช้การประมูล B&A ที่ DSP-X และ DSP-Y เข้าร่วมโดยใช้กลุ่มผู้ซื้อของบริการ B&A บริการโฆษณาของผู้ขายจะเรียกใช้การประมูลตามบริบทก่อนสำหรับ DSP-X และ DSP-Y จากนั้นจะเรียกใช้การประมูล Protected Audience โดยส่งคำขอ SelectAd ไปยังบริการ SFE ของผู้ขาย ระบบจะส่งราคาเสนอที่ชนะในการประมูลตามบริบทและสัญญาณสําหรับผู้ซื้อแต่ละรายไปยังการเรียกใช้ SelectAd จากนั้นบริการ SFE จะส่งคำขอ GetBids ไปยัง BFE ของ DSP-X และ DSP-Y ซึ่งจะเรียกใช้บริการเสนอราคาเพื่อสร้างราคาเสนอ
ระบบจะแสดงผลการประมูล B&A ที่เข้ารหัสไปยังไคลเอ็นต์ และส่งไปยังการเรียกใช้ runAdAuction() การกำหนดค่าการประมูลของผู้ขายรายเดียวมีลักษณะดังนี้
await navigator.runAdAuction({
seller: 'https://ssp-ba.example',
requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c',
serverResponse: Uint8Array(560) [193, 120, 4, …] // Encrypted B&A auction result
})
requestId มาจากคำสั่งเรียก getInterestGroupAdAuctionData() ในไคลเอ็นต์ และข้อมูล serverResponse มาจากการประมูล B&A ฝั่งเซิร์ฟเวอร์
การประมูลแบบผสม
ในการกำหนดค่าโหมดผสม ผู้ซื้อสามารถเข้าร่วมการประมูลของผู้ขายจากอุปกรณ์หรือ B&A ได้ ลูกศรสีน้ำเงินแสดงเส้นทางการประมูลในอุปกรณ์ และลูกศรสีแดงแสดงเส้นทางการประมูล B&A
ในการตั้งค่านี้ DSP-A และ DSP-B คือผู้ซื้อที่ส่งราคาเสนอในอุปกรณ์ ส่วน DSP-X และ DSP-Y คือผู้ซื้อที่ส่งราคาเสนอโดยใช้ B&A ผู้ซื้อบนอุปกรณ์จะเข้าร่วมการประมูล PA บนอุปกรณ์ในเบราว์เซอร์ และผู้ซื้อ B&A จะเข้าร่วมการตั้งค่าการประมูล B&A ที่อธิบายไว้ในส่วนการประมูลของผู้ขายรายเดียว
ระบบจะดำเนินการประมูลตามบริบทก่อนสำหรับผู้ซื้อทั้งหมดเพื่อรวบรวมราคาเสนอที่ชนะในการประมูลตามบริบทและสัญญาณของผู้ซื้อ จากนั้นการประมูล B&A จะทํางานและสัญญาณผู้ซื้อจากการประมูลตามบริบทจะส่งไปยังSelectAd คําขอไปยัง SFE ระบบจะส่งต่อผลการประมูล B&A ที่เข้ารหัสซึ่งส่งคืนจาก SFE ไปยังเบราว์เซอร์ หลังจากการประมูล B&A ระบบจะป้อนผลการประมูลลงในการประมูลในอุปกรณ์ที่ผู้ซื้อในอุปกรณ์เข้าร่วม
การกำหนดค่าการประมูลแบบผู้ขายรายเดียวในโหมดผสมสำหรับส่วนการประมูลในอุปกรณ์จะมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
await navigator.runAdAuction({
seller: 'https://ssp-mix.example',
decisionLogicURL: 'https://ssp-ba.example/score-ad.js',
componentAuctions: [
// B&A auction
{
seller: 'https://ssp-mix.example',
requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c',
serverResponse: Uint8Array(560) [133, 20, 14, …]
},
// On-device auction
{
seller: 'https://ssp-mix.example',
interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'],
decisionLogicURL: 'https://ssp-mix.example/on-device-score-ad.js',
}
]
})
การประมวลผลแบบคู่ขนานของการประมูลบนอุปกรณ์และการประมูล B&A
หากไม่มีการประมวลผลแบบคู่ขนาน การประมูลจะดำเนินการตามลำดับ โดยจะมีการประมูลตามบริบทก่อน จากนั้นจึงเป็นการประมูล B&A และสุดท้ายคือการประมูลในอุปกรณ์ เมื่อใช้การประมวลผลแบบคู่ขนาน การประมูลตามบริบทจะทำงานก่อนอีกครั้ง แต่ระบบจะสตรีมผลลัพธ์และสัญญาณกลับไปยังไคลเอ็นต์เพื่อเริ่มการประมูลในอุปกรณ์แบบคู่ขนานก่อนที่การประมูล B&A จะเสร็จสิ้น
โค้ด JavaScript ในไคลเอ็นต์จะส่งคำขอการประมูลแบบรวมไปยัง SAS และ SAS จะเริ่มการประมูลตามบริบทและการประมูล B&A ของ PA เมื่อ SAS ได้รับการตอบกลับจากเซิร์ฟเวอร์ RTB ของผู้ซื้อ ระบบจะสตรีมสัญญาณการประมูลในอุปกรณ์ของผู้ซื้อกลับไปยังเบราว์เซอร์พร้อมกับผู้ชนะการประมูลตามบริบทเมื่อได้รับราคาเสนอทั้งหมด ระบบจะใช้สัญญาณของผู้ซื้อที่สตรีมเพื่อสร้างราคาเสนอในอุปกรณ์ และใช้ผู้ชนะการประมูลตามบริบทเป็นราคาพื้นฐานเมื่อให้คะแนนราคาเสนอ
ใน SAS ผู้ขายจะสร้าง UUID nonce ที่ตั้งค่าไว้ในส่วนหัวของการตอบกลับ Ad-Auction-Result-Nonce เมื่อสตรีมข้อมูลการประมูลตามบริบทไปยังเบราว์เซอร์ ใช้ Nonce เดียวกันในคำขอ SelectAd ที่ส่งไปยัง SFE สำหรับการประมูล B&A และ Nonce นั้นจะรวมอยู่ในการตอบกลับ SelectAd ที่ส่งคืนจาก SFE ในระหว่างขั้นตอนการประมูลฝั่งไคลเอ็นต์ เบราว์เซอร์จะยืนยันว่า Nonce ในส่วนหัวของการตอบกลับ Ad-Auction-Result-Nonce ตรงกับ Nonce ในเพย์โหลดผลการประมูลที่เข้ารหัส
ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานแบบคู่ขนานในโหมดผสมได้ที่คำอธิบาย
การประมูลที่มีผู้ขายหลายราย
การประมูล PA แบบผู้ขายหลายรายด้วย B&A ทำได้ 2 วิธีดังนี้
- การประมูลที่จัดสรรโดยอุปกรณ์ซึ่งการเรียกใช้บริการโฆษณาของผู้ขายคอมโพเนนต์แต่ละรายมาจากเบราว์เซอร์
- การประมูลที่จัดโดยเซิร์ฟเวอร์ซึ่งการเรียกไปยังบริการโฆษณาของผู้ขายแต่ละคอมโพเนนต์มาจากบริการโฆษณาของผู้ขายระดับบนสุด
การประมูลแบบผู้ขายหลายรายที่จัดโดยอุปกรณ์
ในการประมูลแบบผู้ขายหลายรายที่ประสานงานโดยอุปกรณ์ ผู้ขายคอมโพเนนต์แต่ละรายมีอิสระในการจัดการประมูลในการกำหนดค่าที่ตนเลือก ผู้ขายที่ใช้อุปกรณ์ ผู้ขาย B&A และผู้ขายที่ใช้โหมดผสมสามารถเข้าร่วมการประมูลระดับบนสุดได้
ในแผนภาพนี้ SSP-TOP จะเรียกใช้การประมูลแบบผู้ขายหลายรายที่จัดระเบียบเซิร์ฟเวอร์ ซึ่ง SSP-BA-X และ SSP-BA-Y เข้าร่วม
ระบบจะส่งคำขอประมูลแบบรวมครั้งเดียวซึ่งมีเพย์โหลดการประมูลตามบริบทและการประมูล PA สำหรับผู้เข้าร่วมทั้งหมดจากเบราว์เซอร์ไปยังบริการโฆษณาของผู้ขายระดับบนสุด จากนั้น SAS จะGetComponentAuctionCiphertextsโทรหา SFE พร้อมกับเพย์โหลด SFE จะถอดรหัสเพย์โหลด แยกเพย์โหลดตามผู้ขายแต่ละราย และส่งเพย์โหลดที่เข้ารหัสซ้ำไปยัง SAS ของผู้ขายระดับบนสุด
คำจำกัดความของ Proto สำหรับGetComponentAuctionCiphertextsคำขอและการตอบกลับมีดังนี้
// Request sent from the top-level seller's ad service to SFE
message GetComponentAuctionCiphertextsRequest {
bytes protected_auction_ciphertext = 1; // Generated in the browser
repeated string component_sellers = 2; // The list of all component sellers
}
// Response returned from SFE to the top-level seller's ad service
message GetComponentAuctionCiphertextsResponse {
// A map of component sellers and their re-encrypted payloads
map<string, bytes> seller_component_ciphertexts = 1;
}
เมื่อมีเพย์โหลดของผู้ขายคอมโพเนนต์แต่ละราย SAS ของผู้ขายระดับบนสุดจะเรียก SAS ของผู้ขายคอมโพเนนต์ และ SAS ของคอมโพเนนต์แต่ละรายการจะดำเนินการประมูล B&A ของคอมโพเนนต์ จากนั้นระบบจะส่งผลลัพธ์ของการประมูลคอมโพเนนต์ไปยัง SFE ของผู้ขายระดับบนสุด และบริการประมูลของผู้ขายระดับบนสุดจะให้คะแนนราคาเสนอในการประมูลคอมโพเนนต์ ระบบจะส่งราคาเสนอที่มีคะแนนความต้องการสูงสุดไปยัง SFE และส่งเพย์โหลดที่เข้ารหัสไปยัง SAS เพื่อส่งกลับไปยังไคลเอ็นต์ ในเบราว์เซอร์ ผู้ขายระดับบนสุดจะสิ้นสุดการประมูลโดยการเรียก navigator.runAdAuction() และระบุเพย์โหลดผลการประมูลของเซิร์ฟเวอร์ที่เข้ารหัส
ขั้นตอนถัดไป
หลังจากอ่านคู่มือนี้แล้ว คุณสามารถทำตามขั้นตอนถัดไปได้ดังนี้
ดูข้อมูลเพิ่มเติม
- หากต้องการทำความเข้าใจอย่างลึกซึ้งยิ่งขึ้นเกี่ยวกับวิธีที่ B&A สำหรับ Protected Audience ทำงาน โปรดดูคำอธิบายต่อไปนี้ใน GitHub
- ทดสอบ Protected Audience ด้วย B&A โดยทำตาม Codelab การทดสอบในเครื่องแบบครบวงจร
- สำหรับการผสานรวมผู้ขาย โปรดดูผสานรวมกับ B&A ในฐานะผู้ขาย
หากมีคำถาม
- ถามคำถามเกี่ยวกับบริการเสนอราคาและบริการประมูลโดยเปิดปัญหาในที่เก็บบริการเสนอราคาและบริการประมูล