پردازش درخواست
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
تعامل پیشنهاد قیمت همزمان زمانی شروع میشود که Google درخواست پیشنهاد قیمتی را به
برنامه شما ارسال میکند. این راهنما توضیح میدهد که چگونه برنامه خود را برای پردازش درخواست پیشنهاد قیمت کدگذاری کنید.
تجزیه درخواست
Google درخواست قیمت پیشنهادی را که در قالب OpenRTB JSON یا Protobuf سریالسازی شده است، بهعنوان بار داده درخواست HTTP POST پیوست میکند. قالب دریافتی به پیکربندی
نقطه پایانی شما بستگی دارد. برای مشاهده نمونه،
نمونه درخواست پیشنهاد قیمت را ببینید.
برای دریافت BidRequest سریالیشده، باید این درخواست را تجزیه کنید. اگر از قالب Protobuf استفاده میکنید، باید
openrtb.proto و openrtb-adx.proto را از صفحه
دادههای مرجع بارگیری کنید و از آنها برای
تولید کتابخانهای استفاده کنید که بتوان از آن برای تجزیه پیام BidRequest
استفاده کرد. برای مثال، کد C++ زیر درخواستی را که با بارداده POST در رشتهای ارائه شده است تجزیه میکند:
پساز اینکه BidRequest را دریافت کردید، میتوانید با آن بهعنوان یک
شیء کار کنید و فیلدهای موردنیازتان را استخراج و تفسیر کنید. برای مثال، در
C++ تکرار ازطریق معاملات در OpenRTB `BidRequest` میتواند شبیه
به این باشد:
وقتی فضای آگهی ناشر توسط یک یا چند مورد از
پیکربندیهای پیشهدفیابی شما هدفیابی شود، درخواست پیشنهاد قیمت دریافت میکنید. BidRequest.imp.ext.billing_id
با شناسههای صورتحساب خریداران واجدشرایط و پیکربندیهای پیشهدفیابی مربوطه پر خواهد شد. علاوهبراین، برای
فهرستگان
معامله، میتوانید شناسههای صورتحساب مرتبط با خریداران مربوطه را
بااستفاده از BidRequest.imp.pmp.deal.ext.billing_id پیدا کنید. فقط شناسههای صورتحساب خریداران موجود در درخواست پیشنهاد قیمت را میتوان هنگام ارائه پیشنهاد قیمت مشخص کرد.
اگر چندین شناسه صورتحساب در درخواست قیمت پیشنهادی گنجانده شده است، باید شناسه صورتحساب خریدار موردنظرتان را که میخواهید قیمت پیشنهادیتان را به او نسبت دهید با فیلد BidResponse.seatbid.bid.ext.billing_id مشخص کنید.
imp {
ext {
// The billing IDs of all of your matching pretargeting configs and eligible child seats are
// stored in a flat list here.
billing_id: 123
billing_id: 456
billing_id: 789
}
pmp {
// All eligible deals are stored in a single flat list.
deal {
id: 1000
ext {
// The specific billing IDs eligible to bid on this deal are indicated here.
billing_id: 789
}
...
}
deal {
id: 2000
ext {
billing_id: 123
billing_id: 456
}
...
}
}
...
}
...
تعیین دستههای مسدودشده
وقتی پیشنهاد قیمت میدهید، عنصر خلاقانه گنجاندهشده نباید دستههایی را که ناشر مسدود کرده است شناسایی کرده باشد. درغیراینصورت، پیشنهاد قیمت از مزایده فیلتر میشود.
با مرور فیلد BidRequest.bcat که با دستههای موجود در
طبقهبندی
پیکربندیشده برای حسابتان تکمیل شده است، میتوانید دستههای مسدودشده را برای یک ظهور پیدا کنید.
مثال زیر دستههای مسدودشده را براساس طبقهبندی دسته آگهی پیکربندیشده نشان میدهد:
طبقهبندی محتوای IAB نسخه ۱.۰
// Bid request{// Indicates the blocked categories using IAB Content 1.0 Taxonomy."bcat":["IAB9-9",// Cigars"IAB8-18"// Wine]"imp":{...}}
طبقهبندی دسته آگهی Google
// Bid request{// Indicates the blocked categories using Google Ad Category Taxonomy."bcat":["10138",// Cigar and tobacco collecting"10080",// Tobacco"11649",// Wine"10674",// Wine collecting"13008"// Wine clubs]"imp":{...}}
تعیین دستههای زمینهای
درخواستهای قیمت پیشنهادی میتواند شامل فیلدهای دسته بافتی باشد که وبسایت یا برنامهای را که در آن
ظهور انجام میشود توصیف میکند. این فیلدها نیز از طبقهبندیهای دسته آگهی استفاده میکنند، اما بهجای محدودیتهای طرح آگهی، بافت ظهور را نشان میدهند. این فیلدها ممکن است از همان ردهبندی فیلد BidRequest.bcat استفاده نکنند. Google یا ناشر میتوانند این دستههای بافتاری را ارائه دهند. استفاده از دستههای زمینهای ممکن است ارزیابی ظهور، هدفیابی زمینهای، و ایمنی نمانام شما را بهبود دهد.
دستههای بافتاری شناساییشده توسط Google
Google فیلدهای زیر را با دستههای محتوای IAB شناساییشده برای سایت، برنامه، یا صفحه پر میکند:
فیلد
شرح
BidRequest.site.cat
آرایهای از شناسههای دسته محتوا که سایت را توصیف میکند.
BidRequest.site.pagecat
آرایهای از شناسههای دسته محتوا که صفحه یا نمای فعلی سایت را توصیف میکند.
BidRequest.app.cat
آرایهای از شناسههای دسته محتوا که برنامه را توصیف میکند.
BidRequest.app.pagecat
آرایهای از شناسههای دسته محتوا که صفحه یا نمای فعلی برنامه را توصیف میکند.
میتوانید طبقهبندی دقیق استفادهشده برای این فیلدها را برای درخواست قیمت پیشنهادی معینی در فیلدهای
BidRequest.site.cattax یا BidRequest.app.cattax پیدا کنید. ممکن است فیلدهای دستهبندی زمینهای بهدلیل اولویتهای ناشر یا نگرانیهای نظارتی همیشه پر نشوند.
برای اطلاعات بیشتر،
دستههای زمینهای OpenRTB
در Google Ad Manager را ببینید.
نشانهای ناشرداده
علاوهبر دستههای زمینهای شناساییشده توسط Google، درخواستهای قیمت پیشنهادی ممکن است حاوی نشانهای ارائهشده توسط ناشر نیز باشد که زمینه ظهور را نیز توصیف میکند. برخلاف
دستههای زمینهای شناساییشده توسط Google، این نشانها فقط زمانی درج میشوند که توسط
ناشر ارائه شوند. این نشانها در BidRequest.site.content و
BidRequest.app.content ارسال میشوند، مثل content.data.segment و
content.genre. ردهبندی استفادهشده برای ورودیهای content.data.segment
در content.data.ext.segtax گزارش شده است. برای اطلاعات بیشتر، به
نشانهای ناشرداده
(PPS) برای مناقصه همزمان (RTB) مراجعه کنید.
فایلهای واژهنامه
درخواست پیشنهاد قیمت از شناسههای تعریفشده در فایلهای واژهنامه استفاده میکند که در صفحه دادههای مرجع دردسترس است.
ماکروهای نشانی وب پیشنهاددهنده
بهطور اختیاری، برخیاز اطلاعات BidRequest را میتوان
بااستفاده از ماکروها در نشانیهای وب نقطه پایانی پیشنهاد قیمت درج کرد. اگر نشانی وب نقطه پایانی را با یک یا چند ماکرو پیکربندی کنید، درصورت وجود آن اطلاعات در درخواست پیشنهاد قیمت، ماکروها گسترش خواهند یافت. این کار میتواند مفید باشد، برای مثال، اگر میخواهید
توازن بار را براساس اطلاعات موجود در BidRequest انجام دهید.
برای درخواست پشتیبانی از ماکروهای جدید، با مدیر حسابتان تماس بگیرید.
ماکرو
شرح
%%GOOGLE_USER_ID%%
با «شناسه کاربر Google» موجود در
BidRequest.user.id جایگزین شد. برای مثال، نشانی وب پیشنهاددهنده
http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%% با چیزی شبیه
http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl در زمان درخواست
جایگزین خواهد شد.
اگر «شناسه کاربر Google» ناشناخته باشد، رشته خالی جایگزین میشود و
نتیجهای مشابه با این بهدست میآید
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
با 1 جایگزین میشود تا نشان دهد درخواست پیشنهاد قیمت از دستگاه همراه است، درغیراینصورت با 0 جایگزین میشود. این براساس مقدار
BidRequest.device.devicetype است، که در آن دستگاههای همراه با
HIGHEND_PHONE (4) یا Tablet
(5) نشان داده میشوند.
%%HAS_VIDEO%%
با 1 جایگزین میشود تا نشان دهد درخواست پیشنهاد قیمت حاوی فضای آگهی ویدیویی است، درغیراینصورت با 0 جایگزین میشود. این براساس پر شدن یا پر نشدن
BidRequest.imp.video در درخواست قیمت پیشنهادی است.
%%IS_CTV%%
با 1 جایگزین شده است تا نشان دهد که درخواست قیمت پیشنهادی از دستگاه
تلویزیون هوشمند است، یا درغیراینصورت 0. این براساس مقدار
BidRequest.device.devicetype است. برای Protobuf، دستگاههای تلویزیون متصلشده عبارتاند از
CONNECTED_TV، CONNECTED_DEVICE، یا
SET_TOP_BOX، که با مقادیر عدد صحیح 3،
6، یا 7 برای JSON مطابقت دارند.
%%HOSTED_MATCH_DATA%%
با مقداری براساس BidRequest.user.buyeruid جایگزین شد.
%%MOBILE_IS_APP%%
با 1 جایگزین شده است تا نشان دهد درخواست پیشنهاد قیمت برای
فضای آگهی برنامه تلفن همراه است، یا درغیراینصورت 0. این مورد براساس این است که آیا
BidRequest.app پر شده است یا نه.
پیدا کردن شناسه برنامه تلفن همراه از نشانی وب تراکنش
تراکنشهای برنامه تلفن همراه نشانیهای وبی را گزارش میکنند که شبیه این است:
mbappgewtimrzgyytanjyg4888888.com
از رمزگشای ۳۲پایهای برای رمزگشایی بخش پررنگ رشته استفاده کنید
(gewtimrzgyytanjyg4888888).
میتوانید از رمزگشای آنلاین استفاده کنید، اما باید حروف را بزرگ کنید و 8های انتهایی را با مقادیر = جایگزین کنید.
بنابراین، رمزگشایی این مقدار:
GEWTIMRZGYYTANJYG4======
منجر به این موارد میشود:
1-429610587
رشته 429610587 شناسه برنامه برای برنامه iOS
iFunny است.
این هم مثالی دیگر. نشانی وب گزارششده این است:
mbappgewtgmjug4ytmmrtgm888888.com
رمزگشایی این مقدار:
GEWTGMJUG4YTMMRTGM======
نتیجهها در:
1-314716233
نتیجه 314716233 شناسه برنامه برای برنامه iOS
TextNow است.
پیدا کردن نام برنامه تلفن همراه از نشانی وب تراکنش
در اینجا مثالی از دریافت نام برنامه آورده شده است. نشانی وب گزارششده بهصورت زیر است:
درخواستهای قیمت پیشنهادی که به پیشنهاددهندگان قیمت مبادله و شبکه شرکتکننده در «مناقصه باز» ارسال میشود مشابه درخواستهای «خریداران مجاز» شرکتکننده در «مناقصه قیمت پیشنهادی همزمان» استاندارد است. مشتریان «مناقصه باز» تعداد کمی فیلد اضافی دریافت خواهند کرد و چند فیلد موجود ممکن است کاربردهای جایگزین داشته باشند. این موارد
شامل موارد زیر است:
OpenRTB
جزئیات
BidRequest.imp.ext.dfp_ad_unit_code
شامل کد شبکه ناشر Ad Manager و بهدنبال آن سلسلهمراتب واحد آگهی است که با خط مورب از هم جدا شدهاند.
بهعنوان مثال، این مورد با قالببندی مشابه زیر نشان داده میشود:
/1234/cruises/mars.
BidRequest.user.data.segment
جفتهای کلید-مقدار تکراری از ناشر به پیشنهاددهنده مبادله ارسال شد.
میتوانید تعیین کنید که مقادیر جفتهای کلید-مقدار ارسالی ازسوی ناشر باشد، وقتی BidRequest.user.data.name روی
“Publisher Passed” تنظیم شده باشد.
اعلام کردن فروشندگان مجاز
فروشندگان فناوری که خدماتی مانند پژوهش، بازاریابی مجدد، و ارائه آگهی ارائه میدهند ممکن است در تعامل بین خریداران و فروشندگان نقش داشته باشند. فقط فروشندگانی که Google برای شرکت در تعاملات «خریداران مجاز» بررسی کرده است مجاز هستند.
برای درک BidRequest و ایجاد
BidResponse، باید از دو احتمال متفاوت برای اعلام فروشندگان فناوری آگاه باشید:
فروشندگان دیگر فقط درصورتی میتوانند مشارکت کنند که در
BidRequest اعلام شده باشند:
در BidRequest، فیلد BidRequest.imp.ext.allowed_vendor_type مشخص میکند که فروشنده کدام فروشندگان را مجاز میداند. فروشندگانی که در
allowed_vendor_type ارسال خواهند شد در
vendors.txt
فایل واژهنامه فهرست شدهاند.
نمونه درخواست قیمت پیشنهادی
مثالهای زیر نمونههای قابلخواندن برای انسان از درخواستهای Protobuf و JSON را نشان میدهند.
برای تبدیل درخواست قیمت پیشنهادی به شکل باینری، مانند آنچه از
پایهبار POST در یک درخواست واقعی دریافت میکنید، میتوانید کارهای زیر را انجام دهید (در C++). بااینحال، توجه داشته باشید که این کار برای OpenRTB JSON کاربرد ندارد.
بازخورد همزمان برای «خریداران مجاز» و همچنین صرافیها و شبکههایی که از «مناقصه باز» استفاده میکنند دردسترس است.
بازخورد همزمان براساس نتیجه یک یا چند پیشنهاد قیمتی که قبلاً دادهاید، BidRequest.ext.bid_feedback را پر میکند و میتوان از آن برای یافتن جزئیاتی مانند اینکه آیا پیشنهاد قیمت برنده مزایده شده است یا حداقل پیشنهاد قیمت لازم برای برنده شدن در مزایده استفاده کرد. برای فعال کردن بازخورد بلادرنگ، با مدیر حسابتان تماس بگیرید.
علاوهبر فیلدهای پیشفرضی که در «بازخورد پاسخ قیمت پیشنهادی» ارسال میشود، میتوانید
دادههای سفارشی را نیز بااستفاده از فیلد
BidResponse.seatbid.bid.ext.event_notification_token در پاسخ قیمت پیشنهادی ارسال کنید. event_notification_token دادههای دلخواهی است که فقط برای پیشنهاددهنده شناختهشده است و ممکن است به اشکالزدایی کمک کند، برای مثال: شناسه هدفیابی جدید یا شناسه پیشنهاد قیمت جدید که نشاندهنده تاکتیک جدید است، یا فراداده مرتبط با طرح آگهی که فقط برای پیشنهاددهنده شناختهشده است. برای جزئیات،
فایل بافر پروتکل «افزونههای OpenRTB» را ببینید.
وقتی Authorized Buyers درخواست پیشنهاد قیمت به مناقصهگر ارسال میکند، مناقصهگر با BidResponse پاسخ میدهد. اگر پیشنهاددهنده بازخورد همزمان را فعال کرده باشد،
در درخواست پیشنهاد قیمت بعدی، «خریداران مجاز» بازخوردی درباره
پاسخ در پیام BidFeedback ارسال میکند:
messageBidFeedback{//TheuniqueidfromBidRequest.id.optionalstringrequest_id=1;//Thestatuscodeforthead.Seecreative-status-codes.txtinthe//technicaldocumentationforalistofids.optionalint32creative_status_code=2;//Deprecated.ThisfieldisnotpopulatedandwillberemovedafterMarch,//2025.Ifthebidwontheauction,thisisthepricepaidinyouraccount//currency.Ifthebidparticipatedintheauctionbutwasout-bid,this//istheCPMthatshouldhavebeenexceededinordertowin.Thisisnot//setifthebidwasfilteredpriortotheauction,ifthepublisheror//winningbidderhasoptedoutofpricefeedbackorifyouraccounthas//optedoutofsharingwinningpriceswithotherbidders.Forfirst-price//auctions,minimum_bid_to_winispopulatedinsteadofthisfield.optionaldoubleprice=3[deprecated=true];//Theminimumbidvaluenecessarytohavewontheauction,inyouraccount//currency.Ifyourbidwontheauction,thisisthesecondhighestbid//thatwasnotfiltered(includingthefloorprice).Ifyourbiddidn't win//theauction,thisisthewinningcandidate's bid. This field will only be//populatedifyourbidparticipatedinafirst-priceauction,andwillnot//bepopulatedifyourbidwasfilteredpriortotheauction.optionaldoubleminimum_bid_to_win=6;//Billableeventratemultiplierthatwasappliedtothisbidduring//ranking.Theadjustmentreflectsthelikelihoodthatyourbidwould//generateabillableevent(namely,theadrenderssuccessfully)ifitwon//theauction,relativetotheprobabilitythatotherbidsgeneratea//billableeventiftheywontheauction.Thisadjustmentcanbelargeror//smallerthan1.Thisaffectsthefinalrankingintheauctiononly;in//particular,thismultiplierdoesnotaffectthepaymentorwhetherthe//bidclearsanyfloorprice.optionalfloatbillable_event_rate_bid_adjustment=13[default=1];//WhenapublisherusesanRTBauctionandwaterfall-basedSDKmediationon//thesamequery,thewinnerofthereal-timeauctionmustalsocompetein//amediationwaterfall(whichisorderedbyprice)towintheimpression.//Ifthebidparticipatedintheauctionandtherewasnowaterfall,the//valueofthisfieldis0.Ifthebidparticipatedintheauctionand//therewasawaterfall,thevalueofthisfieldisapricerepresentinga//samplebidfromtheeligiblemediationnetworksthatwerehigherthanthe//auctionwinner,weightedbyexpectedfillrate.Thisfieldcanbeused//inconjunctionwithminimum_bid_to_wintotrainbiddingmodels.TheCPM//isinyouraccountcurrency.optionaldoublesampled_mediation_cpm_ahead_of_auction_winner=8;messageEventNotificationToken{//Thecontentsofthetoken.optionalstringpayload=1;}//Thetokenincludedinthecorrespondingbid.optionalEventNotificationTokenevent_notification_token=4;//ThecreativeIDincludedinthecorrespondingbid.optionalstringbuyer_creative_id=5;}
از این پیام، اولین فیلدی که باید بررسی کنید
bid_feedback.creative_status_code است؛ میتوانید معنای کد را در
creative-status-codes.txt پیدا کنید. توجه داشته باشید که اگر در مزایده برنده شوید، میتوانید از
ارائه بازخورد قیمت انصراف دهید. برای اطلاعات بیشتر، به نحوه انصراف مراجعه کنید.
بازخورد همزمان شامل شناسه درخواست قیمت پیشنهادی و یکی از موارد زیر است:
نتیجه مزایده
بازخورد همزمان
خریدار پیشنهاد قیمت ارسال نکرد.
هیچچیز.
خریدار پیشنهاد قیمتی ارسال کرده است که قبلاز رسیدن به مزایده فیلتر شده است.
پساز پیشنهاد قیمت در حراج قیمت اول، بازخورد بیدرنگ شامل فیلدهای minimum_bid_to_win و sampled_mediation_cpm_ahead_of_auction_winner دریافت خواهید کرد، اگر پیشنهاد قیمت از حراج فیلتر نشده باشد. از این نشانها میتوان برای اطلاعرسانی به منطق پیشنهاد قیمت شما درباره اینکه پیشنهاد قیمت شما چقدر میتوانست بالاتر یا پایینتر باشد تا برنده ظهور شود استفاده کرد.
minimum_bid_to_win: حداقل قیمت پیشنهادی که میتوانست برای برنده شدن در مزایده بیدرنگ ارائه شود. اگر برنده مزایده شده باشید، این کمترین قیمت پیشنهادی است که میتوانستید ارائه دهید و همچنان برنده شوید. اگر مزایده را باخته باشید، این مقدار پیشنهاد برنده خواهد بود.
sampled_mediation_cpm_ahead_of_auction_winner: اگر شبکههای دیگری در زنجیره میانجیگری وجود داشته باشد، مقدار این فیلد قیمتی است که نشاندهنده نمونه قیمت پیشنهادی از یکی از شبکههای میانجیگری واجدشرایط است که بالاتر از برنده مزایده بوده و براساس نرخ تکمیل موردانتظار وزندهی شده است. اگر هیچیک از شبکههای موجود در زنجیره واسطهگری انتظار نداشته باشند که فضا را پر کنند، یا اگر ناشر از واسطهگری کیت توسعه نرمافزار استفاده نکند، این مقدار روی ۰ تنظیم خواهد شد.
روش کار
برای شرح محاسبات مورداستفاده برای تعیین مقادیر احتمالی
برای minimum_bid_to_win و
sampled_mediation_cpm_ahead_of_auction_winner، ابتدا باید
موارد زیر را تعریف کنیم:
موارد زیر نشاندهنده هزارظهوربها در زنجیره میانجیگری بهترتیب نزولی است:
\[C_1, C_2, …, C_n\]
موارد زیر نشاندهنده نرخهای تکمیل مربوطه برای CPMها در زنجیره میانجیگری است:
\[f_1, f_2, …, f_n\]
تابع زیر برای تعیین هزارظهوربهای موردانتظار و احتمال آن از عنصر زنجیره میانجی \(i\)، براساس نرخ تکمیل دادهشده استفاده میشود:
\(X_i = \{C_i\) با احتمال \(f_i\)؛ \(0\) با احتمال \(1 - f_i\}\)
زنجیره میانجیگری برنده نهایی این خواهد بود:
\[\{C_1, C_2, …, C_K, W\}\]
که در آن \(W\) پیشنهاد موفق است، و \(C_K > W >= C_{K+1}\)
قیمت ذخیره یا کف بهعنوان \(F\)نشان داده میشود.
پیشنهاد قیمت نفر دوم با \(R\)نشان داده میشود.
محاسبات برای برنده مزایده
فیلد
محاسبه
minimum_bid_to_win
\(max\{F, R, X_{K+1}, …, X_n\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(\{C_i\) با احتمال \(\prod_{j=1}^{i-1}(1-f_j) \cdot f_i \div \prod_{j=1}^{K}(1-f_j)\}\)
برای \(1 <= i <= K\).
محاسبات برای بازنده مزایده
فیلد
محاسبه
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(max\{X_1, …, X_K\}\)
مثال با زنجیره میانجیگری ساده
فرض کنید ناشری از هر دو پیشنهاد قیمت همزمان و زنجیره واسطهگری کیت توسعه نرمافزار بهصورت زیر استفاده میکند:
زنجیره واسطهگری کیت توسعه نرمافزار
CPM موردانتظار
نرخ تکمیل شدن
شبکه ۱
\(C_1 = $3.00\)
\(f_1 = 5\%\)
شبکه ۲
\(C_2 = $2.00\)
\(f_2 = 45\%\)
شبکه ۳
\(C_3 = $0.50\)
\(f_3 = 80\%\)
شبکه ۴
\(C_4 = $0.10\)
\(f_4 = 85\%\)
فرض کنید نتیجه مزایده RTB بهصورت زیر باشد:
مزایده RTB
هزارظهوربها
برنده مزایده (W)
۱٫۰۰ دلار
برنده دوم مزایده (R)
۰٫۰۵ دلار
قیمت پایه / کف (F)
رایگان
قیمت پیشنهادی که در مزایده برنده شد
در زیر مثالی از نحوه محاسبه مقادیر و احتمالات برای
minimum_bid_to_win و
sampled_mediation_cpm_ahead_of_auction_winner برای
پیشنهاد قیمتی که برنده شده است آورده شده است.
در زیر مثالی از نحوه محاسبه مقادیر و احتمالات برای
minimum_bid_to_win و
sampled_mediation_cpm_ahead_of_auction_winner برای
پیشنهادهای قیمت باخته آورده شده است.
minimum_bid_to_win
احتمالات
\(max(F, W) = $1.00\)
\(100\%\)
sampled_mediation_cpm_ ahead_of_auction_winner
احتمالات
\(C_1 = $3.00\)
\(f_1 = 5\%\)
\(C_2 = $2.00\)
\((1-f_1) \cdot f_2 =~ 42.8\%\)
\(0\)
\((1-f_1) \cdot (1-f_2) =~ 52.2\%\)
تخت کردن قیمت پیشنهادی
تسطیح پیشنهاد قیمت پردازش یک درخواست پیچیده
BidRequest به چندین درخواست پیشنهاد قیمت را که به
برنامه شما ارسال میشود توصیف میکند. وقتی درخواست قیمت پیشنهادی مسطح میشود، میتوانید تشخیص دهید کدام درخواستهای قیمت پیشنهادی
بخشی از درخواست اصلی بودهاند زیرا مقدار یکسانی در فیلد
BidRequest.ext.google_query_id خواهند داشت.
مسطحسازی پیشنهاد قیمت بهطور پیشفرض فعال است، اما اگر ترجیح میدهید آن را غیرفعال کنید، میتوانید با مدیر حسابتان تماس بگیرید.
قالبهای آگهی
برخیاز فرصتهای آگهی میتوانند چندین قالب را بپذیرند. با مسطحسازی پیشنهاد قیمت، هر قالب در درخواست پیشنهاد قیمت متمایزی ارسال میشود که در آن ویژگیهایی مانند شناسههای صورتحساب واجدشرایط با قالب مشخصشده در درخواست مرتبط هستند.
درخواستهای قیمت پیشنهادی حاوی قالبهای زیر به درخواستهای قیمت پیشنهادی متمایز تبدیل میشوند:
برنما
ویدیو
صوتی
بومی
نمونه مسطحسازی قالب آگهی
در زیر نمونهای از درخواست قیمت پیشنهادی OpenRTB JSON سادهشده بدون مسطح کردن قالب آگهی در مقایسه با مجموعه معادل درخواستهای مسطحشده نشان داده شده است:
فرصت آگهی برای یک پیشنهاددهنده خاص میتواند علاوهبر مزایده آزاد، برای انواع مختلف معامله نیز قابلاجرا باشد. با مسطحسازی پیشنهاد قیمت برای معاملهها، یک درخواست پیشنهاد قیمت برای مزایده آزاد و یک درخواست برای هر نوع معامله با قیمت ثابت ارسال خواهد شد. در عمل، محدودیتهای آگهی میتواند بین مزایدهها و انواع معامله با قیمت ثابت متفاوت باشد، برای مثال، برای فرصت آگهی ویدیویی معینی که هم در مزایده باز و هم در معامله با قیمت ثابت دردسترس است، پیشنهاددهنده برای هرکدام درخواست پیشنهاد قیمت جداگانهای دریافت میکند که در آنها محدودیتهایی مثل حداکثر مدت آگهی و اینکه آیا آگهیهای ردشدنی مجاز هستند یا نه میتواند متفاوت باشد. درنتیجه، مسطحسازی اعمالشده بر فرصت آگهی به شما امکان میدهد محدودیتهای آگهی را برای مزایده باز و معامله قیمت ثابت راحتتر تشخیص دهید.
ردکردنی بودن و مدتزمان ویدیو
مشخصات OpenRTB فیلدهای جداگانهای برای تعیین حداکثر
مدت ویدیو آگهیهای ردشدنی و ردنشدنی ندارد. پیادهسازی Google
از مسطحسازی پیشنهاد قیمت برای تشخیص این موارد بااستفاده از فیلدهای موجود
BidRequest.video.maxduration و
BidRequest.video.skip استفاده میکند.
در زیر نمونهای از نحوه مسطح شدن فضای آگهی ویدیویی زمانی که حداکثر مدت آگهی ردنشدنی 15 و حداکثر مدت آگهی ردشدنی 60 باشد آورده شده است.
مثال
max_ad_duration
skip (درست یا نادرست)
درخواست اصلی بدون مسطحسازی
15
true
درخواست مسطحشده شماره ۱: ردنشدنی
15
false
درخواست مسطحشده شماره ۲: قابل رد شدن
60
true
مسطحسازی درخواست قیمت پیشنهادی مدتزمان ویدیو قابلردشدن فقط زمانی انجام میشود که
این شرایط برآورده شود:
درخواست اجازه ویدیو میدهد.
هر دو ویدیوهای ردشدنی و ردنشدنی مجاز هستند و دو حداکثر مدت مربوطه
در مقدار متفاوت هستند.
این درخواست برای «مزایده خصوصی» یا «مزایده باز» واجدشرایط است.
با تماس با مدیر فنی حسابتان میتوانید از این نوع مسطحسازی انصراف دهید. وقتی غیرفعال باشد و ناشر هم آگهیهای ویدیویی ردشدنی و هم ردنشدنی را با حداکثر مدتهای متفاوت براساس ردشدنی بودن مجاز کند،
skip روی true تنظیم میشود و
maxduration روی هرکدام از مدتها که بین محدودیتهای آگهی ردشدنی و ردنشدنی کوتاهتر باشد تنظیم میشود.
غلافهای ویدیو
درخواستهای پیشنهاد قیمت برای یک غلاف ویدیویی با چندین فرصت آگهی مسطح میشوند،
بهطوریکه هر درخواست پیشنهاد قیمت برای یک فرصت آگهی جداگانه از آن غلاف است.
این کار به شما امکان میدهد برای چندین فرصت آگهی در یک پاد مشخص پیشنهاد قیمت دهید.
باز کردن اندازهگیری
«سنجش باز» به شما امکان میدهد فروشندگان طرف سومی را مشخص کنید که خدمات سنجش و درستیسنجی مستقل برای آگهیهای ارائهشده به محیطهای برنامه تلفن همراه ارائه میدهند.
میتوانید با بررسی اینکه فرصت آگهی ویژگی OmsdkType:
OMSDK 1.0 موجود در ویژگیهای طرحآگهی قابلکنارگذاری توسط ناشر را کنار میگذارد یا نه، تعیین کنید که آیا ناشر از «سنجش باز» در درخواست قیمت پیشنهادی پشتیبانی میکند یا نه. این مورد را میتوانید در مشخصه battr برای برنما یا ویدیو (بسته به قالب) پیدا کنید.
برای اطلاعات بیشتر درباره نحوه تفسیر کردن درخواستهای قیمت پیشنهادی حاوی نشانهای «اندازهگیری باز»، به مقاله «مرکز راهنمایی» کیت توسعه نرمافزار اندازهگیری باز مراجعه کنید.
درخواستهای قیمت پیشنهادی نمونه
بخشهای زیر نمونه درخواستهای پیشنهاد قیمت را برای انواع مختلف آگهی نشان میدهد.
تاریخ آخرین بهروزرسانی 2026-10-15 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2026-10-15 بهوقت ساعت هماهنگ جهانی."],[],["Bid requests are HTTP POSTs using OpenRTB Protobuf, replacing the deprecated Google RTB protocol. Parsing involves `ParseFromString()` to access fields in the `BidRequest` object. Billing IDs, found in `BidRequest.imp.ext.billing_id` and `BidRequest.imp.pmp.deal.ext.billing_id`, must be specified in `BidResponse.seatbid.bid.ext.billing_id`. Key information comes from dictionary files. Bid URL macros dynamically insert `BidRequest` data. Complex bid requests can be broken into simpler, flattened requests per format or deal, such as skippable/non-skippable video ads, or video pods. Bidders get real-time feedback. The provided sample requests are used to help the process.\n"]]