Setelah memproses permintaan bid dari Google, aplikasi Anda harus membuat dan mengirim respons. Panduan ini menjelaskan cara membuat kode aplikasi untuk membuat respons.
Membuat pesan BidResponse Protobuf
Authorized Buyers mengirimkan BidRequest
sebagai isi pesan
POST
HTTP. Jika endpoint bidding dikonfigurasi untuk menggunakan
format Protobuf, aplikasi Anda harus mengirim respons dengan
header Content-Type
yang ditetapkan ke application/octet-stream
dan isi pesan yang terdiri dari buffering protokol serial. Buffer
protokol adalah pesan BidResponse
seperti yang ditentukan dalam
openrtb.proto
. Aplikasi Anda harus menampilkan
BidResponse
yang dapat diuraikan sebagai respons terhadap setiap BidRequest
. Waktu tunggu
dan respons yang tidak dapat diuraikan dianggap sebagai error dan Google akan membatasi
pembeli dengan rasio error tinggi.
Jika tidak ingin mengajukan bid pada tayangan, Anda harus menampilkan respons HTTP
204 kosong. Anda dapat memperoleh openrtb.proto
dari
halaman data referensi.
ID Materi Iklan
BidResponse
Anda menentukan materi iklan melalui
kolom BidResponse.seatbid.bid.crid
(batas 64 byte). Bahkan materi iklan
yang serupa harus memiliki nilai unik untuk kolom ini jika memiliki karakteristik yang berbeda, termasuk tetapi tidak terbatas pada: ukuran, URL yang dideklarasikan,
atribut materi iklan, dan jenis vendor. Dengan kata lain, Anda harus memberikan ID
materi iklan yang berbeda untuk dua iklan yang:
- Terlihat atau berperilaku berbeda.
- Merender ke gambar yang berbeda.
- Dirender dengan cara yang berbeda (misalnya, satu iklan terdiri dari gambar, sedangkan iklan lainnya adalah video).
Saat mendesain aplikasi, Anda harus memutuskan cara sistematis untuk membuat ID yang sesuai dengan jenis materi iklan yang ingin Anda kirimkan.
Atribut iklan
Google merekomendasikan untuk mendeklarasikan atribut materi iklan guna menjelaskan karakteristik
iklan dan penargetan menggunakan kombinasi
BidResponse.seatbid.bid.apis
dan
BidResponse.seatbid.bid.attr
, atau
ekstensi BidResponse.seatbid.bid.ext.attribute
. Berikut ini
menjelaskan cara mendeklarasikan atribut:
VPAID
TetapkanBidResponse.seatbid.bid.apis
keVPAID_1
, atauVPAID_2
. Untuk format JSON, nilai ini dapat disetel ke1
atau2
.MRAID
TetapkanBidResponse.seatbid.bid.apis
keMRAID_1
, atau3
untuk format JSON.SIZELESS
TetapkanBidResponse.seatbid.bid.attr
keRESPONSIVE
, atau18
untuk format JSON.PLAYABLE
Hal ini ditunjukkan dengan menetapkanBidResponse.seatbid.bid.attr
keUSER_INTERACTIVE
, atau13
untuk format JSON.
Lihat Referensi materi iklan untuk mendapatkan penjelasan tentang cara mendapatkan masukan terkait properti yang terdeteksi dari materi iklan Anda.
Kolom Bidding Terbuka
Respons bid yang dikirim oleh bidder bursa dan jaringan yang berpartisipasi dalam Bidding Terbuka mirip dengan respons Authorized Buyers yang berpartisipasi dalam bidding real-time standar. Pelanggan Bidding Terbuka dapat menentukan sejumlah kecil kolom tambahan, dan beberapa kolom yang ada mungkin memiliki penggunaan alternatif. Hal ini meliputi:
OpenRTB | Authorized Buyers | Detail |
---|---|---|
BidResponse.imp[].pmp.deals[].id |
BidResponse.ad[].adslot[].exchange_deal_id |
ID transaksi dari namespace bursa yang terkait dengan bid ini dan dilaporkan kepada penayang. |
BidResponse.seatbid[].bid[].ext.exchange_deal_type |
BidResponse.ad[].adslot[].exchange_deal_type |
Jenis transaksi yang dilaporkan kepada penayang, yang memengaruhi cara transaksi diperlakukan dalam lelang. |
BidResponse.seatbid[].bid[].ext.third_party_buyer_token |
BidResponse.ad[].adslot[].third_party_buyer_token |
Token yang digunakan untuk mengidentifikasi informasi pembeli pihak ketiga akhir jika bursa sebagai Bidder Bidding Terbuka adalah perantara. Ini diperoleh dari pembeli pihak ketiga dan harus diteruskan ke Google tanpa diubah dalam respons bid. |
Rekomendasi
- Aktifkan koneksi HTTPS persisten (juga dikenal sebagai "keep-alive" atau "penggunaan kembali koneksi") di server Anda. Tetapkan waktu tunggu minimal ke 10 detik—nilai yang lebih tinggi akan bermanfaat dalam banyak kasus. Google memverifikasi hal ini selama pengujian latensi awal aplikasi Anda, karena Authorized Buyers mengirim permintaan dengan kecepatan tinggi dan perlu menghindari overhead latensi saat membuat koneksi TCP terpisah untuk setiap permintaan.
Sertakan URL pelacakan tayangan opsional untuk melacak saat tayangan dirender, bukan saat bidder menang. Karena penurunan antara kemenangan dan rendering, hal ini menghasilkan statistik pelacakan yang lebih akurat.
- Pastikan kode bidder Anda bebas dari dependensi pada kolom yang tidak digunakan lagi, yang dapat menyebabkan bid Anda gagal dengan error.
- Sertakan
BidResponse.seatbid.bid.w
danBidResponse.seatbid.bid.h
dalamBidResponse
Anda.BidResponse
untuk permintaan yang menyertakan beberapa ukuran iklan harus menyertakan kolom ini atau akan dihapus dari lelang. - Batasi ukuran respons Anda hingga di bawah 8K. Respons yang sangat besar dapat meningkatkan latensi jaringan dan menyebabkan waktu tunggu habis.
- Ikuti panduan untuk bid di inventaris iOS yang memerlukan atribusi SKAdNetwork.
Contoh respons bid
Contoh berikut mewakili contoh permintaan Protobuf dan JSON yang dapat dibaca manusia.
Berikan contohnya
Respons serialisasiid: "9u09jhHJXT2fbaDZ9V1x66" seatbid { bid { id: "37Td8Gbw1Lr8161bA4B" impid: "1" price: 0.075 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" adomain: "google.com" crid: "test_creative_id_156129" cat: "IAB22" w: 320 h: 50 language: "es" slotinpod: SLOT_POSITION_POD_ANY cattax: IAB_CONTENT_1_0 [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" exchange_deal_type: OPEN_AUCTION event_notification_token { payload: "token" } billing_id: 61560909063 } } seat: "4778:9251:780612" } cur: "USD"
Berikan contohnya
{ "id": "9u09jhHJXT2fbaDZ9V1x66", "seatbid": [ { "bid": [ { "id": "37Td8Gbw1Lr8161bA4B", "impid": "1", "price": 0.075, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com", "google.com" ], "crid": "test_creative_id_156129", "cat": [ "IAB22" ], "w": 320, "h": 50, "language": "es", "slotinpod": 0, "cattax": 1, "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456" ], "exchange_deal_type": 0, "event_notification_token": { "payload": "token" }, "billing_id": "61560909063" } } ], "seat": "4778:9251:780612" } ], "cur": "USD" }
Berikan contohnya
Respons serialisasiad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 226722 billing_id: 78614473201 currency: "USD" } click_through_url: "google.com" attribute: 105 buyer_creative_id: "test_creative_id_827359" width: 336 height: 280 impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" }
Penting: Pesan Protobuf yang digambarkan dalam contoh direpresentasikan di sini sebagai teks yang dapat dibaca manusia. Namun, cara itulah yang digunakan untuk mengirim pesan melalui jaringan. Saat menggunakan format Protobuf Google atau OpenRTB, hanya pesan BidResponse yang diserialisasi yang akan diterima.
Anda dapat membuat dan melakukan serialisasi pesan BidResponse
menggunakan
kode C++ berikut:
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 }
Menentukan materi iklan
Respons bid Anda menentukan materi iklan yang akan ditayangkan jika bid Anda menang. Bid Anda
harus menyertakan salah satu format iklan yang didukung (AMP, video, native). Dalam contoh
ini, kita menentukan materi iklan menggunakan kolom html_snippet
.
Atau, Anda dapat menentukan materi iklan menggunakan salah satu kolom berikut, berdasarkan format iklan:
- Iklan yang dirender SDK
BidResponse.seatbid.bid.ext.sdk_rendered_ad
- AMP
BidResponse.seatbid.bid.amp_ad_url
- Video
BidResponse.seatbid.bid.adm
- Native
BidResponse.seatbid.bid.adm_native
Tentukan iklan yang dihosting di server Anda sendiri menggunakan cuplikan HTML di
kolom BidResponse.seatbid.bid.adm
. Cuplikan ini disertakan dalam
iFrame yang disisipkan di halaman web, sehingga iklan diambil dan
dirender saat halaman dimuat. Anda harus membuat cuplikan HTML agar
iklan (banner atau interstisial) dirender dengan benar di dalam iFrame, dan dengan
ukuran yang sesuai untuk slot iklan yang Anda bid.
Selain itu, ukuran iklan yang dideklarasikan dalam respons bid harus sama persis dengan salah satu kombinasi ukuran dalam permintaan bid jika:
- Iklan adalah banner reguler (bukan video, native, atau interstisial).
- Bidder telah mendeklarasikan ukuran dalam respons bid. Pernyataan ukuran diperlukan setiap kali ada lebih dari satu ukuran dalam permintaan.
- Pengecualian dibuat untuk iklan interstisial. Untuk interstisial, lebarnya harus minimal 50% dari lebar layar dan tingginya minimal 40% dari tinggi layar.
Anda dapat menentukan materi iklan cuplikan HTML menggunakan kode HTML yang valid dan
dirender dengan benar, tetapi perhatikan batasan untuk menentukan
kolom crid
di
bagian Buat pesan BidResponse.
Salah satu penggunaannya adalah untuk memasukkan informasi tambahan ke dalam argumen URL yang
diambil dari server Anda sebagai bagian dari rendering iklan. Hal ini memungkinkan Anda meneruskan
data arbitrer tentang tayangan kembali ke server Anda sendiri.
Sebagian besar kebijakan untuk cuplikan HTML yang ditampilkan dalam respons bid sama dengan kebijakan untuk iklan pihak ketiga. Lihat Panduan Program Authorized Buyers, Persyaratan untuk penayangan iklan pihak ketiga, dan Mendeklarasikan URL klik-tayang di iklan untuk mengetahui informasi selengkapnya.
Menentukan makro
Makro adalah teks berformat yang disematkan ke dalam beberapa kolom respons bid yang berisi
URL yang diganti dengan nilai yang relevan pada waktu penayangan iklan. Misalnya,
jika bid pemenang Anda menyertakan makro AUCTION_PRICE
dalam materi iklan
cuplikan HTML yang disertakan dengan bid Anda, makro tersebut akan diganti dengan
nilai yang dapat Anda dekripsi untuk menentukan jumlah yang Anda bayar untuk tayangan di
lelang.
Anda dapat menyertakan makro di kolom berikut:
-
BidResponse.seatbid.bid.adm
Makro didukung untuk format cuplikan HTML, native, URL video, dan XML VAST video.
-
BidResponse.seatbid.bid.adm_native.eventtrackers.url
-
BidResponse.seatbid.bid.adm_native.imptrackers
-
BidResponse.seatbid.bid.ext.amp_ad_url
Hanya makro
WINNING_PRICE
danWINNING_PRICE_ESC
khusus Google yang didukung untuk materi iklan AMP. -
BidResponse.seatbid.bid.burl
-
BidResponse.seatbid.bid.ext.impression_tracking_url
Gunakan ini, bukan
BidResponse.seatbid.bid.burl
, jika Anda memerlukan lebih dari satu URL penagihan.
Misalnya, Anda dapat menyertakan makro sebagai bagian dari cuplikan HTML dengan
menyisipkan ${MACRO}
dalam URL yang digunakan untuk mengambil materi iklan,
dengan MACRO
adalah salah satu makro yang didukung yang dijelaskan dalam
spesifikasi OpenRTB.
Makro Google RTB
Google mendukung makro tambahan selain yang ditemukan dalam spesifikasi
OpenRTB. Makro ini diformat secara berbeda, dan akan muncul sebagai
%%MACRO%%
jika disematkan dalam URL. Tabel berikut menjelaskan
makro ini:
Makro | Deskripsi |
---|---|
ADVERTISING_IDENTIFIER |
Memungkinkan pembeli menerima IDFA iOS atau ID Iklan Android saat rendering tayangan iklan. Lihat Mendekode ID Pengiklan untuk mengetahui detailnya. |
CACHEBUSTER |
Representasi string dari bilangan bulat empat byte acak tanpa tanda tangan. |
CLICK_URL_UNESC |
URL klik tanpa konversi karakter untuk iklan. Dalam cuplikan, versi URL klik pihak ketiga yang di-escape harus langsung mengikuti makro. Misalnya, jika URL klik pihak ketiga adalah
<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> Pada waktu penayangan iklan, ukuran ini diperluas menjadi: <a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> URL tersebut akan mendaftarkan klik dengan Google terlebih dahulu, lalu mengalihkan ke URL klik pihak ketiga. |
CLICK_URL_ESC |
URL klik yang di-escape untuk iklan. Gunakan ini, bukan
Misalnya, kode berikut dapat digunakan dalam cuplikan HTML: <a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a> Pada waktu penayangan iklan, ukuran ini diperluas menjadi: <a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a> Tindakan ini akan mendaftarkan klik dengan Anda dapat menambahkan URL yang di-escape ganda setelah
|
CLICK_URL_ESC_ESC |
URL yang di-escape ganda untuk iklan. Gunakan ini, bukan
Misalnya, kode berikut dapat digunakan dalam cuplikan HTML: <a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a> Pada waktu penayangan iklan, ukuran ini diperluas menjadi: <a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a> |
SCHEME |
Diperluas menjadi http: jika permintaan bid tidak memerlukan SSL atau menjadi
https: jika permintaan bid memerlukan SSL. |
SITE |
Domain URL yang di-escape dari URL konten atau ID anonim untuk inventaris anonim. |
SITE_URL |
Tidak digunakan lagi. Diganti dengan makro SITE yang menyediakan fungsi yang sama. |
TZ_OFFSET |
Offset zona waktu. |
VERIFICATION |
Nilai yang berbeda untuk produksi dan saat materi iklan dipindai
di pipeline verifikasi. Formatnya adalah:
Misalnya, jika materi iklan menyertakan
|
WINNING_PRICE |
Biaya tayangan iklan yang dienkode (yaitu, CPI, bukan CPM) dalam
mikro mata uang akun. Misalnya, CPM pemenang sebesar $5 USD
setara dengan 5.000.000 mikro CPM, atau 5.000 mikro CPI. Nilai Untuk mengurai makro ini, Anda harus menerapkan aplikasi yang mendekripsi konfirmasi harga. Lihat halaman Mendekode Konfirmasi Harga untuk mengetahui informasi selengkapnya. |
WINNING_PRICE_ESC |
WINNING_PRICE yang di-escape URL. |
Google mewajibkan Anda menggunakan makro CLICK_URL_UNESC
atau
CLICK_URL_ESC
dalam materi iklan iklan
yang ditayangkan pihak ketiga. Google menggunakan makro CLICK_URL
untuk pelacakan klik.
Pengelakan URL dalam makro menggunakan skema berikut:
- Karakter spasi diganti dengan tanda plus (
+
). - Karakter alfanumerik (0-9, a-z, A-Z) dan karakter dari kumpulan !()*,-./:_~ tetap tidak berubah.
- Semua karakter lainnya diganti dengan
%XX
, denganXX
adalah angka heksadesimal yang mewakili karakter.
Pembatasan dan persyaratan penayang
Permintaan bid menyertakan informasi tentang jenis batasan dan persyaratan yang ditetapkan penayang pada materi iklan dalam lelang.
BidRequest.bcat
- Anda dapat membandingkan kategori yang diblokir yang ditentukan oleh kolom ini dengan kategori
yang terdeteksi untuk materi iklan yang dikirimkan menggunakan kolom
detectedCategories
Real-time Bidding API.
- Anda dapat membandingkan kategori yang diblokir yang ditentukan oleh kolom ini dengan kategori
yang terdeteksi untuk materi iklan yang dikirimkan menggunakan kolom
BidRequest.imp.ext.allowed_vendor_type
BidRequest.imp.secure
- Dalam praktiknya, nilai ini akan selalu ditetapkan ke
true
karena Google mewajibkan dukungan SSL untuk semua materi iklan.
- Dalam praktiknya, nilai ini akan selalu ditetapkan ke
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
Jangan pernah mengajukan bid dengan iklan yang berisi fitur yang dibatasi. Untuk fitur yang diizinkan
seperti jenis vendor, tampilkan iklan hanya jika jenis vendornya ada dalam
daftar allowed_vendor_type
di BidRequest
. Hanya format
iklan yang ditentukan dalam permintaan bid dengan mengisi kolom seperti
BidRequest.imp.banner
yang harus disertakan dalam bid Anda. Lihat
komentar untuk kolom ini dalam definisi buffering protokol
BidRequest
untuk mengetahui detail selengkapnya.
Jika iklan ditampilkan di BidResponse
, Anda harus
menetapkan kolom BidResponse.seatbid.bid.attr
,
BidResponse.seatbid.bid.cat
, dan
BidResponse.seatbid.bid.adomain
atau
BidResponse.seatbid.bid.adm_native.link.url
secara akurat di
BidResponse
. Jika iklan memiliki beberapa nilai yang berlaku untuk kolom
ini, Anda harus menyertakan setiap nilai. Lihat komentar untuk kolom ini dalam
definisi buffering protokol BidResponse
untuk mengetahui detail selengkapnya.
Respons yang tidak menetapkan kolom ini akan dihapus.
Pengukuran Terbuka
Pengukuran Terbuka memungkinkan Anda menentukan vendor pihak ketiga yang menyediakan layanan pengukuran dan verifikasi independen untuk iklan yang ditayangkan ke lingkungan aplikasi seluler.
Format iklan yang didukung mencakup iklan video, banner, dan interstisial. Untuk informasi selengkapnya tentang cara menggunakan Pengukuran Terbuka dalam respons bid yang berisi format ini, lihat artikel Pusat Bantuan Open Measurement SDK.
Contoh respons bid
Bagian berikut menunjukkan contoh respons bid untuk berbagai jenis iklan.
Banner aplikasi
Berikan contohnya
Respons serialisasiid: "8L85Di7e9374c3jriwo2W0" seatbid { bid { id: "0L7hx7783rjD1hT81FH" impid: "1" price: 0.4000000059604645 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_192654" w: 300 h: 50 burl: "https://test.com/imp?id=123456" [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" billing_id: 70614819650 skadn { version: "3.0" network: "Y8HK1z22" campaign: "72382716" itunesitem: "953637916" sourceapp: "com.google.testapp" fidelities { fidelity: VIEW_THROUGH_ADS nonce: "bf105d9a-6df9-4d49-a10d-44e21a539415" timestamp: "1730359683568" signature: "589Vb2BJlF955D6kUj197D84U8UWWtngYQ73o1SVMEcAk6ju348j0454AOxpR74j95BF13RLC119Qo73nyq2qgp4IJENP6yE" } fidelities { fidelity: STOREKIT_RENDERED_ADS nonce: "bf105d9a-6df9-4d49-a10d-44e21a539415" timestamp: "1730359683568" signature: "3Av39t8684YefY03NT715Z2dTtXQ39pQH7C9aq6Wuh4WzbS044734J7FAlw7690Nm7743G7Z4P6hX8K7H607886b7FBHTCYY" } skadn_opts { always_open_appstore: true } } app_promotion_type: INSTALLS } } seat: "4095:5416:758587" } cur: "USD" [com.google.doubleclick.bid_response] { processing_time_ms: 16 }
Berikan contohnya
{ "id": "8L85Di7e9374c3jriwo2W0", "seatbid": [ { "bid": [ { "id": "0L7hx7783rjD1hT81FH", "impid": "1", "price": 0.4000000059604645, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_192654", "w": 300, "h": 50, "burl": "https://test.com/imp?id=123456", "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456" ], "billing_id": "70614819650", "skadn": { "version": "3.0", "network": "Y8HK1z22", "campaign": "72382716", "itunesitem": "953637916", "sourceapp": "com.google.testapp", "fidelities": [ { "fidelity": 0, "nonce": "bf105d9a-6df9-4d49-a10d-44e21a539415", "timestamp": "1730359683568", "signature": "589Vb2BJlF955D6kUj197D84U8UWWtngYQ73o1SVMEcAk6ju348j0454AOxpR74j95BF13RLC119Qo73nyq2qgp4IJENP6yE" }, { "fidelity": 1, "nonce": "bf105d9a-6df9-4d49-a10d-44e21a539415", "timestamp": "1730359683568", "signature": "3Av39t8684YefY03NT715Z2dTtXQ39pQH7C9aq6Wuh4WzbS044734J7FAlw7690Nm7743G7Z4P6hX8K7H607886b7FBHTCYY" } ], "skadn_opts": { "always_open_appstore": 1 } }, "app_promotion_type": 1 } } ], "seat": "4095:5416:758587" } ], "cur": "USD", "ext": { "processing_time_ms": 16 } }
Berikan contohnya
Respons serialisasiad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 44095 billing_id: 99718422589 } click_through_url: "google.com" attribute: 47 attribute: 50 category: 7 buyer_creative_id: "test_creative_id_997551" advertiser_name: "Google" width: 300 height: 250 impression_tracking_url: "https://test.com/imp?id=123456" skadn { version: "4.0" network: "DofiF4X5" itunesitem: "448730563" sourceapp: "195751234" fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "a869c155-3566-475c-8cb9-d0a75159e0c5" timestamp: 1728803273481 signature: "0KXE97ri9xnW9M10NDg64r014MsN7SO5R11N29oe8h8Cuao3K477i9dFH61bKny28iA6337A6EK6T3fgR9p9EJK12qvaY96E" } fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "a869c155-3566-475c-8cb9-d0a75159e0c5" timestamp: 1728803273481 signature: "EF1Vj82st371O79029Q9067AL00972U3NqNG9u295r8B4681c12Se2jk34XSR8404681c9WGa9a69779CQ87o9T81Y85198C" } source_identifier: 1 } advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 13
Interstisial Aplikasi
Berikan contohnya
Respons serialisasiid: "6700Z3L2o0zSw9g8IqmiQ5" seatbid { bid { id: "0UBHDN63xQ8hj1F8184" impid: "1" price: 0.016728 adid: "test_creative_id_179418" adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_179418" cat: "IAB13-7" w: 300 h: 600 burl: "https://test.com/imp?id=123456" [com.google.doubleclick.bid] { billing_id: 14443955188 dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } seat: "2054:4176:757161" group: false } bidid: "TI590379-wi3Z9CU8-6j8V-Uj0l1I102h2q" cur: "USD"
Berikan contohnya
{ "id": "6700Z3L2o0zSw9g8IqmiQ5", "seatbid": [ { "bid": [ { "id": "0UBHDN63xQ8hj1F8184", "impid": "1", "price": 0.016728, "adid": "test_creative_id_179418", "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_179418", "cat": [ "IAB13-7" ], "w": 300, "h": 600, "burl": "https://test.com/imp?id=123456", "ext": { "billing_id": "14443955188", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } } } ], "seat": "2054:4176:757161", "group": 0 } ], "bidid": "TI590379-wi3Z9CU8-6j8V-Uj0l1I102h2q", "cur": "USD" }
Berikan contohnya
Respons serialisasiad { html_snippet: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adslot { id: 1 max_cpm_micros: 80117 min_cpm_micros: 0 billing_id: 12608068331 deal_id: 0 } click_through_url: "google.com" attribute: 47 buyer_creative_id: "test_creative_id_266407" advertiser_name: "Google" width: 756 height: 384 impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" dsa_transparency { buyer_render: true } } processing_time_ms: 11
Video interstisial aplikasi
Berikan contohnya
Respons serialisasiid: "79N7F1708654i75q3k69j1" seatbid { bid { id: "1gR655162hOsH9q3X6R" impid: "1" price: 2.3833 adid: "test_creative_id_648299" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_648299" attr: VIDEO_IN_BANNER_AUTO_PLAY w: 1920 h: 1080 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } billing_id: 11004606416 skadn { version: "4.0" network: "O5O88B57" itunesitem: "509167749" nonce: "" sourceapp: "com.google.testapp" timestamp: "OMITTED" signature: "OMITTED" fidelities { fidelity: VIEW_THROUGH_ADS nonce: "d3be52b1-8ef6-4277-8922-54450b07fd5b" timestamp: "1730409097616" signature: "8d52E359K158Dj1u89EpLP3544Qz7B10CV0a92YZJ6JXX8d9uXi72N43ZxjRl96Ph7v8R5u1k5y9Aoy3jZcN3C5dxRU390qc" } fidelities { fidelity: STOREKIT_RENDERED_ADS nonce: "d3be52b1-8ef6-4277-8922-54450b07fd5b" timestamp: "1730409097616" signature: "43C2b79X4nPY913Qs3jJLLhCjUNZg39cK022pCE2wH731Ie7q4584b5UGG137Jh12I2R6a0e35LJbvQJbn5o564roQ7G1Mtd" } sourceidentifier: "1" } app_promotion_type: INSTALLS } } seat: "1061:9160:833989" } bidid: "m7V3rjn0-aF599ZZ6-37hA-b9o7DU8CLrtp" cur: "USD"
Berikan contohnya
{ "id": "79N7F1708654i75q3k69j1", "seatbid": [ { "bid": [ { "id": "1gR655162hOsH9q3X6R", "impid": "1", "price": 2.3833, "adid": "test_creative_id_648299", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_648299", "attr": [ 6 ], "w": 1920, "h": 1080, "ext": { "event_notification_token": { "payload": "token" }, "billing_id": "11004606416", "skadn": { "version": "4.0", "network": "O5O88B57", "itunesitem": "509167749", "nonce": "", "sourceapp": "com.google.testapp", "timestamp": "OMITTED", "signature": "OMITTED", "fidelities": [ { "fidelity": 0, "nonce": "d3be52b1-8ef6-4277-8922-54450b07fd5b", "timestamp": "1730409097616", "signature": "8d52E359K158Dj1u89EpLP3544Qz7B10CV0a92YZJ6JXX8d9uXi72N43ZxjRl96Ph7v8R5u1k5y9Aoy3jZcN3C5dxRU390qc" }, { "fidelity": 1, "nonce": "d3be52b1-8ef6-4277-8922-54450b07fd5b", "timestamp": "1730409097616", "signature": "43C2b79X4nPY913Qs3jJLLhCjUNZg39cK022pCE2wH731Ie7q4584b5UGG137Jh12I2R6a0e35LJbvQJbn5o564roQ7G1Mtd" } ], "sourceidentifier": "1" }, "app_promotion_type": 1 } } ], "seat": "1061:9160:833989" } ], "bidid": "m7V3rjn0-aF599ZZ6-37hA-b9o7DU8CLrtp", "cur": "USD" }
Berikan contohnya
Respons serialisasiad { adslot { id: 1 max_cpm_micros: 2454000 billing_id: 95400492935 deal_id: 1 } click_through_url: "google.com" attribute: 22 attribute: 105 buyer_creative_id: "test_creative_id_716344" width: 0 height: 0 video_vast_xml: "OMITTED_VAST_XML" event_notification_token: "token" skadn { version: "4.0" network: "113tdmXM" itunesitem: "460184775" sourceapp: "751592940" fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "1c3ed154-33f5-4cb7-960a-3e571cb9c3b9" timestamp: 1728932156118 signature: "7m3PDLV778PZ741T2I3561kkCW3UjIp5p63989cP311iiZ2445v20HP5ymfD8ThYO7437h22075h4h9O21S8A08U1kw3qis2" } fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "1c3ed154-33f5-4cb7-960a-3e571cb9c3b9" timestamp: 1728932156118 signature: "28X90AX01Z762a3W92186a40Eb4J8ekACsYFo55J8vD445f5pcA80MH45753Iy887596gK8ax0s55ndC23eg0V7P862yS240" } source_identifier: 1 } advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 51
Native aplikasi
Berikan contohnya
Respons serialisasiid: "96Z599PGNvp7Mr99138Fm0" seatbid { bid { id: "NQb32Ge7Rtt84wFn2p8" impid: "1" price: 0.153584 adid: "test_creative_id_272596" adomain: "google.com" crid: "test_creative_id_272596" cat: "IAB13-7" burl: "https://test.com/imp?id=123456" adm_native { ver: "1.2" assets { id: 1 required: true title { text: "Luxury Mars Cruises" } } assets { id: 2 required: true data { value: "Visit the planet in a luxury spaceship." } } assets { id: 3 required: false data { value: "Book today" } } assets { id: 4 required: true data { value: "Galactic Luxury Cruises" } } assets { id: 5 required: true img { url: "https://native.test.com/image?id=123456" w: 1200 h: 627 } } link { url: "https://www.google.com" } eventtrackers { event: IMPRESSION method: IMG url: "https://test.com/event?id=123456" } privacy: "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED" } [com.google.doubleclick.bid] { ad_choices_destination_url: "https://test.com/preferences" billing_id: 29846056590 dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } bid { id: "4vwb23qm6iqU6w6G978" impid: "1" price: 0.153584 adid: "test_creative_id_272596" adomain: "google.com" crid: "test_creative_id_272596" cat: "IAB21" burl: "https://test.com/imp?id=123456" adm_native { ver: "1.2" assets { id: 1 required: true title { text: "Luxury Mars Cruises" } } assets { id: 2 required: true data { value: "Visit the planet in a luxury spaceship." } } assets { id: 3 required: false data { value: "Book today" } } assets { id: 4 required: true data { value: "Galactic Luxury Cruises" } } assets { id: 5 required: true img { url: "https://native.test.com/image?id=123456" w: 1200 h: 627 } } link { url: "https://www.google.com" } eventtrackers { event: IMPRESSION method: IMG url: "https://test.com/event?id=123456" } privacy: "https://adssettings.google.com/whythisad?source=display&reasons=OMITTED" } [com.google.doubleclick.bid] { ad_choices_destination_url: "https://test.com/preferences" dsa { behalf: "TEST_ADVERTISER" paid: "TEST_PAYING_ENTITY" adrender: false } } } seat: "4528:1161:591635" group: false } bidid: "hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC" cur: "USD"
Berikan contohnya
{ "id": "96Z599PGNvp7Mr99138Fm0", "seatbid": [ { "bid": [ { "id": "NQb32Ge7Rtt84wFn2p8", "impid": "1", "price": 0.153584, "adid": "test_creative_id_272596", "adomain": [ "google.com" ], "crid": "test_creative_id_272596", "cat": [ "IAB13-7" ], "burl": "https://test.com/imp?id=123456", "ext": { "ad_choices_destination_url": "https://test.com/preferences", "billing_id": "29846056590", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } }, "adm": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}" }, { "id": "4vwb23qm6iqU6w6G978", "impid": "1", "price": 0.153584, "adid": "test_creative_id_272596", "adomain": [ "google.com" ], "crid": "test_creative_id_272596", "cat": [ "IAB21" ], "burl": "https://test.com/imp?id=123456", "ext": { "ad_choices_destination_url": "https://test.com/preferences", "dsa": { "behalf": "TEST_ADVERTISER", "paid": "TEST_PAYING_ENTITY", "adrender": 0 } }, "adm": "{\"ver\":\"1.2\",\"assets\":[{\"id\":1,\"required\":1,\"title\":{\"text\":\"Luxury Mars Cruises\"}},{\"id\":2,\"required\":1,\"data\":{\"value\":\"Visit the planet in a luxury spaceship.\"}},{\"id\":3,\"required\":0,\"data\":{\"value\":\"Book today\"}},{\"id\":4,\"required\":1,\"data\":{\"value\":\"Galactic Luxury Cruises\"}},{\"id\":5,\"required\":1,\"img\":{\"url\":\"https://native.test.com/image?id=123456\",\"w\":1200,\"h\":627}}],\"link\":{\"url\":\"https://www.google.com\"},\"eventtrackers\":[{\"event\":1,\"method\":1,\"url\":\"https://test.com/event?id=123456\"}],\"privacy\":\"https://adssettings.google.com/whythisad?source=display&reasons=OMITTED\"}" } ], "seat": "4528:1161:591635", "group": 0 } ], "bidid": "hgu4ev7j-ZK929XM0-79f7-0A23O0VN2CFC", "cur": "USD" }
Berikan contohnya
Respons serialisasiad { adslot { id: 1 max_cpm_micros: 158000 billing_id: 41106584355 deal_id: 1 } click_through_url: "google.com" attribute: 70 buyer_creative_id: "test_creative_id_251451" advertiser_name: "Google" native_ad { headline: "Luxury Mars Cruises" body: "Visit the planet in a luxury spaceship." call_to_action: "Book today" advertiser: "Galactic Luxury Cruises" image { url: "https://native.test.com/image?id=123456" width: 1200 height: 222 } app_icon { url: "https://native.test.com/icon?id=123456" width: 512 height: 512 } star_rating: 4.300000190734863 click_link_url: "https://www.google.com" } impression_tracking_url: "https://test.com/imp?id=123456" impression_tracking_url: "https://test.com/imp?id=123456" event_notification_token: "token" skadn { version: "4.0" network: "l6x39K4z" itunesitem: "731305960" sourceapp: "627009739" fidelities { fidelity_type: STOREKIT_RENDERED_ADS nonce: "9216faff-74a9-4b35-badc-66878c35f67c" timestamp: 1728975919221 signature: "b0USXkmg02Q3v6p301kYOHG36CCOWWdEo52RHRttB9t8PTNi79qL17E4D6h7UeUSuq479oTK13G2Ev34MJlU86C5vY1SMVw2" } fidelities { fidelity_type: VIEW_THROUGH_ADS nonce: "9216faff-74a9-4b35-badc-66878c35f67c" timestamp: 1728975919221 signature: "4Cf4NH6239z9f3wa8j6420Z7H0UISYxyxN5720444dkq6457I5FY0Jg8bk1xge2P8YgiDp74l2738136v2g1A8D50331IRm0" } source_identifier: 1 } click_tracking_urls: "https://google.com/rtb/click?imp_id=55d2112c-4947-4da5-bc37-b79ebf4577dd" advertised_app_id: "APP_ID_OMITTED" app_promotion_type: INSTALLS } processing_time_ms: 63
Video web
Berikan contohnya
Respons serialisasiid: "b2F6m05a9d83V7I35iw415" seatbid { bid { id: "Ob7259K5679O36pMt00" impid: "1" price: 1.52 adid: "test_creative_id_262797" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_262797" exp: 3600 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } billing_id: 47460168025 } } bid { id: "0890di791A75n9R13jM" impid: "1" price: 1.2 adid: "test_creative_id_262797" adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" adomain: "google.com" crid: "test_creative_id_262797" exp: 3600 [com.google.doubleclick.bid] { event_notification_token { payload: "token" } } } seat: "2121:7826:598388" } cur: "USD"
Berikan contohnya
{ "id": "b2F6m05a9d83V7I35iw415", "seatbid": [ { "bid": [ { "id": "Ob7259K5679O36pMt00", "impid": "1", "price": 1.52, "adid": "test_creative_id_262797", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_262797", "exp": 3600, "ext": { "event_notification_token": { "payload": "token" }, "billing_id": "47460168025" } }, { "id": "0890di791A75n9R13jM", "impid": "1", "price": 1.2, "adid": "test_creative_id_262797", "adm": "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%", "adomain": [ "google.com" ], "crid": "test_creative_id_262797", "exp": 3600, "ext": { "event_notification_token": { "payload": "token" } } } ], "seat": "2121:7826:598388" } ], "cur": "USD" }
Berikan contohnya
Respons serialisasifad { adslot { id: 1 max_cpm_micros: 68340760 min_cpm_micros: 0 billing_id: 75752641104 deal_id: 0 } click_through_url: "google.com" vendor_type: 145 attribute: 47 attribute: 8 video_url: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%" buyer_creative_id: "test_creative_id_877383" advertiser_name: "Google" event_notification_token: "token" dsa_transparency { buyer_render: true } } processing_time_ms: 17
Banner web seluler untuk bidder bursa
Berikan contohnya
Respons serialisasiid: "l30Zu42070Man1Z5u751yG" seatbid { bid { id: "4X6uu65F9J3m467C571" impid: "1" price: 0.17 adm: "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>" adomain: "google.com" crid: "test_creative_id_941528" w: 320 h: 50 [com.google.doubleclick.bid] { impression_tracking_url: "https://test.com/impression?id=123456" impression_tracking_url: "https://test.com/impression?id=123456" event_notification_token { payload: "token" } billing_id: 50962964480 } } seat: "7632:7504:809671" } bidid: "II638Xkf-6432F06d-VGu8-27B4407D136w" [com.google.doubleclick.bid_response] { processing_time_ms: 70 }
Berikan contohnya
{ "id": "l30Zu42070Man1Z5u751yG", "seatbid": [ { "bid": [ { "id": "4X6uu65F9J3m467C571", "impid": "1", "price": 0.17, "adm": "<iframe marginwidth=0 marginheight=0 height=600 frameborder=0 width=160 scrolling=no src=\"https://test.com/ads?id=123456&curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>", "adomain": [ "google.com" ], "crid": "test_creative_id_941528", "w": 320, "h": 50, "ext": { "impression_tracking_url": [ "https://test.com/impression?id=123456", "https://test.com/impression?id=123456" ], "event_notification_token": { "payload": "token" }, "billing_id": "50962964480" } } ], "seat": "7632:7504:809671" } ], "bidid": "II638Xkf-6432F06d-VGu8-27B4407D136w", "ext": { "processing_time_ms": 70 } }