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

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

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

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

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

generateBid()

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


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 گروه ذینفع.

dataVersion

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

adComponentsLimit

حداکثر تعداد مؤلفه‌های آگهی generateBid() ممکن است برگردد

یک پیشنهاد را محاسبه کنید

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

مثلا:

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

پیشنهادی را برگردانید

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

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

modelingSignals

یک عدد صحیح 0-4095 (12 بیتی) به reportWin() ارسال شد، با نویز، همانطور که در طرح نویز و سطل توضیح داده شد. مقادیر نامعتبر مانند مقادیر منفی، بینهایت و NaN نادیده گرفته می شوند و عبور نمی کنند. فقط 12 بیت کمتر ارسال می شود.


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

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

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

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

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

generateBid()

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


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 گروه ذینفع.

dataVersion

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

adComponentsLimit

حداکثر تعداد مؤلفه‌های آگهی generateBid() ممکن است برگردد

یک پیشنهاد را محاسبه کنید

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

مثلا:

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

پیشنهادی را برگردانید

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

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

modelingSignals

یک عدد صحیح 0-4095 (12 بیتی) به reportWin() ارسال شد، با نویز، همانطور که در طرح نویز و سطل توضیح داده شد. مقادیر نامعتبر مانند مقادیر منفی، بینهایت و NaN نادیده گرفته می شوند و عبور نمی کنند. فقط 12 بیت کمتر ارسال می شود.


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