Gerçek zamanlı teklif etkileşimi, Google uygulamanıza bir teklif isteği gönderdiğinde başlar. Bu kılavuzda, teklif isteğini işlemek için uygulamanızı nasıl kodlayacağınız açıklanmaktadır.
İsteği ayrıştırma
Google, bir HTTP POST isteğinin yükü olarak OpenRTB JSON veya Protobuf biçimlerinde serileştirilmiş bir teklif isteği gönderir. Alınan biçim, uç noktanızın yapılandırmasına bağlıdır. Örnek için Örnek teklif isteği bölümüne bakın.
Serileştirilmiş BidRequest'ü almak için bu isteği ayrıştırmanız gerekir. Protobuf biçimini kullanıyorsanız Referans verileri sayfasından openrtb.proto ve openrtb-adx.proto dosyalarını indirip BidRequest iletisini ayrıştırmak için kullanılabilecek bir kitaplık oluşturmak üzere bu dosyaları kullanmanız gerekir. Örneğin, aşağıdaki C++ kodu, bir dizedeki POST yükü verilen bir isteği ayrıştırır:
BidRequest'yi aldıktan sonra, ihtiyacınız olan alanları ayıklayıp yorumlayarak bir nesne olarak kullanabilirsiniz. Örneğin, C++'ta bir OpenRTB "BidRequest"indeki fırsatlar arasında iterasyon yapmak aşağıdaki gibi görünebilir:
Bir yayıncının reklam envanteri,
ön hedefleme yapılandırmalarınızdan biri veya daha fazlası tarafından hedeflendiğinde teklif isteği alırsınız. BidRequest.imp.ext.billing_id, uygun tüm alıcıların faturalandırma kimlikleriyle ve alakalı ön hedefleme yapılandırmalarıyla doldurulur. Ayrıca, anlaşma envanteri için BidRequest.imp.pmp.deal.ext.billing_id kullanarak ilgili alıcıyla ilişkili faturalandırma kimliklerini bulabilirsiniz. Teklif verirken yalnızca teklif isteğine dahil edilen alıcıların faturalandırma kimlikleri belirtilebilir.
Teklif isteğine birden fazla faturalandırma kimliği dahil edilmişse teklifinizi ilişkilendirmek istediğiniz alıcının faturalandırma kimliğini BidResponse.seatbid.bid.ext.billing_id alanıyla belirtmeniz gerekir.
Sözlük dosyaları
Teklif isteği, sözlük dosyalarında tanımlanan ve referans verileri sayfasında bulunan tanımlayıcıları kullanır.
Teklif veren URL makroları
İsteğe bağlı olarak, BidRequest içindeki bazı bilgiler makrolar kullanılarak teklif verme uç noktası URL'lerine eklenebilir. Bir uç nokta URL'sini bir veya daha fazla makroyla yapılandırırsanız bu bilgiler teklif isteğinde mevcutsa makrolar genişletilir. Bu, örneğin BidRequest içindeki bilgilere göre yük dengeleme yapmak istiyorsanız yararlı olabilir.
Yeni makrolar için destek istemek üzere hesap yöneticinizle iletişime geçin.
Makro
Açıklama
%%GOOGLE_USER_ID%%
BidRequest.user.id bölümünde bulunan Google kullanıcı kimliğiyle değiştirilir. Örneğin, teklif veren URL'si http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%%, istek sırasında http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl gibi bir URL ile değiştirilir.
Google kullanıcı kimliği bilinmiyorsa boş dize kullanılır ve
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
Teklif isteğinin mobil cihazdan geldiğini belirtmek için 1 ile değiştirilir. Aksi takdirde 0 ile değiştirilir. Bu, BidRequest.device.devicetype değerine dayanır. Mobil cihazlar HIGHEND_PHONE (4) veya Tablet (5) ile gösterilir.
%%HAS_VIDEO%%
Teklif isteğinin video envanteri içerdiğini belirtmek için 1 ile değiştirilir. Aksi takdirde 0 ile değiştirilir. Bu, BidRequest.imp.video değerinin teklif isteğinde doldurulup doldurulmadığına bağlıdır.
%%HOSTED_MATCH_DATA%%
BidRequest.user.buyeruid değerine göre bir değerle değiştirilir.
%%MOBILE_IS_APP%%
Teklif isteğinin mobil uygulama envanteri için olduğunu belirtmek üzere 1 ile değiştirilir. Aksi takdirde 0 ile değiştirilir. Bu, BidRequest.app değerinin doldurulup doldurulmadığına bağlıdır.
İşlem URL'sinden mobil uygulama kimliğini bulma
Mobil uygulama işlemleri aşağıdaki gibi görünen URL'leri raporlar:
mbappgewtimrzgyytanjyg4888888.com
Dizenin kalın yazılmış (gewtimrzgyytanjyg4888888) kısmının kodunu çözmek için 32'lik taban kod çözücü kullanın.
Online bir kod çözücü kullanabilirsiniz ancak harfleri büyük harfle yazmanız ve son 8 değerlerini = değerleriyle değiştirmeniz gerekir.
Bu değerin kodunu çözelim:
GEWTIMRZGYYTANJYG4======
sonuçlanır:
1-429610587
429610587 dizesi, iOS uygulaması iFunny için uygulama kimliğidir.
Başka bir örnek verelim. Bildirilen URL:
mbappgewtgmjug4ytmmrtgm888888.com
Bu değerin kodunu çözme:
GEWTGMJUG4YTMMRTGM======
sonuçlanır:
1-314716233
314716233 sonucu, iOS uygulaması TextNow için uygulama kimliğidir.
İşlem URL'sinden mobil uygulama adını bulma
Uygulama adını alma örneğini aşağıda görebilirsiniz. Bildirilen URL şu şekildedir:
Sonuç, slither.io adlı Android uygulamasına karşılık gelir.
Open Bidding alanları
Open Bidding'e katılan exchange ve ağ teklif verenlere gönderilen teklif istekleri, standart gerçek zamanlı teklif vermeye katılan Authorized Buyers'ın isteklerine benzer. Open Bidding müşterilerine az sayıda ek alan sunulur ve mevcut alanların birkaçının alternatif kullanımları olabilir. Bu politikalar aşağıdakileri içerir:
OpenRTB
Ayrıntılar
BidRequest.imp.ext.dfp_ad_unit_code
Yayıncının Ad Manager ağ kodunu ve ardından reklam birimi hiyerarşisini eğik çizgilerle ayrılmış şekilde içerir.
Örneğin, bu şuna benzer bir biçimlendirmeyle görünür:
/1234/cruises/mars.
BidRequest.user.data.segment
Yayıncıdan exchange teklif verene gönderilen yinelenen anahtar/değer çiftleri.
BidRequest.user.data.name“Publisher Passed” olarak ayarlandığında değerlerin yayıncı tarafından gönderilen anahtar/değer çiftleri olduğunu belirleyebilirsiniz.
İzin verilen tedarikçi firmaları bildirme
Araştırma, yeniden pazarlama ve reklam sunma gibi hizmetler sunan teknoloji tedarikçileri, alıcılar ile satıcılar arasındaki etkileşimde rol oynayabilir. Yalnızca Google'ın Authorized Buyers etkileşimlerine katılım için denetlediği tedarikçi firmalara izin verilir.
BidRequest'ü anlamak ve BidResponse'unuzu oluşturmak için teknoloji tedarikçi firmalarını bildirmeyle ilgili iki farklı seçeneği bilmeniz gerekir:
Teklif isteğini, gerçek bir istekteki POST yükü gibi ikili bir forma dönüştürmek için aşağıdakileri (C++) yapabilirsiniz. Ancak bunun OpenRTB JSON için geçerli olmadığını unutmayın.
Gerçek zamanlı geri bildirim, Authorized Buyers'ın yanı sıra Open Bidding kullanan exchange'ler ve ağlar tarafından kullanılabilir.
Anlık geri bildirim, daha önce verdiğiniz bir veya daha fazla teklifin sonucuna göre BidRequest.ext.bid_feedback alanını doldurur ve teklifin açık artırmayı kazanıp kazanmadığı veya açık artırmayı kazanmak için gereken minimum teklif gibi ayrıntıları bulmak için kullanılabilir. Gerçek zamanlı geri bildirimi etkinleştirmek için hesap yöneticinizle iletişime geçin.
Teklif Yanıtı Geri Bildirimi'nde gönderilen varsayılan alanlara ek olarak, BidResponse.seatbid.bid.ext.event_notification_token alanını kullanarak teklif yanıtında özel veriler de gönderebilirsiniz. event_notification_token, yalnızca teklif verenin bildiği ve hata ayıklama işlemine yardımcı olabilecek rastgele verilerdir. Örneğin: yeni bir taktiği temsil eden yeni bir hedefleme kimliği veya teklif verme kimliği ya da yalnızca teklif verenin bildiği, reklam öğesiyle ilişkili meta veriler. Ayrıntılar için OpenRTB Uzantıları Protokolü Arabellek dosyasına bakın.
Authorized Buyers bir teklif verene teklif isteği gönderdiğinde teklif veren BidResponse ile yanıt verir. Teklif verenin gerçek zamanlı geri bildirimi etkinse Authorized Buyers, sonraki bir teklif isteğinde yanıtla ilgili geri bildirimi BidFeedback mesajında gönderir:
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;}
Bu mesajda kontrol etmeniz gereken ilk alan bid_feedback.creative_status_code'tür. Kodun anlamını
creative-status-codes.txt dosyasında bulabilirsiniz. Teklifi kazanırsanız fiyat geri bildirimini devre dışı bırakabileceğinizi unutmayın. Daha fazla bilgi için Kapsam dışında kalmayı seçme başlıklı makaleyi inceleyin.
Gerçek zamanlı geri bildirim, teklif isteği kimliğini ve aşağıdakilerden birini içerir:
Açık artırma sonucu
Gerçek zamanlı geri bildirim
Alıcı teklif göndermedi.
Hiç.
Alıcı, açık artırmaya ulaşmadan önce filtrelenen bir teklif gönderdi.
İlk fiyat açık artırmaları için teklif verme modeli oluşturma
İlk fiyat açık artırmasında teklif verdikten sonra, teklif açık artırmadan filtrelenmemişse minimum_bid_to_win ve sampled_mediation_cpm_ahead_of_auction_winner alanlarını içeren gerçek zamanlı geri bildirim alırsınız. Bu sinyaller, gösterimi kazanmak için teklifinizin ne kadar daha yüksek veya düşük olabileceği konusunda teklif mantığınıza bilgi vermek için kullanılabilir.
minimum_bid_to_win: Gerçek zamanlı teklif açık artırmasını kazanmak için yerleştirilebilecek minimum teklif. Açık artırmayı kazandıysanız bu, kazanırken verebilecek en düşük tekliftir. Açık artırmayı kaybettiyseniz kazanan teklif budur.
sampled_mediation_cpm_ahead_of_auction_winner: Uyumlulaştırma zincirinde başka ağlar varsa bu alanın değeri, uygun uyumlulaştırma ağlarından birinde açık artırma kazananından daha yüksek olan ve beklenen doluluk oranına göre ağırlıklandırılmış bir örnek teklifi temsil eden bir fiyattır. Uyumlulaştırma zincirindeki ağların hiçbirinin doldurulmasının beklenmediği veya yayıncının SDK uyumlulaştırmasını kullanmadığı durumlarda bu değer 0 olarak ayarlanır.
İşleyiş şekli
minimum_bid_to_win ve sampled_mediation_cpm_ahead_of_auction_winner için olası değerleri belirlemek amacıyla kullanılan hesaplamaları açıklamak için öncelikle aşağıdakileri tanımlamamız gerekir:
Aşağıda, uyumlulaştırma zincirindeki BGBM'ler için karşılık gelen doluluk oranları gösterilmektedir:
\[f_1, f_2, …, f_n\]
Aşağıda, verilen doldurma oranına göre uyumlulaştırma zinciri öğesinden \(i\)beklenen BGBM'yi ve olasılığını belirlemek için kullanılan bir işlev verilmiştir:
\(X_i = \{C_i\) with probability \(f_i\); \(0\) with probability \(1 - f_i\}\)
Kazanan nihai uyumlulaştırma zinciri şu şekilde olacaktır:
\[\{C_1, C_2, …, C_K, W\}\]
Burada \(W\) kazanan tekliftir ve \(C_K > W >= C_{K+1}\)
Bir yayıncının hem gerçek zamanlı teklif vermeyi hem de SDK uyumlulaştırma zincirini aşağıdaki gibi kullandığını varsayalım:
SDK Uyumlulaştırması Zinciri
Beklenen BGBM
Doluluk Oranı
1. ağ
\(C_1 = $3.00\)
\(f_1 = 5\%\)
2. ağ
\(C_2 = $2.00\)
\(f_2 = 45\%\)
Ağ 3
\(C_3 = $0.50\)
\(f_3 = 80\%\)
Network 4
\(C_4 = $0.10\)
\(f_4 = 85\%\)
RTB açık artırmasının sonucu olarak aşağıdakileri varsayalım:
GZT Açık Artırması
BGBM
Açık Artırma Kazananı (K)
1,00 ABD doları
Açık Artırma İKİNCİSİ (R)
0,05 ABD doları
Açılış Fiyatı / Taban Fiyat (F)
0 ABD doları
Açık artırmayı kazanan teklif
Aşağıda, kazanan bir teklif için minimum_bid_to_win ve sampled_mediation_cpm_ahead_of_auction_winner değerlerinin ve olasılıklarının nasıl hesaplandığına dair bir örnek verilmiştir.
Aşağıda, kaybeden teklifler için minimum_bid_to_win ve sampled_mediation_cpm_ahead_of_auction_winner değerlerinin ve olasılıklarının nasıl hesaplandığına dair bir örnek verilmiştir.
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\%\)
Teklif birleştirme
Teklif düzleştirme, tek bir karmaşık BidRequest öğesinin uygulamanıza gönderilen birden fazla teklif isteğine dönüştürülmesini ifade eder. Bir teklif isteği düzleştirildiğinde, BidRequest.ext.google_query_id alanında aynı değere sahip oldukları için hangi teklif isteklerinin orijinalin parçası olduğunu anlayabilirsiniz.
Teklif düzleştirme varsayılan olarak etkindir ancak devre dışı bırakmak isterseniz hesap yöneticinizle iletişime geçebilirsiniz.
Reklam biçimleri
Bazı reklam fırsatları birden fazla biçimi kabul edebilir. Teklif düzleştirme özelliğiyle her biçim, uygun faturalandırma kimlikleri gibi özelliklerin istekte belirtilen biçimle alakalı olduğu ayrı bir teklif isteğinde gönderilir.
Aşağıdaki biçimleri içeren teklif istekleri, farklı teklif isteklerine birleştirilir:
Banner
Video
Ses
Yerel biçim
Reklam biçimi düzleştirme örneği
Aşağıda, eşdeğer bir düzleştirilmiş istek grubuna kıyasla reklam biçimi düzleştirmesi içermeyen basitleştirilmiş bir OpenRTB JSON teklif isteği gösterilmektedir:
Belirli bir teklif veren için bir reklam fırsatı, herkesin katılabileceği açık artırmaya ek olarak çeşitli anlaşma türleri için de geçerli olabilir. Anlaşmalar için teklif düzleştirme özelliğiyle, herkese açık açık artırma için bir teklif isteği ve her sabit fiyatlı anlaşma türü için bir teklif isteği gönderilir. Uygulamada, reklam kısıtlamaları açık artırma ve sabit fiyatlı anlaşma türleri arasında farklılık gösterebilir. Örneğin, hem açık artırma hem de sabit fiyatlı anlaşma için kullanılabilen belirli bir video reklam fırsatı için teklif veren, her biri için farklı teklif istekleri alır. Bu istekler, maksimum reklam süresi ve atlanabilir reklamlara izin verilip verilmediği gibi kısıtlamalarda farklılık gösterebilir. Sonuç olarak, reklam fırsatına uygulanan düzleştirme, herkesin katılabileceği açık artırma ve sabit fiyatlı anlaşma için reklam kısıtlamalarını daha kolay anlamanıza olanak tanır.
Atlanabilirlik ve video süresi
OpenRTB spesifikasyonunda, atlanabilir ve atlanamayan reklamların maksimum video sürelerini belirtmek için ayrı alanlar yoktur. Google'ın uygulaması, mevcut BidRequest.video.maxduration ve BidRequest.video.skip alanlarını kullanarak bunları ayırt etmek için teklif düzleştirmeyi kullanır.
Aşağıda, atlanamayan reklamın maksimum süresi 15 ve atlanabilir reklamın maksimum süresi 60 olduğunda video envanterin nasıl düzleştirildiğine dair bir örnek verilmiştir.
Örnek
max_ad_duration
skip (true VEYA false)
Düzleştirilmemiş orijinal istek
15
true
Birleştirilmiş istek #1: Atlanamayan
15
false
Birleştirilmiş istek #2: Atlanabilir
60
true
Atlanabilir video süresi teklif isteği düzleştirme işlemi yalnızca aşağıdaki koşullar karşılandığında gerçekleşir:
İstekte videoya izin veriliyor.
Hem atlanabilir hem de atlanamayan videolara izin verilir ve bu iki videonun maksimum süreleri farklıdır.
Bu istek, Özel Açık Artırma veya Herkesin Katılabileceği Açık Artırma için uygundur.
Teknik hesap yöneticinizle iletişime geçerek bu tür bir düzleştirmeyi devre dışı bırakabilirsiniz. Devre dışı bırakıldığında ve yayıncı, atlanabilirliğe göre farklı maksimum sürelere sahip hem atlanabilir hem de atlanamayan video reklamlara izin veriyorsa skip, true olarak ayarlanır ve maxduration, atlanabilir ve atlanamayan reklam kısıtlamaları arasında hangisi daha kısaysa o süreye ayarlanır.
Video kapsülleri
Birden fazla reklam fırsatı içeren bir video kapsülüne yönelik teklif istekleri birleştirilir. Böylece her teklif isteği, ilgili kapsüldeki tek bir reklam fırsatı için olur.
Bu sayede belirli bir kapsül için birden fazla reklam fırsatı için teklif verebilirsiniz.
Open Measurement
Open Measurement, mobil uygulama ortamlarına yayınlanan reklamlar için bağımsız ölçüm ve doğrulama hizmetleri sunan üçüncü taraf tedarikçi firmaları belirtmenize olanak tanır.
Bir yayıncının, teklif isteğinde Open Measurement'ı destekleyip desteklemediğini belirlemek için reklam fırsatının Yayıncı tarafından hariç tutulabilen reklam öğesi özelliklerinde bulunan OmsdkType:
OMSDK 1.0 özelliğini hariç tutup tutmadığını kontrol edebilirsiniz. Bu, biçime bağlı olarak Banner veya Video için battrözelliğinin altında bulunur.
Open Measurement sinyalleri içeren teklif isteklerinin nasıl yorumlanacağı hakkında daha fazla bilgi için Open Measurement SDK'sı Yardım Merkezi makalesine bakın.
Örnek teklif istekleri
Aşağıdaki bölümlerde, farklı reklam türleri için örnek teklif istekleri gösterilmektedir.
[null,null,["Son güncelleme tarihi: 2025-05-01 UTC."],[[["Bid requests are sent as HTTP POST requests with a binary payload in Protobuf format, and they are parsed into a `BidRequest` object for access."],["Billing IDs, which are essential for transactions, are provided in specific fields of the `BidRequest` and must be used in corresponding bids."],["Real-time feedback, available in subsequent bid requests, offers details like creative status codes and minimum bid amounts, including a custom `event_notification_token` for debugging."],["First-price auction bidding models utilize `minimum_bid_to_win` and `sampled_mediation_cpm_ahead_of_auction_winner` feedback signals to help adjust bidding strategies."],["Bid flattening separates complex `BidRequest` data into multiple requests based on ad formats, deals, and video ad types, all identifiable by a shared `google_query_id`."]]],["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"]]