קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
אינטראקציה של בידינג בזמן אמת מתחילה כש-Google שולחת בקשת הצעת מחיר לאפליקציה שלכם. במדריך הזה מוסבר איך לכתוב את הקוד של האפליקציה כדי לעבד את בקשת הצעת המחיר.
ניתוח הבקשה
Google שולחת בקשת הצעת מחיר בסריאליזציה בפורמטים של OpenRTB JSON או Protobuf, שמצורפת כמטען הייעודי של בקשת HTTP POST. הפורמט שמתקבל תלוי בהגדרה של נקודת הקצה. דוגמה מופיעה בקטע דוגמה לבקשת בידינג.
צריך לנתח את הבקשה הזו כדי לקבל את BidRequest בסריאליזציה. אם אתם משתמשים בפורמט Protobuf, עליכם להוריד את openrtb.proto ואת openrtb-adx.proto מהדף נתוני עזר ולהשתמש בהם כדי ליצור ספרייה שאפשר להשתמש בה כדי לנתח את ההודעה BidRequest. לדוגמה, הקוד הבא ב-C++ מנתח בקשה עם עומס נתונים (payload) של POST במחרוזת:
אחרי שתקבלו את BidRequest תוכלו לעבוד איתו כאובייקט, לחלץ את השדות הנחוצים ולפרש אותם. לדוגמה, ב-C++, איטרציה על עסקאות ב-`BidRequest` של OpenRTB עשויה להיראות כך:
אתם מקבלים בקשת הצעת מחיר כשמלאי שטחי הפרסום של בעל תוכן דיגיטלי מטרגט לפי אחד או יותר מ
ההגדרות של טירגוט מראש. השדה BidRequest.imp.ext.billing_id יאוכלס במזהי החיוב של כל הקונים שעומדים בדרישות, ובהגדרות הרלוונטיות של טירגוט מראש. בנוסף, במלאי שטחי הפרסום במבצע, אפשר למצוא מזהי חיוב שמשויכים לקונה הרלוונטי באמצעות BidRequest.imp.pmp.deal.ext.billing_id. כששולחים הצעת מחיר, אפשר לציין רק מזהי חיוב של קונים שכלולים בבקשת הצעת המחיר.
אם בקשת הצעת המחיר כוללת כמה מספרי לקוח לחיוב, צריך לציין את מספר הלקוח לחיוב של הקונה שאליו רוצים לשייך את הצעת המחיר באמצעות השדה BidResponse.seatbid.bid.ext.billing_id.
קובצי מילון
בקשת הצעת המחיר כוללת מזהים שמוגדרים בקובצי מילון, שזמינים בדף נתוני עזר.
מאקרו של כתובת URL של בידינג
אפשר גם להוסיף חלק מהמידע מ-BidRequest לכתובות ה-URL של נקודות הקצה לבידינג באמצעות מאקרו. אם מגדירים כתובת URL של נקודת קצה עם מאקרו אחד או יותר, הם ייפרסו אם המידע הזה נמצא בבקשת הצעת המחיר. הדבר יכול להיות שימושי, לדוגמה, אם רוצים לבצע איזון עומסים על סמך מידע ב-BidRequest.
כדי לבקש תמיכה במאקרו חדש, פנו למנהל החשבון שלכם.
Macro
תיאור
%%GOOGLE_USER_ID%%
מחליפים אותו במזהה המשתמש ב-Google שמופיע ב-BidRequest.user.id. לדוגמה, כתובת ה-URL של המשתתף במכרז 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 מאוכלס בבקשת הצעת המחיר.
%%HOSTED_MATCH_DATA%%
מוחלף בערך שמבוסס על BidRequest.user.buyeruid.
%%MOBILE_IS_APP%%
המאפיין הזה מוחלף ב-1 כדי לציין שהבקשה להצעת מחיר היא למלאי שטחי פרסום באפליקציות לנייד, או ב-0 במקרים אחרים. האפשרות הזו תלויה בכך ש-BidRequest.app מאוכלס.
איך למצוא את מזהה האפליקציה לנייד מכתובת ה-URL של העסקה
עסקאות באפליקציות לנייד ידווחו על כתובות URL שנראות כך:
mbappgewtimrzgyytanjyg4888888.com
משתמשים במפענח של בסיס 32 כדי לפענח את החלק של המחרוזת שמופיע בכתב מודגש (gewtimrzgyytanjyg4888888).
אפשר להשתמש במפענח אונליין, אבל תצטרכו להפוך את האותיות לאותיות רישיות ולהחליף את הערכים של 8 בסוף בערכי =.
כך מפענחים את הערך הזה:
GEWTIMRZGYYTANJYG4======
התוצאה:
1-429610587
המחרוזת 429610587 היא מזהה האפליקציה של אפליקציית iOS iFunny.
דוגמה נוספת: כתובת ה-URL שדווחה היא:
mbappgewtgmjug4ytmmrtgm888888.com
פענוח הערך הזה:
GEWTGMJUG4YTMMRTGM======
התוצאה:
1-314716233
התוצאה 314716233 היא מזהה האפליקציה של אפליקציית iOS TextNow.
חיפוש שם האפליקציה לנייד מכתובת ה-URL של העסקה
דוגמה לאחזור שם האפליקציה. כתובת ה-URL שדווחה היא:
בקשות להצעות מחיר שנשלחות למשתתפים בבידינג ברשת וב-Exchange במסגרת Open Bidding דומות לבקשות של בעלי חשבון מורשים שמשתתפים בבידינג רגיל בזמן אמת. לקוחות Open Bidding יקבלו מספר קטן של שדות נוספים, ויכול להיות שיהיו שימושים חלופיים לכמה שדות קיימים. למשל:
OpenRTB
פרטים
BidRequest.imp.ext.dfp_ad_unit_code
מכיל את קוד הרשת של בעל האתר ב-Ad Manager, ואחריו את היררכיית יחידות המודעות, מופרדים בקו נטוי קדימה.
לדוגמה, הפורמט של השדה הזה יהיה דומה לזה:
/1234/cruises/mars.
BidRequest.user.data.segment
צמדי מפתח/ערך חוזרים שנשלחים מהבעלים של אתר החדשות למשתתף במכרז בזירת המסחר.
אפשר לקבוע שהערכים הם צמדי מפתח/ערך שנשלחים על ידי בעל התוכן הדיגיטלי כשהערך של BidRequest.user.data.name מוגדר כ-“Publisher Passed”.
הצהרה על ספקים מורשים
ספקי טכנולוגיה שמספקים שירותים כמו מחקר, שיווק מחדש והצגת מודעות עשויים למלא תפקיד באינטראקציה בין קונים למוכרים. רק ספקים שעברו בדיקה של Google כדי להשתתף באינטראקציות עם Authorized Buyers יכולים להשתתף.
כדי להבין את BidRequest וליצור את BidResponse, צריך להכיר את שתי האפשרויות השונות להצהרה על ספקי טכנולוגיה:
ספקים אחרים יכולים להשתתף רק אם הם מפורטים ב-BidRequest:
בשדה BidRequest, השדה BidRequest.imp.ext.allowed_vendor_type מציין את הספקים שהמוכר מאפשר. הספקים שיישלחו ב-allowed_vendor_type מפורטים בקובץ המילון vendors.txt.
דוגמה לבקשת הצעת מחיר
הדוגמאות הבאות מייצגות בקשות Protobuf ו-JSON שקריאות לבני אדם.
כדי להמיר את בקשת הצעת המחיר לפורמט בינארי, כמו שמקבלים מהמטען הייעודי (payload) של ה-POST בבקשה אמיתית, אפשר לבצע את הפעולות הבאות (ב-C++). עם זאת, חשוב לזכור שהשיטה הזו לא רלוונטית ל-JSON של OpenRTB.
משוב בזמן אמת זמין ל-Authorized Buyers, וגם לבורסות ולרשתות שמשתמשות ב-Open Bidding.
משוב בזמן אמת מאכלס את השדה BidRequest.ext.bid_feedback על סמך התוצאה של הצעת מחיר אחת או יותר שהגשת קודם. אפשר להשתמש במשוב הזה כדי למצוא פרטים כמו אם הצעת המחיר זכתה במכרז או מהי הצעת המחיר המינימלית שנדרשה כדי לזכות במכרז. כדי להפעיל את התכונה 'משוב בזמן אמת', צריך לפנות למנהל החשבון.
בנוסף לשדות ברירת המחדל שנשלחים במשוב על תגובת הצעת המחיר, אפשר גם לשלוח נתונים מותאמים אישית בתגובת הצעת המחיר באמצעות השדה BidResponse.seatbid.bid.ext.event_notification_token. השדה event_notification_token מכיל נתונים שרירותיים שידועים רק למגיש הצעות המחיר, ויכולים לעזור בניפוי באגים. לדוגמה: מזהה טירגוט חדש או מזהה בידינג חדש שמייצגים טקטיקה חדשה, או מטא-נתונים שמשויכים לקריאייטיב וידועים רק למגיש הצעות המחיר. פרטים נוספים זמינים בקובץ OpenRTB Extensions Protocol Buffer.
כשמערכת Authorized Buyers שולחת בקשה להצעת מחיר למגיש הצעות מחיר, המגיש משיב ב-BidResponse. אם המגיש של הצעות המחיר הפעיל משוב בזמן אמת, בבקשת הצעת מחיר הבאה, מערכת Authorized Buyers תשלח משוב על התגובה בהודעת 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;//Theminimumbidvaluenecessarytohavewontheserver-sidecomponentof//theoverallauctiongiventhattherewasalsoaninterestgroupbidding//componenttotheoverallauctionwhichranusingtheProtectedAudience//API.ThevalueisexpressedinCPMofthebuyeraccountcurrency.The//minimumbidtowinfortheoverallauction,includingbidsfromthe//server-sideandtheon-deviceinterestgroupcomponents,ispopulatedin//theminimum_bid_to_winfieldofthesameBidFeedbackobject.optionaldoublesscminbidtowin=14;//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;//Possibletypesofbidresponsefeedbackobjects.enumFeedbackType{FEEDBACK_TYPE_UNSPECIFIED=0;//Feedbackforabidthatwassubmittedonabidresponse.BID_FEEDBACK=1;//Feedbackforaninterestgroupbuyersubmittedonabidresponseto//particpateinaninterestgroupbiddingcomponentoftheauctionrun//usingtheProtectedAudienceAPI.INTEREST_GROUP_BUYER_FEEDBACK=2;}//ThetypeoftheBidFeedbackmessage.Googlewillsendseparate//BidFeedbackobjectsfor://a)Eachbidsubmittedonabidresponse//b)Eachbuyersubmittedonabidresponsetoparticpateinaninterest//groupbiddingcomponentoftheauctionrunusingtheProtectedAudience//API.optionalFeedbackTypefeedbacktype=15;//Originofaninterestgroupbuyerthatwasincludedinthebidresponse.//Thisfieldispopulatedonlyforfeedbackwhereabidderoptedinan//interestgroupbuyertoparticipateintheinterestgroupbidding//componentoftheoverallauctionrunusingtheProtectedAudienceAPI.//Tolearnmoreaboutorigins,seehttps://www.rfc-editor.org/rfc/rfc6454.//TolearnmoreaboutinterestgroupbiddingandtheProtectedAudience//API,see//https://developers.google.com/authorized-buyers/rtb/fledge-origin-trial.optionalstringbuyerorigin=16;//Thestatuscodeforthesubmittedinterestgroupbuyer.Thisfieldis//onlypopulatedinthefeedbackforaninterestgroupbuyerthatabidder//requestedtoenterintotheinterestgroupauctionthroughthebid//response.Individualcreativestatuscodesofbidssubmittedbythebuyer//intheon-deviceinterestgroupauctionarenotavailable.See//https://storage.googleapis.com/adx-rtb-dictionaries/interest-group-buyer-status-codes.txt//foralistofinterestgroupbuyerstatuscodes.optionalint32igbuyerstatus=17;}
בשדה הראשון בהודעה הזו, 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: אם יש רשתות אחרות בשרשרת בחירת הרשת, הערך בשדה הזה הוא מחיר שמייצג הצעת מחיר לדוגמה מאחד מהרשתות שעומדות בדרישות בתהליך בחירת הרשת שהיו גבוהות יותר מהזוכה במכרז, תוך שקלול לפי שיעור המילוי הצפוי. הערך הזה יוגדר כ-0 אם אף אחת מהרשתות בשרשרת בחירת הרשת לא צפויה למלא את הבקשה, או אם בעל התוכן הדיגיטלי לא משתמש בתהליך בחירת הרשת של SDK.
איך זה עובד
כדי לתאר את החישובים שמשמשים לקביעת הערכים האפשריים של minimum_bid_to_win ו-sampled_mediation_cpm_ahead_of_auction_winner, קודם צריך להגדיר את הדברים הבאים:
העלות לאלף חשיפות בשרשרת תהליך בחירת הרשת (Mediation) מוצגת בהמשך בסדר יורד:
\[C_1, C_2, …, C_n\]
בטבלה הבאה מוצגים שיעורי המילוי התואמים של העלות לאלף חשיפות בשרשרת בחירת הרשת:
\[f_1, f_2, …, f_n\]
זוהי פונקציה שמשמשת לקביעת העלות הצפויה לאלף חשיפות והסבירות שלה מרכיב שרשרת בחירת הרשת \(i\), על סמך שיעור המילוי שצוין:
\(X_i = \{C_i\) with probability \(f_i\); \(0\) with probability \(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\}\)
דוגמה עם שרשרת פשוטה של תהליך בחירת הרשת
נניח שבעל אפליקציה משתמש גם בבידינג בזמן אמת וגם בשרשרת בחירת רשת (Mediation) של SDK באופן הבא:
שרשרת לבחירת רשת ב-SDK
עלות צפויה לאלף חשיפות
קצב מילוי
רשת 1
\(C_1 = $3.00\)
\(f_1 = 5\%\)
רשת 2
\(C_2 = $2.00\)
\(f_2 = 45\%\)
רשת 3
\(C_3 = $0.50\)
\(f_3 = 80\%\)
רשת 4
\(C_4 = $0.10\)
\(f_4 = 85\%\)
נניח שהתוצאות הבאות הן תוצאות המכרז ב-RTB:
מכרז RTB
עלות לאלף חשיפות (CPM)
המשתתף שזכה במכרז (W)
4 ש"ח
המשתתף שהגיע למקום השני במכרז (R)
$0.05
מחיר מינימום (F)
0$
הצעת המחיר שזכתה במכרז
בהמשך מופיעה דוגמה לחישוב הערכים וההסתברויות של 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
Probability
\(max(F, W) = $1.00\)
\(100\%\)
sampled_mediation_cpm_ ahead_of_auction_winner
Probability
\(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.
יישור הצעות המחיר מופעל כברירת מחדל, אבל אם אתם מעדיפים להשבית אותו, תוכלו לפנות למנהל החשבון שלכם.
פורמטים של מודעות
בחלק מהזדמנויות להצגת מודעות אפשר להשתמש בכמה פורמטים. כשמשתמשים בקיפול הצעות המחיר, כל פורמט נשלח בבקשת הצעה נפרדת, שבה מאפיינים כמו מזהי חיוב שעומדים בדרישות רלוונטיים לפורמט שצוין בבקשה.
בקשות להצעת מחיר שמכילות את הפורמטים הבאים יתחלקו לבקשות נפרדות להצעת מחיר:
מודעת באנר
וידאו
אודיו
מותאם
דוגמה לביטול הרלוונטיות של פורמטים של מודעות
בהמשך מוצגת דוגמה לבקשת הצעת מחיר פשוטה בפורמט JSON של OpenRTB ללא שטחת פורמט מודעה, בהשוואה לקבוצה מקבילה של בקשות שטוחות:
הזדמנות להצגת מודעה של מציע מסוים יכולה לחול על סוגים שונים של עסקאות, בנוסף למכרז הפתוח. כשמשתמשים ב'יישור הצעות מחיר' בעסקאות, נשלחת בקשה אחת להצעת מחיר למכרז הפתוח, ובקשה אחת לכל סוג של עסקה במחיר קבוע. בפועל, אילוצים על מודעות יכולים להיות שונים בין סוגי המכרזים לבין סוגי העסקאות במחיר קבוע. לדוגמה, לגבי הזדמנות נתונה להצגת מודעות וידאו שזמינה גם במכרז הפתוח וגם בעסקה במחיר קבוע, מציע המחיר יקבל בקשות שונות להצעת מחיר לכל אחת מהן, שבהן יכולים להיות אילוצים שונים, כמו משך זמן מודעה מקסימלי והאם מותר להציג מודעות שניתן לדלג עליהן. כתוצאה מכך, כשמפעילים את התכונה 'שיטת עיבוד נתונים רגילה' על הזדמנות הפרסום, קל יותר להבחין במגבלות הפרסום במכרז הפתוח ובעסקה במחיר קבוע.
אפשרות לדלג על הסרטון וממשך הסרטון
במפרט OpenRTB אין שדות נפרדים לציון משכי הזמן המקסימליים של מודעות וידאו שניתן לדלג עליהן ושל מודעות וידאו שלא ניתן לדלג עליהן. בהטמעה של Google נעשה שימוש בקיפול הצעות מחיר כדי להבחין בין שתי האפשרויות האלה באמצעות השדות הקיימים BidRequest.video.maxduration ו-BidRequest.video.skip.
הדוגמה הבאה ממחישה איך מלאי שטחי הפרסום בסרטונים מוצג כשטח שטוח כשאורך המודעה המקסימלי שלא ניתן לדלג עליה הוא 15 ואורך המודעה המקסימלי שניתנת לדלג עליה הוא 60.
דוגמה
max_ad_duration
skip (true OR false)
הבקשה המקורית ללא שטחתה
15
true
בקשה מפוצלת מס' 1: מודעה שלא ניתן לדלג עליה
15
false
בקשה מפוצלת מס' 2: אפשר לדלג עליה
60
true
פיצול בקשות להצעות מחיר לפי משך הזמן של מודעות וידאו שניתן לדלג עליהן יתבצע רק אם מתקיימים התנאים הבאים:
הבקשה מאפשרת פרסום סרטונים.
מותר להשתמש גם בסרטונים שניתן לדלג עליהם וגם בסרטונים שלא ניתן לדלג עליהם, והערכים של משך הזמן המקסימלי שלהם שונים.
הבקשה הזו עומדת בדרישות להשתתפות במכרז פרטי או במכרז פתוח.
כדי לבטל את ההסכמה לשימוש בסוג הזה של שטחת נתונים, תוכלו לפנות למנהל החשבונות הטכני שלכם. כשהאפשרות הזו מושבתת, ובעל התוכן הדיגיטלי מאפשר להציג גם מודעות וידאו שניתן לדלג עליהן וגם מודעות וידאו שלא ניתן לדלג עליהן, עם אורך מקסימלי שונה בהתאם לאפשרות לדלג, הערך של skip יהיה true והערך של maxduration יהיה האורך הקצר יותר מבין האילוצים של מודעות שניתן לדלג עליהן ושל מודעות שלא ניתן לדלג עליהן.
רצפי סרטונים
בקשות להצעות מחיר לרצף סרטונים עם כמה הזדמנויות להצגת מודעות מוצגות בצורה רגילה, כך שכל בקשה להצעת מחיר היא עבור הזדמנות ספציפית להצגת מודעה מהרצף הזה.
כך תוכלו להגיש הצעות מחיר על כמה הזדמנויות להצגת מודעות במודעת פוד נתונה.
Open Measurement
Open Measurement מאפשר לכם לציין ספקי צד שלישי שמספקים שירותי מדידה ואימות עצמאיים של מודעות שמוצגות בסביבות של אפליקציות לנייד.
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-09-04 (שעון UTC)."],[[["\u003cp\u003eBid requests are sent as HTTP POST requests with a binary payload in Protobuf format, and they are parsed into a \u003ccode\u003eBidRequest\u003c/code\u003e object for access.\u003c/p\u003e\n"],["\u003cp\u003eBilling IDs, which are essential for transactions, are provided in specific fields of the \u003ccode\u003eBidRequest\u003c/code\u003e and must be used in corresponding bids.\u003c/p\u003e\n"],["\u003cp\u003eReal-time feedback, available in subsequent bid requests, offers details like creative status codes and minimum bid amounts, including a custom \u003ccode\u003eevent_notification_token\u003c/code\u003e for debugging.\u003c/p\u003e\n"],["\u003cp\u003eFirst-price auction bidding models utilize \u003ccode\u003eminimum_bid_to_win\u003c/code\u003e and \u003ccode\u003esampled_mediation_cpm_ahead_of_auction_winner\u003c/code\u003e feedback signals to help adjust bidding strategies.\u003c/p\u003e\n"],["\u003cp\u003eBid flattening separates complex \u003ccode\u003eBidRequest\u003c/code\u003e data into multiple requests based on ad formats, deals, and video ad types, all identifiable by a shared \u003ccode\u003egoogle_query_id\u003c/code\u003e.\u003c/p\u003e\n"]]],["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"],null,[]]