برای خرید جایگاه آگهی در یک حراج پیشنهاد دهید

به عنوان یک خریدار آگهی (DSPها و تبلیغ‌کنندگان)، ممکن است علاقه‌مند به شرکت در حراج تبلیغاتی مخاطبان محافظت‌شده در سایت ناشر باشید تا تبلیغی را به گروه مورد علاقه‌ای که در سایت تبلیغ‌کننده تعریف کرده‌اید، هدف قرار دهید. با شرکت در حراج مخاطبان محافظت‌شده، می‌توانید به مشتریان شناسایی‌شده خود در سایت‌های دیگر به روشی با حفظ حریم خصوصی دسترسی پیدا کنید.

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

شما منطق تولید پیشنهاد خود را در تابع جاوا اسکریپت generateBid() ارائه می‌دهید و فایل روی سرور شما میزبانی می‌شود. وقتی کاربری را به یک گروه علاقه‌مندی اضافه می‌کنید ، مکان این فایل به عنوان biddingLogicUrl به پیکربندی گروه علاقه‌مندی ارسال می‌شود.

در طول حراج، مرورگر منطق پیشنهاد قیمت شما را که در فیلد biddingLogicUrl مشخص شده است، دریافت می‌کند و تابع generateBid() شما را برای هر گروه ذینفع در یک محیط ایزوله امن که ارتباط آن با زمینه خارجی محدود است، اجرا می‌کند. هنگام اجرای generateBid() ، مرورگر سیگنال‌هایی را به عنوان آرگومان به تابع ارسال می‌کند. این سیگنال‌ها حاوی اطلاعات مختلفی از منابع مختلف، مانند داده‌های شخص اول ناشر، داده‌های فروشنده، داده‌های بلادرنگ و موارد دیگر هستند. می‌توانید از این سیگنال‌ها برای محاسبه پیشنهاد قیمت استفاده کنید و مقدار از فراخوانی generateBid() بازگردانده می‌شود. پس از ارسال پیشنهادها، مرورگر منطق امتیازدهی فروشنده را برای هر پیشنهاد اجرا می‌کند تا امتیاز مطلوبیت فروشنده محاسبه شود.

generateBid()

موارد زیر آرگومان‌های تابع generateBid() و ساختار پیشنهاد برگشتی از تابع را شرح می‌دهد:


generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals, directFromSellerSignals) {
  return {
    ad: adObject,
    adCost: optionalAdCost,
    bid: bidValue,
    bidCurrency: 'USD',
    render: {
      url: renderURL,
      width: renderWidth,
      height: renderHeight
    },
    adComponents: [
      {url: adComponent1, width: componentWidth1, height: componentHeight1},
      {url: adComponent2, width: componentWidth2, height: componentHeight2},
      // ...
    ],
    allowComponentAuction: false,
    modelingSignals: 123 // 0-4095 integer (12-bits)
  };
}

استدلال‌ها

generateBid() آرگومان‌های زیر را دریافت می‌کند:

استدلال نقش

interestGroup

یک شیء که توسط خریدار تبلیغ به آن ارسال می‌شود. گروه مورد علاقه ممکن است با dailyUpdateUrl به‌روزرسانی شود.

auctionSignals

یک ویژگی از آرگومان پیکربندی حراج که توسط فروشنده به navigator.runAdAuction() ارسال می‌شود. این ویژگی اطلاعاتی در مورد زمینه صفحه (مانند اندازه آگهی و شناسه ناشر)، نوع حراج (قیمت اول یا قیمت دوم) و سایر فراداده‌ها ارائه می‌دهد.

perBuyerSignals

یک ویژگی از آرگومان پیکربندی حراج که توسط فروشنده ارسال می‌شود. این می‌تواند سیگنال‌های زمینه‌ای از سرور خریدار در مورد صفحه ارائه دهد، اگر فروشنده یک SSP باشد که یک فراخوانی مناقصه در زمان واقعی را به سرورهای خریدار انجام می‌دهد و پاسخ را به عقب ارسال می‌کند، یا اگر صفحه ناشر مستقیماً با سرور خریدار تماس می‌گیرد. در این صورت، خریدار ممکن است بخواهد امضای رمزنگاری آن سیگنال‌ها را در داخل generateBid() به عنوان محافظت در برابر دستکاری بررسی کند.

trustedBiddingSignals

شیء‌ای که کلیدهای آن trustedBiddingSignalsKeys برای گروه مورد نظر هستند و مقادیر آن در درخواست trustedBiddingSignals برگردانده می‌شوند.

browserSignals

شیء ساخته شده توسط مرورگر، که ممکن است شامل اطلاعاتی در مورد زمینه صفحه (مانند hostname صفحه فعلی، که فروشنده می‌تواند در غیر این صورت آن را جعل کند) و داده‌هایی برای خود گروه ذینفع (مانند سابقه‌ای از زمانی که گروه قبلاً در یک حراج برنده شده است، برای امکان محدود کردن فرکانس روی دستگاه) باشد.

directFromSellerSignals

سیگنال‌هایی که از یک فروشنده خاص می‌آیند، برخلاف auctionSignals و sellerSignals که می‌توانند از هر شرکت‌کننده‌ای که در زمینه اجرای runAdAuction حضور دارد، بیایند.

سیگنال‌های مرورگر

شیء browserSignals دارای ویژگی‌های زیر است:

{
  topWindowHostname: 'publisher.example',
  seller: 'https://ssp.example',
  topLevelSeller: 'https://www.top-level-ssp.com',
  requestedSize: {width: 100, height: 200},  /* if specified in auction config */
  joinCount: 3,
  recency: 3600000,
  bidCount: 17,
  prevWinsMs: [[timeDeltaMs1,ad1],[timeDeltaMs2,ad2],...],
  wasmHelper: ...
  dataVersion: 1,
  adComponentsLimit: 40
}
ملک توضیحات

topWindowHostname

نام میزبان جایی که فراخوانی runAdAuction() انجام شده است.

seller

فروشنده‌ای که پیشنهاد قیمت به او ارائه می‌شود. در حراج قطعات، این ارزش، فروشنده قطعات است.

topLevelSeller

فروشنده سطح بالا در حراج قطعات، و فقط در حراج قطعات حضور دارد.

requestedSize

ویژگی requestedSize یک اندازه قاب برای حراج پیشنهاد می‌دهد. فروشنده اندازه درخواستی را در پیکربندی حراج تنظیم می‌کند و مقدار آن در generateBid() برای پیشنهاددهندگان در دسترس قرار می‌گیرد. پیشنهاددهندگان داخل حراج می‌توانند اندازه محتوای متفاوتی را برای تبلیغ انتخاب کنند و اندازه حاصل به صورت بصری مقیاس‌بندی می‌شود تا در اندازه کانتینر عنصر قرار گیرد.

joinCount

فیلد joinCount تعداد دفعاتی است که این دستگاه در 30 روز گذشته به این گروه علاقه‌مندی پیوسته است، در حالی که گروه علاقه‌مندی به طور مداوم ذخیره شده است (یعنی هیچ وقفه‌ای در ذخیره گروه علاقه‌مندی در دستگاه به دلیل ترک یا انقضای عضویت وجود ندارد).

recency

فیلد recency مدت زمان (به دقیقه) از زمانی که این دستگاه به این گروه علاقه‌مندی پیوسته تا به حال را نشان می‌دهد.

bidCount

تعداد دفعاتی که آن گروه ذینفع پیشنهاد قیمت ارائه داده است.

prevWinsMs

فیلد prevWinMs شامل تبلیغات برنده گروه مورد نظر و زمان سپری شده از بردهای قبلی آنها بر حسب میلی‌ثانیه است. توجه داشته باشید که شیء تبلیغ در اینجا فقط شامل فیلدهای renderURL و فراداده است.

wasmHelper

یک شیء WebAssembly.Module بر اساس biddingWasmHelperURL گروه ذینفع، WasmHelperURL.

dataVersion

مقدار نسخه داده از پاسخ(های) سرویس کلید/مقدار خریدار.

adComponentsLimit

حداکثر تعداد اجزای تبلیغاتی generateBid() ممکن است برگرداند

محاسبه پیشنهاد قیمت

برای محاسبه‌ی مقدار پیشنهاد، کد موجود در generateBid() می‌تواند از ویژگی‌های پارامترهای تابع استفاده کند.

برای مثال:

function generateBid(interestGroup, auctionSignals, perBuyerSignals,
    trustedBiddingSignals, browserSignals) {
  return {
   //  ...
    bid: auctionSignals.is_above_the_fold ? perBuyerSignals.atf_value : perBuyerSignals.btf_value,
    // ...
  }
}

پیشنهاد قیمت را برگردانید

generateBid() یک شیء با ویژگی‌های زیر برمی‌گرداند:

ملک نقش
ad فراداده‌های دلخواه در مورد آگهی، مانند اطلاعاتی که فروشنده انتظار دارد در مورد این پیشنهاد یا آگهی خلاقانه بداند. فروشنده از این اطلاعات در منطق حراج و تصمیم‌گیری خود استفاده می‌کند.
adCost یک مقدار عددی که برای انتقال هزینه کلیک یا تبدیل تبلیغ‌کننده گزارش‌دهنده از generateBid به reportWin استفاده می‌شود. دقت این عدد به یک مانتیس ۸ بیتی و یک توان ۸ بیتی محدود می‌شود و هرگونه گرد کردن به صورت تصادفی انجام می‌شود.
adComponents یک لیست اختیاری شامل حداکثر ۲۰ کامپوننت برای تبلیغاتی که از چندین قطعه تشکیل شده‌اند ، که از ویژگی adComponents مربوط به آرگومان گروه علاقه‌مندی که به navigator.joinAdInterestGroup() ارسال شده است، گرفته شده است.
allowComponentAuction یک مقدار بولی که نشان می‌دهد آیا این پیشنهاد می‌تواند در حراج اجزا استفاده شود یا خیر. در صورت عدم تعیین، به طور پیش‌فرض روی "false" تنظیم می‌شود.
bid یک پیشنهاد عددی که وارد حراج می‌شود. فروشنده باید بتواند پیشنهادهای خریداران مختلف را مقایسه کند، بنابراین پیشنهادها باید در واحد انتخابی فروشنده (مانند "دلار آمریکا به ازای هر هزار دلار") باشند. اگر پیشنهاد صفر یا منفی باشد، این گروه ذینفع به هیچ وجه در حراج فروشنده شرکت نخواهد کرد. با این مکانیسم، خریدار می‌تواند هرگونه قانون تبلیغ‌کننده را برای محل نمایش یا عدم نمایش تبلیغات خود اعمال کند.
bidCurrency واحد پول مورد استفاده برای پیشنهاد قیمت، برای بررسی ارز .
render یک فرهنگ لغت که خلاقیتی را که باید در صورت برنده شدن این پیشنهاد در حراج ارائه شود، شرح می‌دهد. این شامل موارد زیر است:
  • url : آدرس اینترنتی (URL) فرد خلاق.
  • width : عرض آگهی تبلیغاتی. این اندازه با اعلان در گروه مورد نظر مطابقت داده می‌شود و در هر ماکروی اندازه آگهی موجود در URL آگهی تبلیغاتی جایگزین می‌شود. هنگامی که آگهی در یک قاب محصور بارگذاری می‌شود، قاب داخلی قاب محصور (یعنی اندازه قابل مشاهده برای آگهی تبلیغاتی) به این اندازه ثابت می‌ماند و قادر به مشاهده تغییرات اندازه قاب ایجاد شده توسط جاسازی‌کننده نخواهد بود.
  • height : ارتفاع خالق. به جزئیات در width مراجعه کنید.

modelingSignals

یک عدد صحیح ۰-۴۰۹۵ (۱۲ بیتی) به reportWin() ارسال می‌شود، که شامل نویز است، همانطور که در طرح نویز و سطل‌بندی توضیح داده شده است. مقادیر نامعتبر، مانند مقادیر منفی، بی‌نهایت و NaN ، نادیده گرفته شده و ارسال نمی‌شوند. فقط ۱۲ بیت پایین‌تر ارسال می‌شوند.


خریدار می‌تواند از سیگنال‌های موجود در تابع generateBid() ، از جمله داده‌های خریدار شخص اول که در زمان ایجاد گروه ذینفع در userBiddingSignals ثبت شده است، برای استخراج مقداری که به تابع گزارش‌دهی برد خریدار منتقل می‌شود تا آموزش مدل یادگیری ماشین را فعال کند، استفاده کند.