به عنوان یک خریدار آگهی (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() آرگومانهای زیر را دریافت میکند:
| استدلال | نقش |
|---|---|
| یک شیء که توسط خریدار تبلیغ به آن ارسال میشود. گروه مورد علاقه ممکن است با dailyUpdateUrl بهروزرسانی شود. |
| یک ویژگی از آرگومان پیکربندی حراج که توسط فروشنده به navigator.runAdAuction() ارسال میشود. این ویژگی اطلاعاتی در مورد زمینه صفحه (مانند اندازه آگهی و شناسه ناشر)، نوع حراج (قیمت اول یا قیمت دوم) و سایر فرادادهها ارائه میدهد. |
| یک ویژگی از آرگومان پیکربندی حراج که توسط فروشنده ارسال میشود. این میتواند سیگنالهای زمینهای از سرور خریدار در مورد صفحه ارائه دهد، اگر فروشنده یک SSP باشد که یک فراخوانی مناقصه در زمان واقعی را به سرورهای خریدار انجام میدهد و پاسخ را به عقب ارسال میکند، یا اگر صفحه ناشر مستقیماً با سرور خریدار تماس میگیرد. در این صورت، خریدار ممکن است بخواهد امضای رمزنگاری آن سیگنالها را در داخل generateBid() به عنوان محافظت در برابر دستکاری بررسی کند. |
| شیءای که کلیدهای آن trustedBiddingSignalsKeys برای گروه مورد نظر هستند و مقادیر آن در درخواست trustedBiddingSignals برگردانده میشوند. |
| شیء ساخته شده توسط مرورگر، که ممکن است شامل اطلاعاتی در مورد زمینه صفحه (مانند hostname صفحه فعلی، که فروشنده میتواند در غیر این صورت آن را جعل کند) و دادههایی برای خود گروه ذینفع (مانند سابقهای از زمانی که گروه قبلاً در یک حراج برنده شده است، برای امکان محدود کردن فرکانس روی دستگاه) باشد. |
| سیگنالهایی که از یک فروشنده خاص میآیند، برخلاف 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
}
| ملک | توضیحات |
|---|---|
| نام میزبان جایی که فراخوانی runAdAuction() انجام شده است. |
| فروشندهای که پیشنهاد قیمت به او ارائه میشود. در حراج قطعات، این ارزش، فروشنده قطعات است. |
| فروشنده سطح بالا در حراج قطعات، و فقط در حراج قطعات حضور دارد. |
| ویژگی requestedSize یک اندازه قاب برای حراج پیشنهاد میدهد. فروشنده اندازه درخواستی را در پیکربندی حراج تنظیم میکند و مقدار آن در generateBid() برای پیشنهاددهندگان در دسترس قرار میگیرد. پیشنهاددهندگان داخل حراج میتوانند اندازه محتوای متفاوتی را برای تبلیغ انتخاب کنند و اندازه حاصل به صورت بصری مقیاسبندی میشود تا در اندازه کانتینر عنصر قرار گیرد. |
| فیلد joinCount تعداد دفعاتی است که این دستگاه در 30 روز گذشته به این گروه علاقهمندی پیوسته است، در حالی که گروه علاقهمندی به طور مداوم ذخیره شده است (یعنی هیچ وقفهای در ذخیره گروه علاقهمندی در دستگاه به دلیل ترک یا انقضای عضویت وجود ندارد). |
| فیلد recency مدت زمان (به دقیقه) از زمانی که این دستگاه به این گروه علاقهمندی پیوسته تا به حال را نشان میدهد. |
| تعداد دفعاتی که آن گروه ذینفع پیشنهاد قیمت ارائه داده است. |
| فیلد prevWinMs شامل تبلیغات برنده گروه مورد نظر و زمان سپری شده از بردهای قبلی آنها بر حسب میلیثانیه است. توجه داشته باشید که شیء تبلیغ در اینجا فقط شامل فیلدهای renderURL و فراداده است. |
| یک شیء WebAssembly.Module بر اساس biddingWasmHelperURL گروه ذینفع، WasmHelperURL. |
| مقدار نسخه داده از پاسخ(های) سرویس کلید/مقدار خریدار. |
| حداکثر تعداد اجزای تبلیغاتی 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 | یک فرهنگ لغت که خلاقیتی را که باید در صورت برنده شدن این پیشنهاد در حراج ارائه شود، شرح میدهد. این شامل موارد زیر است:
|
| یک عدد صحیح ۰-۴۰۹۵ (۱۲ بیتی) به reportWin() ارسال میشود، که شامل نویز است، همانطور که در طرح نویز و سطلبندی توضیح داده شده است. مقادیر نامعتبر، مانند مقادیر منفی، بینهایت و NaN ، نادیده گرفته شده و ارسال نمیشوند. فقط ۱۲ بیت پایینتر ارسال میشوند.خریدار میتواند از سیگنالهای موجود در تابع generateBid() ، از جمله دادههای خریدار شخص اول که در زمان ایجاد گروه ذینفع در userBiddingSignals ثبت شده است، برای استخراج مقداری که به تابع گزارشدهی برد خریدار منتقل میشود تا آموزش مدل یادگیری ماشین را فعال کند، استفاده کند. |