Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Interakcja z określaniem stawek w czasie rzeczywistym rozpoczyna się, gdy Google wysyła do Twojej aplikacji żądanie stawki. Z tego przewodnika dowiesz się, jak zakodować aplikację, aby przetwarzała żądanie stawki.
Przetwarzanie żądania
Google wysyła żądanie stawki zaszyfrowane w formacie OpenRTB JSON lub Protobuf, dołączone jako ładunek żądania HTTP POST. Format otrzymanych danych zależy od konfiguracji punktu końcowego. Przykład znajdziesz w sekcji Przykładowe żądanie stawki.
Aby otrzymać serializowany obiekt BidRequest, musisz przeanalizować to żądanie. Jeśli używasz formatu Protobuf, musisz pobrać pliki openrtb.proto i openrtb-adx.proto ze strony dane referencyjne, a następnie użyć ich do wygenerowania biblioteki, której można użyć do zanalizowania wiadomości BidRequest. Na przykład ten kod w języku C++ analizuje żądanie, które zawiera ładunek POST w postaci ciągu:
Gdy już masz BidRequest, możesz z nim pracować jak z obiektem, wyodrębniając i interpretując potrzebne pola. Na przykład w C++ iterowanie przez umowy w „BidRequest” w OpenRTB może wyglądać tak:
Otrzymasz żądanie stawki, gdy zasoby reklamowe wydawcy są kierowane przez co najmniej 1
konfigurację kierowania wstępnego. BidRequest.imp.ext.billing_id
będzie wypełniony identyfikatorami płatności wszystkich kwalifikujących się kupujących oraz odpowiednimi konfiguracjami wstępnego kierowania. Dodatkowo w przypadku asortymentu objętego umowami możesz znaleźć identyfikatory płatności powiązane z odpowiednim kupującym, korzystając z funkcji BidRequest.imp.pmp.deal.ext.billing_id. Podczas określania stawki można podać tylko identyfikatory płatności kupujących zawarte w pytaniu o stawkę.
Jeśli w pytaniu o stawkę podano kilka identyfikatorów płatności, w polu BidResponse.seatbid.bid.ext.billing_id musisz podać identyfikator płatności kupującego, któremu chcesz przypisać stawkę.
Pliki słownika
Żądanie stawki używa identyfikatorów zdefiniowanych w plikach słownika, które są dostępne na stronie danych referencyjnych.
Makra adresu URL oferenta
Opcjonalnie możesz wstawiać niektóre informacje z BidRequest do adresów URL punktów określania stawek za pomocą makr. Jeśli skonfigurujesz adres URL punktu końcowego z co najmniej 1 makro, zostaną one rozwinięte, jeśli te informacje są obecne w prośbie o określenie stawki. Może to być przydatne, jeśli chcesz na przykład wykonać równoważenie obciążenia na podstawie informacji w BidRequest.
Aby uzyskać pomoc dotyczącą nowych makr, skontaktuj się z menedżerem konta.
Makro
Opis
%%GOOGLE_USER_ID%%
Zastąpiono go identyfikatorem użytkownika Google znajdującym się w komórce BidRequest.user.id. Na przykład adres URL licytującego http://google.bidder.com/path?gid=%%GOOGLE_USER_ID%% zostanie zastąpiony podczas wysyłania żądania przez wartość http://google.bidder.com/path?gid=dGhpyBhbiBleGFtGxl.
Jeśli identyfikator Google User ID jest nieznany, zostaje zastąpiony pustym ciągiem, co daje wynik podobny do
http://google.bidder.com/path?gid=
%%HAS_MOBILE%%
Zastąpiony wartością 1, aby wskazać, że żądanie stawki pochodzi z urządzenia mobilnego, lub wartością 0 w innych przypadkach. Jest ona określana na podstawie wartości parametru BidRequest.device.devicetype, gdzie urządzenia mobilne są oznaczone wartością HIGHEND_PHONE (4) lub Tablet (5).
%%HAS_VIDEO%%
Zastąpiony przez 1, aby wskazać, że żądanie oferty zawiera zasoby reklamowe wideo, lub 0 w innym przypadku. To zależy od tego, czy w pytaniu o stawkę jest podana wartość parametru BidRequest.imp.video.
%%HOSTED_MATCH_DATA%%
Zastąpiony wartością na podstawie BidRequest.user.buyeruid.
%%MOBILE_IS_APP%%
Zastąpiony przez 1, aby wskazać, że żądanie stawki dotyczy zasobów reklamowych w aplikacji mobilnej, lub 0 w innym przypadku. To zależy od tego, czy pole BidRequest.app jest wypełnione.
Znajdowanie identyfikatora aplikacji mobilnej na podstawie adresu URL transakcji
Transakcje w aplikacji mobilnej będą zawierać adresy URL takie jak:
mbappgewtimrzgyytanjyg4888888.com
Aby odkodować część ciągu w kody dziesiętne, użyj dekodera base-32 (gewtimrzgyytanjyg4888888).
Możesz użyć dekodera online, ale musisz pisać litery wielką literą i zastąpić końcowe 8 wartościami =.
Dekodowanie tej wartości:
GEWTIMRZGYYTANJYG4======
wyniki:
1-429610587
Ciąg 429610587 to identyfikator aplikacji na iOS iFunny.
Oto kolejny przykład. Adres URL zawarty w raporcie to:
mbappgewtgmjug4ytmmrtgm888888.com
Dekodowanie tej wartości:
GEWTGMJUG4YTMMRTGM======
wyniki:
1-314716233
Wynik 314716233 to identyfikator aplikacji TextNow na iOS.
Znajdowanie nazwy aplikacji mobilnej na podstawie adresu URL transakcji
Oto przykład uzyskiwania nazwy aplikacji. Zgłaszany adres URL:
Wynik jest równoważny aplikacji slither.io na Androida.
Pola Otwartego ustalania stawek
Żądania o stawkę wysyłane do licytujących giełd i sieci uczestniczących w otwartym ustalaniu stawek są podobne do żądań wysyłanych przez licytujących korzystających ze standardowego określania stawek w czasie rzeczywistym. Klienci korzystający z Otwartego ustalania stawek otrzymają niewielką liczbę dodatkowych pól, a kilka dotychczasowych pól może mieć inne zastosowanie. Są to między innymi:
OpenRTB
Szczegóły
BidRequest.imp.ext.dfp_ad_unit_code
Zawiera kod sieci wydawcy w Ad Managerze, a za nim hierarchię jednostek reklamowych, rozdzielone ukośnikami.
Na przykład:/1234/cruises/mars.
BidRequest.user.data.segment
Powtarzające się pary klucz-wartość wysyłane przez wydawcę do licytatora giełdy.
Gdy parametr BidRequest.user.data.name ma wartość “Publisher Passed”, możesz stwierdzić, że wartości to pary klucz-wartość wysyłane przez wydawcę.
Deklarowanie dozwolonych dostawców
Dostawcy technologii, którzy świadczą usługi takie jak badania, remarketing i wyświetlanie reklam, mogą odgrywać pewną rolę w interakcjach między kupującymi a sprzedawcami. Dozwoleni są tylko dostawcy, którzy przeszli weryfikację Google pod kątem uczestnictwa w interakcjach Authorized Buyers.
Aby zrozumieć BidRequest i utworzyć BidResponse, musisz znać 2 różne możliwości deklarowania dostawców technologii:
Inni dostawcy mogą uczestniczyć w tym procesie tylko wtedy, gdy są zadeklarowani w sekcji BidRequest:
W BidRequest pole BidRequest.imp.ext.allowed_vendor_type określa, którzy dostawcy są dozwoleni przez sprzedawcę. Dostawcy, którzy zostaną wysłani w pliku allowed_vendor_type, są wymienieni w pliku słownika vendors.txt.
Przykładowe pytanie o stawkę
Poniższe przykłady to żądania Protobuf i JSON w formie zrozumiałej dla człowieka.
Aby przekonwertować żądanie oferty do postaci binarnej, tak jak w rzeczywistej prośbie w postaci POST, możesz wykonać te czynności (w C++). Pamiętaj jednak, że nie dotyczy to pliku OpenRTB JSON.
Informacje zwrotne w czasie rzeczywistym są dostępne dla programów Authorized Buyers, giełd i sieci korzystających z Otwartego ustalania stawek.
W polu BidRequest.ext.bid_feedback wyświetlane są informacje w czasie rzeczywistym na podstawie wyniku co najmniej 1 wcześniejszej stawki. Można z nich się dowiedzieć, czy stawka wygrała aukcję, lub jaka jest minimalna stawka potrzebna do wygrania aukcji. Aby włączyć opinie w czasie rzeczywistym, skontaktuj się z menedżerem konta.
Oprócz pól domyślnych wysyłanych w informacjach zwrotnych o określaniu stawek możesz też przesyłać dane niestandardowe w odpowiedzi na stawkę, korzystając z pola BidResponse.seatbid.bid.ext.event_notification_token. event_notification_token to dowolne dane znane tylko licytantowi, które mogą pomóc w debugowaniu, np. nowy identyfikator kierowania lub identyfikator licytowania reprezentujący nową taktykę lub metadane powiązane z kreacją znane tylko licytantowi. Szczegółowe informacje znajdziesz w pliku OpenRTB Extensions Protocol Buffer.
Gdy Authorized Buyers wysyła pytanie o stawkę do licytującego, ten odpowiada za pomocą BidResponse. Jeśli licytujący ma włączone informacje zwrotne w czasie rzeczywistym, w kolejnych żądaniach stawek Authorized Buyers wysyła informacje zwrotne dotyczące odpowiedzi w wiadomości 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;}
W tym komunikacie pierwszym polem, które należy sprawdzić, jest bid_feedback.creative_status_code. Znaczenie kodu znajdziesz w pliku
creative-status-codes.txt. Pamiętaj, że jeśli wygrasz aukcję, możesz zrezygnować z opinii o cenie. Więcej informacji znajdziesz w artykule Jak zrezygnować z reklam.
Odpowiedź w czasie rzeczywistym zawiera identyfikator pytania o stawkę i jeden z tych elementów:
Wynik aukcji
Odpowiedzi w czasie rzeczywistym
Kupujący nie przesłał stawki.
Nic.
Kupujący przesłał stawkę, która została odfiltrowana przed dotarciem do aukcji.
Tworzenie modelu określania stawek na potrzeby aukcji pierwszej ceny
Po ustaleniu stawki w aukcji pierwszej ceny otrzymasz informacje zwrotne w czasie rzeczywistym, w tym pola minimum_bid_to_win i sampled_mediation_cpm_ahead_of_auction_winner, jeśli stawka nie została odfiltrowana z aukcji. Sygnały te mogą służyć do informowania logiki ustalania stawek o tym, o ile wyższa lub niższa mogłaby być stawka, aby wygrać wyświetlenie.
minimum_bid_to_win: minimalna stawka, która mogła zostać ustawiona, aby wygrać aukcję ustalania stawek w czasie rzeczywistym. Jeśli wygrasz aukcję, będzie to najniższa stawka, jaką można było ustawić, aby wygrać. Jeśli stawka przegrała aukcję, będzie to stawka zwycięska.
sampled_mediation_cpm_ahead_of_auction_winner: jeśli w łańcuchu zapośredniczenia występują inne sieci, wartość tego pola to cena stanowiąca przykładową stawkę z jednej z kwalifikujących się sieci zapośredniczenia, która była wyższa niż stawka zwycięzcy aukcji, powiększona o oczekiwany współczynnik wypełnienia. Ta wartość zostanie ustawiona na 0, jeśli żadna z sieci w łańcuchu zapośredniczenia nie będzie w stanie wypełnić żądania lub jeśli wydawca nie korzysta z zapośredniczenia za pomocą pakietu SDK.
Jak to działa
Aby opisać obliczenia służące do określania możliwych wartości dla minimum_bid_to_win i sampled_mediation_cpm_ahead_of_auction_winner, musimy najpierw zdefiniować:
Poniżej przedstawiono CPM w łańcuchu zapośredniczenia w kolejności malejącej:
\[C_1, C_2, …, C_n\]
Poniżej znajdziesz odpowiednie współczynniki wypełniania CPM w łańcuchu pośrednictwa:
\[f_1, f_2, …, f_n\]
Oto funkcja służąca do określania oczekiwanego CPM i jego prawdopodobieństwa z elementu łańcucha zapośredniczenia \(i\)na podstawie danego współczynnika wypełnienia:
\(X_i = \{C_i\) z prawdopodobieństwem \(f_i\); \(0\) z prawdopodobieństwem \(1 - f_i\}\)
Ostateczny łańcuch zapośredniczenia będzie wyglądał tak:
\[\{C_1, C_2, …, C_K, W\}\]
gdzie \(W\) to stawka wygrywająca aukcję, a \(C_K > W >= C_{K+1}\)
Cena minimalna jest oznaczona jako \(F\).
Druga najwyższa stawka jest oznaczona jako \(R\).
Obliczenia dla zwycięzcy aukcji
Pole
Obliczenie
minimum_bid_to_win
\(max\{F, R, X_{K+1}, …, X_n\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(\{C_i\) z prawdopodobieństwem \(\prod_{j=1}^{i-1}(1-f_j) \cdot f_i \div \prod_{j=1}^{K}(1-f_j)\}\)
Dotyczy: \(1 <= i <= K\).
Obliczenia dotyczące przegranego udziału w aukcji
Pole
Obliczenie
minimum_bid_to_win
\(max\{F, W\}\)
sampled_mediation_cpm_ahead_ of_auction_winner
\(max\{X_1, …, X_K\}\)
Przykład z prostym łańcuchem zapośredniczenia
Załóżmy, że wydawca korzysta z określania stawek w czasie rzeczywistym i łańcucha zapośredniczenia pakietu SDK w taki sposób:
Łańcuch zapośredniczenia SDK
Spodziewany CPM
Współczynnik wypełnienia
Sieć 1
\(C_1 = $3.00\)
\(f_1 = 5\%\)
Sieć 2
\(C_2 = $2.00\)
\(f_2 = 45\%\)
Sieć 3
\(C_3 = $0.50\)
\(f_3 = 80\%\)
Sieć 4
\(C_4 = $0.10\)
\(f_4 = 85\%\)
Załóżmy, że w wyniku aukcji RTB uzyskano następujące wyniki:
Aukcja RTB
CPM
Auction Winner (W)
1 USD
Drugie miejsce w aukcji (R)
0,05 USD
Cena minimalna (F)
0 USD
Stawka, która wygrała aukcję
Poniżej przedstawiamy przykład obliczania wartości i prawdopodobieństwo dla minimum_bid_to_win i sampled_mediation_cpm_ahead_of_auction_winner w przypadku wygranego udziału w kliknięciu.
Poniżej przedstawiamy przykład obliczania wartości i prawdopodobieństwo dla parametrów minimum_bid_to_win i sampled_mediation_cpm_ahead_of_auction_winner w przypadku przegranych ofert.
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\%\)
Rozdzielanie stawek
Rozdzielanie pytań o stawkę to przetwarzanie pojedynczego złożonego BidRequest na wiele pytań o stawkę wysyłanych do aplikacji. Gdy żądanie stawki zostanie spłaszczone, możesz sprawdzić, które żądania stawek stanowiły część oryginalnego żądania, ponieważ będą miały identyczną wartość w polu BidRequest.ext.google_query_id.
Spłaszczenie stawek jest domyślnie włączone, ale jeśli chcesz je wyłączyć, skontaktuj się ze swoim menedżerem konta.
Formaty reklam
Niektóre możliwości reklamowe mogą akceptować wiele formatów. W przypadku spłaszczenia stawek każdy format jest wysyłany w ramach osobnego pytania o stawkę, w którym atrybuty takie jak kwalifikujące się identyfikatory rozliczeń są istotne dla formatu określonego w pytaniu.
Pytania o stawkę zawierające te formaty zostaną rozdzielone na osobne pytania o stawkę:
Baner
Wideo
Audio
Natywna
Przykład spłaszczenia formatu reklamy
Poniżej znajduje się przykład uproszczonego żądania stawki w formacie JSON OpenRTB bez spłaszczenia formatu reklamy w porównaniu z odpowiednim zbiorem spłaszczonych żądań:
Możliwość wyświetlenia reklamy danemu licytującemu może dotyczyć różnych typów umów, oprócz aukcji otwartej. W przypadku spłaszczenia stawek w umowach preferencyjnych wysyłane jest 1 żądanie stawki na aukcję otwartą i 1 żądanie na każdy typ umowy o kosztach stałych. W praktyce ograniczenia reklam mogą się różnić w zależności od aukcji i typów umów o stałych stawkach. Na przykład w przypadku danej możliwości wyświetlania reklamy wideo, która jest dostępna zarówno w ramach aukcji otwartej, jak i umowy o stałych stawkach, licytujący otrzyma oddzielne żądania stawek dla każdej z nich, ponieważ ograniczenia takie jak maksymalny czas trwania reklamy i możliwość wyświetlania reklam możliwych do pominięcia mogą się różnić. Dzięki temu uproszczenie zastosowane do możliwości reklamowej ułatwia Ci ustalenie ograniczeń reklam w przypadku aukcji otwartej i umowy o stałej cenie.
Możliwość pominięcia i czas trwania filmu
Specyfikacja OpenRTB nie zawiera osobnych pól do określania maksymalnego czasu trwania reklam wideo możliwych i niemożliwych do pominięcia. Wdrożenie Google korzysta z spłaszczenia stawek, aby rozróżniać te typy za pomocą istniejących pól BidRequest.video.maxduration i BidRequest.video.skip.
Poniżej przedstawiamy przykład spłaszczenia zasobów reklamowych wideo, gdy maksymalny czas trwania reklamy niemożliwej do pominięcia wynosi 15, a maksymalny czas trwania reklamy możliwej do pominięcia wynosi 60.
Przykład
max_ad_duration
skip (prawda LUB fałsz)
Pierwotne żądanie bez spłaszczenia
15
true
Spłaszczone żądanie 1: reklama niemożliwa do pominięcia
15
false
Spłaszczone żądanie 2: możliwość pominięcia
60
true
Rozdzielanie pytań o stawkę na podstawie czasu trwania reklamy możliwe jest tylko wtedy, gdy spełnione są te warunki:
Prośba zezwala na film.
Dozwolone są zarówno reklamy wideo możliwe do pominięcia, jak i te, których nie można pominąć, a ich maksymalne czasy trwania różnią się od siebie.
To żądanie kwalifikuje się do aukcji prywatnej lub otwartej.
Aby zrezygnować z tego typu spłaszczenia, skontaktuj się z technicznym menedżerem konta. Gdy ta opcja jest wyłączona, a wydawca zezwala na reklamy wideo możliwe i niemożliwe do pominięcia z różnymi maksymalnymi czasami trwania zależnymi od możliwości pominięcia, parametr skip zostanie ustawiony na true, a parametr maxduration – na krótszy czas trwania między ograniczeniami dotyczącymi reklam możliwych i niemożliwych do pominięcia.
Bloki reklamowe wideo
Pytania o stawkę dotyczące bloku reklamowego z wieloma możliwościami reklamowymi są spłaszczone,
dzięki czemu każde pytanie o stawkę dotyczy osobnej możliwości reklamowej z tego bloku.
Umożliwia to określanie stawek za wiele możliwości wyświetlania reklam w danym bloku.
Open Measurement
Open Measurement umożliwia określenie zewnętrznych dostawców, którzy zapewniają niezależne usługi pomiaru i weryfikacji reklam wyświetlanych w środowiskach aplikacji mobilnych.
Aby sprawdzić, czy wydawca obsługuje Open Measurement w pytaniu o stawkę, sprawdź, czy możliwość wyświetlania reklam wyklucza atrybut OmsdkType:
OMSDK 1.0 znajdujący się w atrybutach kreacji, które można wykluczyć dla wydawcy. Znajdziesz go w atrybucie battr w przypadku banera lub filmu, w zależności od formatu.
Więcej informacji o interpretowaniu zapytań o stawki zawierających sygnały Open Measurement znajdziesz w tym artykule w Centrum pomocy dotyczącym Open Measurement SDK.
Przykładowe pytania o stawkę
W następnych sekcjach znajdziesz przykładowe żądania stawek dla różnych typów reklam.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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"]]