معماری

معماری حراج سرویس‌های پیشنهاد قیمت و حراج را بیاموزید

نمای کلی

خدمات مناقصه و حراج (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 است.

وقتی سرویس بخشی از پشته فروشنده سطح بالا در یک حراج چند فروشنده‌ای هماهنگ‌شده توسط سرور باشد، سرویس درخواست GetComponentAuctionCiphertexts از SAS را نیز مدیریت می‌کند.

خدمات حراج این سرویس درخواست ScoreAd از SFE را مدیریت می‌کند. این سرویس مسئول اجرای منطق امتیازدهی فروشنده و ارائه امتیاز مطلوبیت یک پیشنهاد است.

معماری یک حراج PA B&A برای وب

نمودار زیر، حراج اولیه مخاطبان محافظت‌شده با خدمات B&A را با یک فروشنده و یک خریدار واحد توصیف می‌کند. کادرهای ضخیم قرمز رنگ، نشان‌دهنده سرویس‌هایی هستند که در یک TEE اجرا می‌شوند:

کد جاوا اسکریپت سمت کلاینت درخواست حراج یکپارچه را به SSP ارسال می‌کند. SAS درخواستی را به SFE ارسال می‌کند و SFE درخواستی را برای پیشنهاد قیمت به BFE ارسال می‌کند.
( نمودار در اندازه کامل )
  1. کد جاوا اسکریپت SSP در صفحه ناشر، داده‌های رمزگذاری شده حراج آگهی B&A را با فراخوانی navigator.getInterestGroupAdAuctionData() تولید می‌کند.
    • این محموله رمزگذاری شده حاوی داده‌های خریدار است و فقط می‌تواند درون یک SFE در یک TEE رمزگشایی شود.
  2. کد جاوا اسکریپت SSP یک درخواست حراج یکپارچه را به سرویس تبلیغات فروشنده ارسال می‌کند.
    • یک درخواست حراج یکپارچه شامل هر دو محتوای حراج متنی ORTB با متن ساده و محتوای حراج B&A رمزگذاری شده است.
    • سرویس تبلیغات فروشنده، سرور تبلیغات فعلی شماست و در TEE اجرا نمی‌شود.
  3. سرویس تبلیغات فروشنده، سرویس RTB مربوط به DSP را فراخوانی می‌کند تا درخواست کند پیشنهاد حراج زمینه‌ای و هرگونه سیگنال خریدار به حراج PA بعدی منتقل شود.
    • این می‌تواند مرحله‌ای باشد که در آن خریدار قصد خود را برای شرکت در حراج PA نشان می‌دهد.
  4. پس از اتمام حراج زمینه‌ای، SAS درخواست SelectAd را به سرویس SFE ارسال می‌کند.
    • سیگنال‌های متنی مربوط به برنده شدن در مزایده و خریدار به درخواست SelectAd اضافه می‌شوند.
  5. سرویس SFE مربوط به SSP، سرویس BFE مربوط به DSP را با درخواست GetBids فراخوانی می‌کند.
  6. BFE مربوط به DSP، سرویس مناقصه را با درخواست GenerateBids فراخوانی می‌کند.
  7. به محض دریافت پیشنهاد توسط SFE، درخواست ScoreAd به Auction Service ارسال می‌شود.
    • پیشنهادی که بالاترین امتیاز مطلوبیت را دارد به SAS برگردانده می‌شود و سپس به کد جاوا اسکریپت در صفحه ارسال می‌شود.
  8. حراج با ارسال نتیجه رمزگذاری شده حراج 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 را اجرا کنند تا بتوانند برای حراج پیشنهاد قیمت ارائه دهند. خریداران و فروشندگان نیازی به استفاده از یک ارائه دهنده ابری ندارند.

معماری تک فروشنده‌ای که در آن یک SFE با چندین BFE برای دریافت پیشنهادها ارتباط برقرار می‌کند.
( نمودار در اندازه کامل )

در تنظیمات قبلی، 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 سمت سرور می‌آید.

حراج ترکیبی

در پیکربندی حالت ترکیبی، خریداران می‌توانند از طریق دستگاه یا فروشگاه‌های زنجیره‌ای در حراج فروشنده شرکت کنند. فلش‌های آبی نشان‌دهنده مسیر حراج روی دستگاه و فلش‌های قرمز نشان‌دهنده مسیر حراج فروشگاه‌های زنجیره‌ای هستند:

معماری فروشنده با حالت ترکیبی که در آن خریداران می‌توانند پیشنهادات خود را از طریق دستگاه یا 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 آغاز شود.

نموداری که نحوه‌ی ارسال پیشنهاد و سیگنال‌های حراج متنی و نتیجه‌ی SelectAd به کد جاوا اسکریپت مرورگر را شرح می‌دهد.
( نمودار در اندازه کامل )

کد جاوا اسکریپت در کلاینت، درخواست حراج یکپارچه را به 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 وجود دارد:

  1. حراج هماهنگ‌شده با دستگاه که در آن فراخوانی سرویس تبلیغاتی هر فروشنده قطعه از مرورگر سرچشمه می‌گیرد
  2. حراج هماهنگ‌شده توسط سرور که در آن فراخوانی سرویس تبلیغاتی هر فروشنده‌ی قطعه از سرویس تبلیغاتی فروشنده‌ی سطح بالا سرچشمه می‌گیرد

حراج چند فروشنده‌ای هماهنگ‌شده با دستگاه

در یک حراج چند فروشنده‌ای هماهنگ‌شده با دستگاه، هر فروشنده‌ی قطعه آزاد است که حراج خود را با پیکربندی دلخواه خود اجرا کند. فروشندگان روی دستگاه، فروشندگان B&A و فروشندگان حالت ترکیبی، همگی می‌توانند در حراج سطح بالا شرکت کنند.

نموداری که نشان می‌دهد چگونه چندین فروشنده که پیکربندی‌های حراج متفاوتی را اجرا می‌کنند، می‌توانند نتیجه حراج خود را به فروشنده سطح بالا ارسال کنند.
( نمودار در اندازه کامل )
در این تنظیمات، `SSP-TOP`، که فروشنده سطح بالا است، یک حراج چند فروشنده‌ای را اجرا می‌کند که `SSP-OD`، `SSP-BA` و `SSP-MIX` در آن شرکت می‌کنند: * `SSP-OD`، که یک حراج PA فقط روی دستگاه را اجرا می‌کند، پیکربندی حراج اجزای روی دستگاه خود را به فروشنده سطح بالا ارسال می‌کند. * `SSP-BA`، که یک حراج B&A را اجرا می‌کند، یک درخواست حراج یکپارچه به سرویس تبلیغات فروشنده خود ارسال می‌کند و حراج‌های زمینه‌ای و B&A خود را اجرا می‌کند. نتایج به فروشنده سطح بالا ارسال می‌شود. * `SSP-MIX`، که یک حراج حالت ترکیبی را اجرا می‌کند، ابتدا حراج B&A را روی سرور اجرا می‌کند، سپس هم نتیجه حراج B&A و هم پیکربندی حراج روی دستگاه را ارسال می‌کند. فروشنده سطح بالا، پیکربندی‌های حراج کامپوننت را از هر فروشنده جمع‌آوری می‌کند و یک پیکربندی حراج می‌سازد که مشابه موارد زیر است: ```js await navigator.runAdAuction({ seller: 'https://ssp-top.example', decisionLogicURL: 'https://ssp-top.example/score-ad.js', componentAuctions: [ // حراج فقط B&A SSP-BA { seller: 'https://ssp-ba.example', requestId: 'g8312cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [193, 120, 4, …] // نتیجه حراج B&A رمزگذاری شده }, // حراج B&A SSP-MIX از حالت مختلط { seller: 'https://ssp-mix.example', requestId: 'f5135cb2-da2d-4e9b-80e6-e13dec2a581c', serverResponse: Uint8Array(560) [133, 20, 4, …] // نتیجه حراج رمزگذاری شده B&A }. // حراج حالت ترکیبی روی دستگاه SSP-MIX { فروشنده: 'https://ssp-mix.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-mix.example/score-ad.js', } // حراج روی دستگاه SSP-OD { فروشنده: 'https://ssp-od.example', interestGroupBuyers: ['https://dsp-a.example', 'https://dsp-b.example'], decisionLogicURL: 'https://ssp-od.example/score-ad.js', } ] }) ``` ### حراج چند فروشنده‌ای هماهنگ با سرور در یک حراج چند فروشنده‌ای هماهنگ با سرور، فراخوانی‌ها به سرویس‌های تبلیغاتی فروشنده قطعات از سرویس تبلیغاتی فروشنده سطح بالا انجام می‌شود. در این تنظیمات، فروشندگان قطعات نمی‌توانند حراج روی دستگاه یا حالت ترکیبی را اجرا کنند. همه فروشندگان باید از B&A استفاده کنند و همه خریداران باید پیشنهادات خود را با استفاده از B&A ارسال کنند.
SSP سطح بالا یک درخواست حراج یکپارچه را به سرویس تبلیغات فروشنده خود ارسال می‌کند. سرویس تبلیغات فروشنده، SFE را برای اجرای عملیات GetComponentAuctionCipherTexts فراخوانی می‌کند. سپس متن‌های رمزگذاری شده برگشتی به سرویس تبلیغات هر فروشنده کامپوننت که حراج‌های 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 رمزگذاری شده‌ی نتیجه حراج سرور، حراج را به پایان می‌رساند.

مراحل بعدی

پس از مطالعه این راهنما، می‌توانید مراحل زیر را انجام دهید:

بیشتر بدانید

سوالی دارید؟