Yanıtı Oluşturun
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Uygulamanız Google'dan gelen teklif isteğini işledikten sonra bir yanıt oluşturup göndermelidir. Bu kılavuzda, yanıtı oluşturmak için uygulamanızı nasıl kodlayacağınız açıklanmaktadır.
Teklif yanıtı mesajı oluşturma
Teklif göndermek için teklifli sistem uygulamanız, bir teklif isteğine yapılandırılmış biçiminizde bir Bid içeren bir BidResponse ile yanıt vermelidir. JSON biçimini kullanıyorsanız yanıtınızda Content-Type başlığı application/json; charset=utf-8 olarak ayarlanmalı ve gövdeye JSON BidResponse eklenmelidir. Protobuf biçimini kullanıyorsanız uygulamanız Content-Type üstbilgisini application/octet-stream olarak ayarlamalı ve gövdeye serileştirilmiş BidResponse değerini eklemelidir.
Protobuf biçimi için bir BidResponse oluşturup serileştirmek üzere, sırasıyla standart OpenRTB BidResponse alanlarını ve Google uzantılarını Protobuf'ta uygulayan openrtb.proto ve openrtb-adx.proto temelinde Protobuf kitaplıkları oluşturup kullanmanız gerekir. Bunları Protos & Reference Data (Protokoller ve Referans Verileri) bölümünde bulabilirsiniz.
Bir gösterime teklif vermek istemiyorsanız boş bir HTTP 204 yanıtı döndürmeniz gerekir. Uygulamanız her BidRequest için yanıt döndürmelidir. Zaman aşımları ve ayrıştırılamayan yanıtlar hata olarak kabul edilir. Google, hata oranları yüksek olan teklif verenleri kısıtlar.
Reklam Öğesi Kimliği
BidResponse, BidResponse.seatbid.bid.crid alanı aracılığıyla bir reklam öğesi belirtiyor (128 bayt sınırı). Benzer reklam öğeleri bile boyut, beyan edilen URL, reklam öğesi özellikleri ve sağlayıcı türleri dahil ancak bunlarla sınırlı olmamak üzere önemli özellikler açısından farklılık gösteriyorsa bu alan için benzersiz değerlere sahip olmalıdır. Başka bir deyişle, aşağıdaki koşulları karşılayan iki reklama farklı reklam öğesi kimlikleri vermeniz gerekir:
Farklı görünür veya farklı davranır.
Farklı görüntüler oluşturun.
Farklı yöntemlerle oluşturulmuş (ör. bir reklam resimden, diğeri videodan oluşur).
Uygulamanızı tasarlarken, göndermeyi planladığınız reklam öğesi türleri için anlamlı tanımlayıcılar oluşturmanın sistematik bir yoluna karar vermelisiniz.
Reklam özellikleri
Google, reklamınızın özelliklerini ve hedeflemesini açıklamak için reklam öğesi özelliklerini BidResponse.seatbid.bid.apis ve BidResponse.seatbid.bid.attr kombinasyonu ya da BidResponse.seatbid.bid.ext.attribute uzantısı kullanarak bildirmenizi önerir. Aşağıda, özellikleri nasıl bildirebileceğiniz açıklanmaktadır:
VPAID
BidResponse.seatbid.bid.apis öğesini VPAID_1 veya VPAID_2 olarak ayarlayın. JSON biçiminde bu değer sırasıyla 1 veya 2 olarak ayarlanabilir.
MRAID
BidResponse.seatbid.bid.apis öğesini JSON biçimi için MRAID_1 veya 3 olarak ayarlayın.
SIZELESS
BidResponse.seatbid.bid.attr öğesini JSON biçimi için RESPONSIVE veya 18 olarak ayarlayın.
PLAYABLE
Bu, BidResponse.seatbid.bid.attr öğesini USER_INTERACTIVE olarak ayarlayarak veya JSON biçimi için 13 olarak ayarlayarak belirtilir.
Reklam öğelerinizin algılanan özellikleri hakkında nasıl geri bildirim alacağınızla ilgili açıklama için Reklam öğeleri kaynağına bakın.
Open Bidding alanları
Open Bidding'e katılan exchange ve ağ teklif verenleri tarafından gönderilen teklif yanıtları, standart gerçek zamanlı teklif verme işlemine katılan Authorized Buyers'ın teklif yanıtlarına benzer. Open Bidding müşterileri az sayıda ek alan belirleyebilir ve mevcut alanlardan bazıları alternatif kullanımlara sahip olabilir. Bu
politikalara şunlar dahildir:
Alan
Ayrıntılar
BidResponse.imp.pmp.deals.id
Bu teklifle ilişkili olan ve yayıncılara bildirilen, borsa ad alanındaki anlaşma kimliği.
BidResponse.seatbid.bid.ext.exchange_deal_type
Yayıncılara bildirilen anlaşma türü, anlaşmanın açık artırmada nasıl ele alındığını etkiler.
Borsa, Open Bidding kullanıcısı olarak bir aracıysa üçüncü taraf alıcı bilgilerini tanımlamak için kullanılan jeton. Bu değer, üçüncü taraf alıcıdan alınır ve teklif yanıtında Google'a değiştirilmeden iletilmelidir.
Öneriler
Sunucularınızda kalıcı HTTPS bağlantılarını ("keep-alive" veya "bağlantı yeniden kullanımı" olarak da bilinir) etkinleştirin. Zaman aşımını en az 10 saniye olarak ayarlayın. Daha yüksek değerler çoğu durumda faydalıdır. Google, Authorized Buyers yüksek hızda istek gönderdiği ve her istek için ayrı bir TCP bağlantısı oluşturmanın gecikme yükünden kaçınması gerektiği için uygulamanızın ilk gecikme testleri sırasında bunu doğrular.
Teklif veren kazandığında değil, gösterim oluşturulduğunda izlemek için isteğe bağlı gösterim izleme URL'sini ekleyin. Kazanma ve oluşturma arasındaki düşüş nedeniyle bu, daha doğru izleme istatistikleri sağlar.
Teklif verenin kodunuzu, tekliflerinizin hatalarla başarısız olmasına neden olabilecek kullanımdan kaldırılmış alanlara bağımlı olmayacak şekilde tutun.
BidResponse öğenize BidResponse.seatbid.bid.w ve BidResponse.seatbid.bid.h'ı ekleyin. Birden fazla reklam boyutu içeren bir isteğe verilen A
BidResponse yanıtı, bu alanları içermelidir. Aksi takdirde açık artırmadan çıkarılır.
Yanıtınızın boyutunu 8 KB'ın altında tutun. Çok büyük yanıtlar, ağ gecikmesini artırabilir ve zaman aşımlarına neden olabilir.
Önemli: Örneklerde gösterilen Protobuf mesajları burada okunabilir metin olarak gösterilmektedir. Ancak iletiler kablo üzerinden bu şekilde gönderilmez. OpenRTB Protobuf biçimi kullanılırken yalnızca seri hale getirilmiş BidResponse mesajları kabul edilir.
Aşağıdaki C++ kodunu kullanarak BidResponse mesajı oluşturup serileştirebilirsiniz:
BidResponse bid_response;
// fill in bid response with bid information
string post_response;
if (bid_response.SerializeToString(&post_response)) {
// respond to the POST with post_response as the content
} else {
// return an error to the POST
}
Reklam öğesini belirtme
Teklifiniz kazanırsa yayınlanacak reklam öğesi, teklif yanıtınızda belirtilir. Teklifiniz, desteklenen reklam biçimlerinden birini (AMP, video, yerel) içermelidir. Bu örnekte, reklam öğesini html_snippet alanını kullanarak belirtiyoruz.
Alternatif olarak, reklam biçimine bağlı olarak aşağıdaki alanlardan birini kullanarak reklam öğenizi belirtebilirsiniz:
SDK tarafından oluşturulan reklam
BidResponse.seatbid.bid.ext.sdk_rendered_ad
AMP
BidResponse.seatbid.bid.amp_ad_url
Video
BidResponse.seatbid.bid.adm
Yerel
BidResponse.seatbid.bid.adm_native
BidResponse.seatbid.bid.adm alanındaki bir HTML snippet'ini kullanarak kendi sunucularınızda barındırılan bir reklam belirtin. Snippet, web sayfasına yerleştirilen bir iFrame'in içine alınır. Bu nedenle, sayfa yüklendiğinde reklam alınır ve oluşturulur. HTML snippet'ini, reklamın (banner veya geçiş reklamı) bir iFrame içinde doğru şekilde ve teklif verdiğiniz reklam alanı için uygun bir boyutta oluşturulacak şekilde hazırlamanız gerekir.
Ayrıca, teklif yanıtında belirtilen reklam boyutu, şu durumlarda teklif isteğindeki boyut kombinasyonlarından tam olarak biriyle eşleşmelidir:
Reklam normal bir banner'dır (video, yerel veya geçiş reklamı değildir).
Teklif veren, teklif yanıtında boyutu belirtmiştir. İstek içinde birden fazla boyut olduğunda boyut bildirimi zorunludur.
Geçiş reklamları için istisna yapılır. Geçiş reklamları için genişlik, ekran genişliğinin en az% 50'si, yükseklik ise ekran yüksekliğinin en az% 40'ı olmalıdır.
Düzgün şekilde oluşturulan geçerli bir HTML kodu kullanarak HTML snippet reklam öğesi belirtebilirsiniz. Ancak crid alanını Create BidResponse message bölümünde belirtmeyle ilgili kısıtlamaları göz önünde bulundurun.
Bu işlevin bir kullanım alanı, reklam oluşturma sürecinde sunucularınızdan getirilen URL'lerin bağımsız değişkenlerine ek bilgiler yerleştirmektir. Bu sayede gösterimle ilgili rastgele verileri kendi sunucularınıza iletebilirsiniz.
Makrolar, teklif yanıtı alanlarına yerleştirilmiş biçimlendirilmiş metinlerdir. Bu alanlar, reklam yayınlama sırasında ilgili değerle değiştirilen URL'ler içerir. Örneğin, kazanan teklifinizde teklifinizle birlikte gönderilen HTML snippet reklam öğesinde AUCTION_PRICE makrosu varsa makro, açık artırmada gösterim için ödediğiniz tutarı belirlemek üzere şifresini çözebileceğiniz bir değerle değiştirilir.
Aşağıdaki alanlara makro ekleyebilirsiniz:
BidResponse.seatbid.bid.adm
Makrolar; HTML snippet'i, doğal, video URL'si ve video VAST XML biçimleri için desteklenir.
Birden fazla faturalandırma URL'si gerekiyorsa BidResponse.seatbid.bid.burl yerine bunu kullanın.
Örneğin, reklam öğesini getirmek için kullanılan URL'ye ${MACRO} yerleştirerek bir HTML snippet'ine makro ekleyebilirsiniz. Burada MACRO, OpenRTB spesifikasyonunda açıklanan desteklenen makrolardan biridir.
Google makroları
Google, OpenRTB spesifikasyonunda bulunanların dışında ek makroları da destekler. Bunlar farklı şekilde biçimlendirilir ve bir URL'ye yerleştirildiklerinde %%MACRO%% olarak görünür. Aşağıdaki tabloda bu makrolar açıklanmaktadır:
Macro
Açıklama
ADVERTISING_IDENTIFIER
Alıcıların, gösterim oluşturma sırasında iOS IDFA veya Android'in reklam kimliğini almasına olanak tanır.
Ayrıntılar için Reklamveren Tanımlayıcılarının Şifresini Çözme başlıklı makaleyi inceleyin.
CACHEBUSTER
Rastgele, işaretsiz, dört baytlık bir tam sayının dize gösterimi.
CLICK_URL_UNESC
Reklamın çıkış karakteri içermeyen tıklama URL'si. Snippet'te, üçüncü taraf tıklama URL'sinin kaçış karakteri eklenmiş sürümü doğrudan makroyu takip etmelidir.
Örneğin, üçüncü taraf tıklama URL'si http://my.adserver.com/some/path/handleclick?click=clk ise makro çağrısından sonra üçüncü taraf tıklama URL'sinin tek çıkış karakterli sürümüyle aşağıdaki kod kullanılabilir:
URL, önce tıklamayı Google'a kaydeder, ardından üçüncü taraf tıklama URL'sine yönlendirir.
CLICK_URL_ESC
Reklamın kaçış karakterli tıklama URL'si. Değeri önce yeniden yönlendirme döndürecek başka bir sunucudan geçirmeniz gerekiyorsa CLICK_URL_UNESC yerine bunu kullanın.
Örneğin, bir HTML snippet'inde aşağıdaki kod kullanılabilir:
Bu işlem, tıklamayı my.adserver.com ile kaydeder. my.adserver.com, google_click_url parametresinde iletilen URL'ye yönlendirmekten sorumlu olur. Bu, my.adserver.com parametresinin google_click_url parametresinden çıkış yapıldığını varsayar.
%%CLICK_URL_ESC%% sonrasına çift kaçışlı bir URL ekleyebilirsiniz. my.adserver.com tarafından çıkış karakteri kaldırma işlemi yapıldıktan sonra, google_click_url'ye URL'nin tek çıkış karakterli sürümü eklenir. google_click_url getirildiğinde bir kez daha çıkış karakterinden kurtulacak ve ardından yönlendirme yapılacak.
CLICK_URL_ESC_ESC
Reklamın çift kaçışlı URL'si. Değeri önce yeniden yönlendirme döndürecek başka bir sunucudan geçirmeniz gerekiyorsa CLICK_URL_UNESC yerine bunu kullanın.
Örneğin, bir HTML snippet'inde aşağıdaki kod kullanılabilir:
Teklif isteği SSL gerektirmiyorsa http:, teklif isteği SSL gerektiriyorsa https: olarak genişletilir.
SITE
İçerik URL'sinin URL'den kaçılmış alan adı veya anonim envanter için anonim kimlik.
SITE_URL
Kullanımdan kaldırıldı. Aynı işlevi sağlayan SITE makrosuyla değiştirildi.
TZ_OFFSET
Saat dilimi farkı.
VERIFICATION
Reklam öğesinin doğrulama hattında tarandığı zaman ve üretimle ilgili farklı değerler. Biçim şöyledir:
%%?VERIFICATION:true-val:false-val%%. Burada true-val ve false-val için makrolar hariç tüm değerler (boş dizeler dahil) kullanılabilir. Açık Artırma için borsaların bu makroyu kullanmasını öneririz. Bu makro kullanıldığında talep tarafı platformların değişiklik yapması gerekmez.
Örneğin, bir reklam öğesi %%?VERIFICATION:-1:5000%% içeriyorsa yayın sırasında metin değiştirme 5000, doğrulama işlem hattında ise -1 olur. Bu, iki ping grubu arasında ayrım yapmaya yardımcı olur.
WINNING_PRICE
Hesap para biriminin mikro cinsinden kodlanmış gösterim maliyeti (yani BGBM yerine GPM). Örneğin, 5 ABD doları tutarındaki bir kazanan BGBM, 5.000.000 mikro BGBM'ye veya 5.000 mikro GB'ye karşılık gelir. Bu durumda WINNING_PRICE değerinin kodu çözülmüş hali 5.000 olur.
Kazanan fiyat, CPI cinsinden belirtilir.
Bu makroyu ayrıştırmak için fiyat onaylarının şifresini çözen bir uygulama uygulamanız gerekir. Daha fazla bilgi için Fiyat Onaylarının Şifresini Çözme sayfasına bakın.
WINNING_PRICE_ESC
URL'de kaçış karakteri kullanılan WINNING_PRICE.
Google, üçüncü taraf tarafından yayınlanan reklamın reklam öğesinde CLICK_URL_UNESC veya CLICK_URL_ESC makrosunu kullanmanızı zorunlu kılar. Google, tıklama izleme için CLICK_URL makrolarını kullanır.
Makrolarda URL çıkışı için aşağıdaki şema kullanılır:
Boşluk karakterinin yerine artı işareti (+) kullanılır.
Alfanümerik karakterler (0-9, a-z, A-Z) ve !()*,-./:_~ kümesindeki karakterler değişmeden kalır.
Diğer tüm karakterler %XX ile değiştirilir. Burada XX, karakteri temsil eden onaltılık sayıdır.
Yayıncı kısıtlamaları ve koşulları
Teklif isteği, yayıncıların açık artırmadaki reklam öğelerine uyguladığı kısıtlama ve şart türleriyle ilgili bilgiler içerir.
BidRequest.bcat
Bu alan tarafından belirtilen engellenen kategorileri, Real-time Bidding API'nin detectedCategories alanı kullanılarak gönderilen reklam öğeleriniz için algılanan kategorilerle karşılaştırabilirsiniz.
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
Google, tüm reklam öğeleri için SSL desteği gerektirdiğinden bu ayar pratikte her zaman true olarak belirlenir.
BidRequest.imp.{audio/banner/native/video}
BidRequest.imp.{audio/banner/native/video}.api
BidRequest.imp.{audio/banner/native/video}.battr
BidRequest.imp.{audio/banner/video}.mimes
Kısıtlanmış bir özellik içeren reklamla asla teklif vermeyin. Tedarikçi türü gibi izin verilen özellikler için, yalnızca tedarikçi türü BidRequest içindeki allowed_vendor_type listesinde yer alıyorsa reklam döndürün. Teklifinize yalnızca teklif isteğinde belirtilen reklam biçimleri dahil edilmelidir. Bu biçimler, BidRequest.imp.banner gibi alanlar doldurularak belirtilir. Daha fazla bilgi için BidRequest protokol arabelleği
tanımındaki bu alanlarla ilgili yorumlara bakın.
BidResponse içinde bir reklam döndürülürse BidResponse içinde BidResponse.seatbid.bid.attr, BidResponse.seatbid.bid.cat ve BidResponse.seatbid.bid.adomain ya da BidResponse.seatbid.bid.adm_native.link.url alanlarını doğru şekilde ayarlamanız gerekir. Bir reklamın bu alanlar için geçerli birden fazla değeri varsa her değeri eklemeniz gerekir. Daha fazla bilgi için BidResponse protokol arabelleği tanımındaki bu alanlarla ilgili yorumlara bakın.
Bu alanları ayarlanmamış yanıtlar silinir.
Open Measurement
Open Measurement, mobil uygulama ortamlarında yayınlanan reklamlar için bağımsız ölçüm ve doğrulama hizmetleri sağlayan üçüncü taraf tedarikçileri belirtmenize olanak tanır.
Desteklenen reklam biçimleri arasında video, banner ve geçiş reklamları yer alır. Bu biçimleri içeren bir teklif yanıtında Open Measurement'ın nasıl kullanılacağı hakkında daha fazla bilgi için Open Measurement SDK Yardım Merkezi makalesine bakın.
Örnek teklif yanıtları
Aşağıdaki bölümlerde, farklı reklam türleri için örnek teklif yanıtları gösterilmektedir.
id:"550102L8So5v6gi4C00T36"seatbid{bid{id:"U796oSA426V3U666ue8"impid:"1"price:1.057860016822815crid:"test_creative_id_395811"dealid:"0"adm_native{ver:"1.2"assets{id:6img{url:"https://native.test.com/logo?id=123456"w:200h:200type:LOGO}}assets{id:5img{url:"https://native.test.com/image?id=123456"w:800h:800type:MAIN}}assets{id:4data{value:"Galactic Luxury Cruises"type:SPONSORED}}assets{id:3data{value:"Book today"type:CTATEXT}}assets{id:1title{text:"Luxury Mars Cruises"}}assets{id:2data{value:"Visit the planet in a luxury spaceship."type:DESC}}link{url:"https://www.google.com"}}[com.google.doubleclick.bid]{impression_tracking_url:"https://test.com/impression?id=123456"impression_tracking_url:"https://test.com/impression?id=123456"ad_choices_destination_url:"https://test.com/preferences"event_notification_token{payload:"token"}billing_id:73917825312dsa{adrender:true}clickurl:"google.com"}}}cur:"JPY"[com.google.doubleclick.bid_response]{processing_time_ms:17}
OpenRTB JSON
Örneği göster
{"id":"550102L8So5v6gi4C00T36","seatbid":[{"bid":[{"id":"U796oSA426V3U666ue8","impid":"1","price":1.057860016822815,"crid":"test_creative_id_395811","dealid":"0","ext":{"impression_tracking_url":["https://test.com/impression?id=123456","https://test.com/impression?id=123456"],"ad_choices_destination_url":"https://test.com/preferences","event_notification_token":{"payload":"token"},"billing_id":"73917825312","dsa":{"adrender":1},"clickurl":["google.com"]},"adm":"{\"ver\":\"1.2\",\"assets\":[{\"id\":6,\"img\":{\"url\":\"https://native.test.com/logo?id=123456\",\"w\":200,\"h\":200,\"type\":2}},{\"id\":5,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":800,\"h\":800,\"type\":3}},{\"id\":4,\"data\":{\"value\":\"Galactic Luxury Cruises\",\"type\":1}},{\"id\":3,\"data\":{\"value\":\"Book today\",\"type\":12}},{\"id\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\",\"type\":2}}],\"link\":{\"url\":\"https://www.google.com\"}}"}]}],"cur":"JPY","ext":{"processing_time_ms":17}}
[null,null,["Son güncelleme tarihi: 2026-02-23 UTC."],[],["Applications must respond to each `BidRequest` with a parsable `BidResponse`, using Protobuf or an HTTP 204 for no bids. Creatives are identified by a unique `crid`. Ad attributes, such as VPAID and MRAID, are declared in specific fields. Utilize impression tracking URLs and avoid deprecated fields. Open Bidding bid responses are similar to Authorized Buyers. Ad sizes in the response must match the request. Macros are used in URLs. Publisher requirements are specified in the `BidRequest`. The response must accurately reflect these requirements and provide the accurate ad attributes and links.\n"]]