معماری حراج سرویسهای پیشنهاد قیمت و حراج را بیاموزید
نمای کلی
خدمات مناقصه و حراج (B&A) مجموعهای از خدمات را برای خریداران و فروشندگان تبلیغات ارائه میدهد که در یک محیط اجرای قابل اعتماد (TEE) اجرا میشود تا حراج مخاطبان محافظتشده (PA) را تسهیل کند. این صفحه پیکربندیهای مختلف حراج را که B&A میتواند در یک حراج PA استفاده کند، شرح میدهد.
تعاریف
| مدت | توضیحات |
|---|---|
| حراج مخاطبان محافظتشده | حراج تبلیغاتی که شامل دادههای بین سایتی میشود |
| حراج زمینهای | یک حراج تبلیغاتی که شامل دادههای بین سایتی نمیشود. این حراج از مسیر حراج موجود در زمان واقعی (RTB) پیروی میکند. |
| درخواست حراج یکپارچه | درخواستی که توسط کد جاوا اسکریپت فروشنده از مرورگر ارسال میشود و شامل محتوای حراج مخاطب محافظتشده و حراج زمینهای است. |
| سرویس تبلیغات فروشنده (SAS) | سرویسی که مسئول رسیدگی به درخواست حراج یکپارچه از مرورگر است. این میتواند سرور تبلیغاتی RTB موجود فروشنده باشد. SAS مسئول هماهنگسازی حراجهای زمینهای و مخاطبان محافظتشده است. |
| سرویس تبلیغات خریدار | سرویسی که مسئول ارسال پیشنهاد حراج زمینهای است. این میتواند سرور تبلیغاتی ORTB موجود خریدار باشد. |
خدمات برای خریداران و فروشندگان
خدمات B&A از چهار سرویس برای خریداران و فروشندگان تشکیل شده است:
- برای خریداران، سرویس پیشنهاد قیمت و سرویس ارتباط با خریدار (BFE) برای استفاده در دسترس است.
- برای فروشندگان، سرویس حراج و سرویس رابط کاربری فروشنده (SFE) برای استفاده در دسترس هستند.
| شرکتکننده | خدمات | توضیحات |
|---|---|---|
| خریدار | خدمات پشتیبانی خریدار (BFE) | این سرویس درخواست GetBids را از SFE فروشنده مدیریت میکند. این سرویس مسئول رمزگشایی payload، دریافت سیگنالهای K/V و فراخوانی GenerateBids از سرویس Bidding است. |
| خدمات مناقصه | این سرویس درخواست GenerateBids از BFE را مدیریت میکند. این سرویس مسئول اجرای منطق پیشنهاد قیمت خریدار و تولید یک پیشنهاد قیمت است. | |
| فروشنده | خدمات رابط کاربری فروشنده (SFE) | این سرویس، درخواست SelectAd را از سرویس تبلیغات فروشنده مدیریت میکند. این سرویس مسئول رمزگشایی بار داده، فراخوانی عملیات GetBids مربوط به BFE ، دریافت سیگنالهای K/V، فراخوانی عملیات ScoreAd مربوط به سرویس Auction و سپس بازگرداندن نتیجه رمزگذاری شده حراج B&A به SAS است. وقتی سرویس بخشی از پشته فروشنده سطح بالا در یک حراج چند فروشندهای هماهنگشده توسط سرور باشد، سرویس درخواست |
| خدمات حراج | این سرویس درخواست ScoreAd از SFE را مدیریت میکند. این سرویس مسئول اجرای منطق امتیازدهی فروشنده و ارائه امتیاز مطلوبیت یک پیشنهاد است. |
معماری یک حراج PA B&A برای وب
نمودار زیر، حراج اولیه مخاطبان محافظتشده با خدمات B&A را با یک فروشنده و یک خریدار واحد توصیف میکند. کادرهای ضخیم قرمز رنگ، نشاندهنده سرویسهایی هستند که در یک TEE اجرا میشوند:

- کد جاوا اسکریپت SSP در صفحه ناشر، دادههای رمزگذاری شده حراج آگهی B&A را با فراخوانی
navigator.getInterestGroupAdAuctionData()تولید میکند.- این محموله رمزگذاری شده حاوی دادههای خریدار است و فقط میتواند درون یک SFE در یک TEE رمزگشایی شود.
- کد جاوا اسکریپت SSP یک درخواست حراج یکپارچه را به سرویس تبلیغات فروشنده ارسال میکند.
- یک درخواست حراج یکپارچه شامل هر دو محتوای حراج متنی ORTB با متن ساده و محتوای حراج B&A رمزگذاری شده است.
- سرویس تبلیغات فروشنده، سرور تبلیغات فعلی شماست و در TEE اجرا نمیشود.
- سرویس تبلیغات فروشنده، سرویس RTB مربوط به DSP را فراخوانی میکند تا درخواست کند پیشنهاد حراج زمینهای و هرگونه سیگنال خریدار به حراج PA بعدی منتقل شود.
- این میتواند مرحلهای باشد که در آن خریدار قصد خود را برای شرکت در حراج PA نشان میدهد.
- پس از اتمام حراج زمینهای، SAS درخواست
SelectAdرا به سرویس SFE ارسال میکند.- سیگنالهای متنی مربوط به برنده شدن در مزایده و خریدار به درخواست
SelectAdاضافه میشوند.
- سیگنالهای متنی مربوط به برنده شدن در مزایده و خریدار به درخواست
- سرویس SFE مربوط به SSP، سرویس BFE مربوط به DSP را با درخواست
GetBidsفراخوانی میکند. - BFE مربوط به DSP، سرویس مناقصه را با درخواست
GenerateBidsفراخوانی میکند. - به محض دریافت پیشنهاد توسط SFE، درخواست
ScoreAdبه Auction Service ارسال میشود.- پیشنهادی که بالاترین امتیاز مطلوبیت را دارد به SAS برگردانده میشود و سپس به کد جاوا اسکریپت در صفحه ارسال میشود.
- حراج با ارسال نتیجه رمزگذاری شده حراج B&A به فراخوانی
navigator.runAdAuction()در مرورگر به پایان میرسد.
پیکربندیهای حراج
یک حراج مخاطب محافظتشده با خدمات B&A میتواند به روشهای زیر پیکربندی شود:
- حراج تک فروشنده با خریداران B&A
- حراج ترکیبی با خریداران روی دستگاه و خریداران حضوری
- حراج چند فروشندهای که میتواند توسط دستگاه یا سرور هماهنگ شود
شرکتکنندگان
برای توصیف هر پیکربندی حراج، از شرکتکنندگان زیر در این راهنما استفاده شده است:
| شرکتکننده | توضیحات |
|---|---|
DSP-A | خریدار روی دستگاه |
DSP-B | خریدار روی دستگاه |
DSP-X | خریدار B&A |
DSP-Y | خریدار B&A |
SSP-TOP | فروشنده سطح بالا |
SSP-OD | فروشنده فقط روی دستگاه |
SSP-BA | فروشنده فقط برای صبحانه و شام |
SSP-MIX | فروشنده با حالت ترکیبی |
چهار DSP وجود دارد:
-
DSP-AوDSP-Bفقط در مزایدههای درون دستگاهی شرکت میکنند -
DSP-XوDSP-Yهم در مزایدههای روی دستگاه و هم در مزایدههای B&A شرکت میکنند.
چهار SSP وجود دارد و هر فروشنده پیکربندی حراج متفاوتی را اجرا میکند:
-
SSP-ODحراجی را فقط روی دستگاه اجرا میکند -
SSP-BAیک حراج فقط برای کالاهای B&A برگزار میکند -
SSP-MIXیک حراج ترکیبی اجرا میکند -
SSP-TOPیک حراج چند فروشندهای برگزار میکند:-
SSP-OD/BA/MIXبه عنوان فروشندگان قطعات در حراج چند فروشندهایSSP-TOPشرکت میکنند.
-
حراج تک فروشنده B&A
در یک سیستم تک فروشنده، یک فروشنده حراجی را اجرا میکند که چندین خریدار در آن شرکت میکنند. اگر فروشنده حراج B&A را اجرا میکند، خریداران باید مجموعه خریداران خدمات B&A را اجرا کنند تا بتوانند برای حراج پیشنهاد قیمت ارائه دهند. خریداران و فروشندگان نیازی به استفاده از یک ارائه دهنده ابری ندارند.

در تنظیمات قبلی، SSP-BA یک حراج B&A اجرا میکند که DSP-X و DSP-Y با استفاده از مجموعه خریداران سرویسهای B&A در آن شرکت میکنند. سرویس تبلیغات فروشنده ابتدا یک حراج زمینهای برای DSP-X و DSP-Y اجرا میکند، سپس با ارسال درخواست 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 سمت سرور میآید.
حراج ترکیبی
در پیکربندی حالت ترکیبی، خریداران میتوانند از طریق دستگاه یا فروشگاههای زنجیرهای در حراج فروشنده شرکت کنند. فلشهای آبی نشاندهنده مسیر حراج روی دستگاه و فلشهای قرمز نشاندهنده مسیر حراج فروشگاههای زنجیرهای هستند:

در این چیدمان، 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 آغاز شود.

کد جاوا اسکریپت در کلاینت، درخواست حراج یکپارچه را به SAS ارسال میکند و SAS حراج زمینهای و حراج PA B&A را آغاز میکند. هنگامی که SAS پاسخی از سرور RTB خریدار دریافت میکند، سیگنالهای خریدار برای حراج روی دستگاه، به همراه برنده حراج زمینهای، پس از دریافت همه پیشنهادها، میتوانند به مرورگر ارسال شوند. سیگنالهای خریدار پخششده برای ایجاد پیشنهاد روی دستگاه استفاده میشوند و برنده حراج زمینهای به عنوان کف پیشنهاد هنگام امتیازدهی به پیشنهادها استفاده میشود.
در SAS، فروشنده هنگام ارسال دادههای حراج زمینهای به مرورگر، یک نانس UUID ایجاد میکند که در هدر پاسخ Ad-Auction-Result-Nonce تنظیم میشود. همین نانس در فراخوانی SelectAd به SFE برای حراج B&A استفاده میشود و آن نانس در پاسخ SelectAd برگشتی از SFE گنجانده میشود. در طول مرحله حراج سمت کلاینت، مرورگر تأیید میکند که نانس موجود در هدر پاسخ Ad-Auction-Result-Nonce با نانس موجود در payload رمزگذاری شده نتیجه حراج مطابقت دارد.
برای کسب اطلاعات بیشتر در مورد موازیسازی حالت ترکیبی، به توضیحدهنده مراجعه کنید.
حراج چند فروشندهای
دو راه برای اجرای حراج چند فروشندهای PA با B&A وجود دارد:
- حراج هماهنگشده با دستگاه که در آن فراخوانی سرویس تبلیغاتی هر فروشنده قطعه از مرورگر سرچشمه میگیرد
- حراج هماهنگشده توسط سرور که در آن فراخوانی سرویس تبلیغاتی هر فروشندهی قطعه از سرویس تبلیغاتی فروشندهی سطح بالا سرچشمه میگیرد
حراج چند فروشندهای هماهنگشده با دستگاه
در یک حراج چند فروشندهای هماهنگشده با دستگاه، هر فروشندهی قطعه آزاد است که حراج خود را با پیکربندی دلخواه خود اجرا کند. فروشندگان روی دستگاه، فروشندگان B&A و فروشندگان حالت ترکیبی، همگی میتوانند در حراج سطح بالا شرکت کنند.


در این نمودار، SSP-TOP یک حراج چندفروشندهای هماهنگشده با سرور را اجرا میکند که SSP-BA-X و SSP-BA-Y در آن شرکت میکنند.
یک درخواست حراج یکپارچه که شامل محتوای حراجهای متنی و PA برای همه شرکتکنندگان است، از مرورگر به سرویس تبلیغاتی فروشنده سطح بالا ارسال میشود. سپس SAS یک فراخوانی GetComponentAuctionCiphertexts به SFE به همراه محتوای حراج انجام میدهد. SFE محتوای حراج را رمزگشایی میکند، محتوای حراجها را بر اساس هر فروشنده کامپوننت جدا میکند و محتوای حراجهای دوباره رمزگذاری شده را به SAS فروشنده سطح بالا برمیگرداند.
تعاریف اولیه برای درخواست و پاسخ 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;
}
با هر payload فروشندهی قطعه، SAS فروشندهی سطح بالا، SAS فروشندگان قطعه را فراخوانی میکند و هر SAS قطعه، حراج B&A قطعهی خود را اجرا میکند. سپس، نتایج حراج قطعه به SFE فروشندهی سطح بالا بازگردانده میشود و پیشنهادهای حراج قطعه توسط سرویس حراج فروشندهی سطح بالا امتیازدهی میشوند. پیشنهادی که بالاترین امتیاز مطلوبیت را دارد به SFE بازگردانده میشود و آن payload رمزگذاری شده به SAS ارسال میشود تا به کلاینت بازگردانده شود. در مرورگر، فروشندهی سطح بالا با فراخوانی navigator.runAdAuction() و ارائه payload رمزگذاری شدهی نتیجه حراج سرور، حراج را به پایان میرساند.
مراحل بعدی
پس از مطالعه این راهنما، میتوانید مراحل زیر را انجام دهید:
بیشتر بدانید
- برای درک عمیقتر از نحوهی عملکرد B&A برای مخاطبان محافظتشده، به توضیحات زیر در گیتهاب مراجعه کنید:
- با دنبال کردن آزمایشگاه کد تست محلی سرتاسری، با مخاطب محافظتشده با B&A آزمایش کنید.
- برای ادغام فروشنده، به «ادغام با B&A به عنوان فروشنده» مراجعه کنید.
سوالی دارید؟
- با باز کردن یک موضوع در مخزن خدمات B&A، سوالات خود را در مورد خدمات مناقصه و مزایده بپرسید.