Format iklan SDK Pembeli

Iklan SDK pembeli menggunakan materi iklan yang dirender oleh SDK Anda sendiri.

Inventaris aplikasi seluler dari penayang yang mengintegrasikan bidding Anda adaptor ke aplikasinya dapat menerima bid dengan format iklan yang dirender SDK pembeli. Cara rendernya didasarkan pada Penerapan SDK dan SDKRenderedAd yang Anda kirimkan di respons bid.

Anda dapat mengajukan bid termasuk iklan yang dirender SDK pembeli atau iklan lainnya format baru didukung oleh Google Mobile Ads SDK, tetapi tawaran yang berisi keduanya difilter.

Persyaratan

Iklan SDK pembeli tersedia untuk pembeli yang disetujui. Format ini memerlukan dari Anda dan penerbit. Hubungi Manajer Akun Teknis Anda untuk mengonfigurasi akun untuk iklan SDK pembeli. Anda kemudian dapat menerapkan Bidding yang memungkinkan SDK Anda untuk berkomunikasi dengan Google Mobile Ads SDK. Penayang perlu mengintegrasikan SDK dan adaptor ke dalam aplikasi seluler mereka.

Sebaiknya kirimkan materi iklan untuk ulasan sebelum menyertakannya dalam respons bid. Menghubungi Manajer Akun Teknis Anda jika Anda tidak mengetahui jenis materi iklan pada waktu bidding.

Jika permintaan bid mendukung format iklan ini, Anda dapat menentukan iklan yang dirender dengan SDK Anda dengan menetapkan kolom sdk_rendered_ad dalam bid respons.

Permintaan bid

Permintaan bid untuk inventaris aplikasi seluler menyertakan detail tentang SDK dan adaptor di aplikasi penayang yang dapat Anda gunakan untuk merender di bidang:

ID SDK

Anda dapat menggunakan permintaan bid untuk menemukan id yang harus Anda berikan dalam bid untuk iklan yang dirender SDK pembeli.

Lihat kolom berikut:

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Protokol Google RTB (tidak digunakan lagi): BidRequest.mobile.installed_sdk

Anda dapat mempelajari lebih lanjut pesan InstalledSdk di OpenRTB dan Google panduan protokol.

Pemetaan Unit Iklan

Anda dapat menggunakan permintaan bid untuk membaca pemetaan unit iklan yang cocok dengan slot bid.

Lihat kolom berikut:

  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping
  • Protokol Google RTB (tidak digunakan lagi): BidRequest.AdSlot.ad_unit_mapping

Anda dapat mempelajari objek AdUnitMapping lebih lanjut di OpenRTB dan Google panduan protokol.

Sinyal Aman

Penayang dapat membagikan sinyal aman kepada bidder. Anda dapat membacanya dari Objek BuyerGeneratedRequestData OpenRTB atau dari layanan Google Objek SecureSignal protokol RTB.

Lihat kolom berikut:

  • OpenRTB: BidRequest.imp.ext.buyer_generated_request_data.data
  • Protokol Google RTB (tidak digunakan lagi): BidRequest.AdSlot.SecureSignal.data

Anda dapat mempelajari lebih lanjut cara menyatakan sinyal aman di OpenRTB dan Google panduan protokol.

Permintaan Pengujian

Anda dapat membaca kolom Permintaan Percobaan untuk memahami apakah permintaan bid uji coba.

Lihat kolom berikut:

  • OpenRTB: BidRequest.test
  • Protokol Google RTB (tidak digunakan lagi): BidRequest.is_test

Anda dapat mempelajari lebih lanjut kolom Test di OpenRTB dan Google panduan protokol.

Contoh permintaan bid

id: "<bid_request_id>"
imp {
  id: "1"
  banner {
    w: 320
    h: 50
    ...
  }
...
  adx_ext {
   ...
    ad_unit_mapping {
      keyvals {
        key: "key_1"
        value: "value_1"
      }
      keyvals {
        key: "key_2"
        value: "value_2"
      }
      ...
      format: FORMAT_BANNER
    }
  }
}
app {
 ...
  adx_ext {
    installed_sdk {
      id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      sdk_version {
        major: 1
        minor: 2
        micro: 30
      }
      adapter_version {
        major: 1
        minor: 2
        micro: 3000
      }
    }
    installed_sdk {
    ...
    }
    ...
  }
}
device {
  ...
}
user {
  ...
  }
  adx_ext {
    eids {
      source: "com.google.ads.mediation.partner.PartnerMediationAdapter"
      uids {
        id: "<partner_signal_string>"
      }
    }
  }
}
at: 1
tmax: 1000
cur: "USD"
test: 1
...
adx_ext {
  google_query_id: "<query_string>"
  ...
}

Respons bid

Kolom berikut wajib diisi dalam respons bid:

  • OpenRTB:
    • BidResponse.seatbid.bid.adomain
    • BidResponse.seatbid.bid.ext.billing_id
    • BidResponse.seatbid.bid.crid
    • BidResponse.seatbid.bid.w
    • BidResponse.seatbid.bid.h
  • Protokol Google RTB (tidak digunakan lagi):
    • BidResponse.Ad.click_through_url
    • BidResponse.Ad.AdSlot.billing_id
    • BidResponse.Ad.buyer_creative_id
    • BidResponse.Ad.width
    • BidResponse.Ad.height

Selain itu, respons bid Anda harus menyertakan SdkRenderedAd dengan berikut ini:

ID SDK

Gunakan kolom id untuk memberikan ID bagi SDK untuk merender iklan.

Anda dapat menemukan ID dalam permintaan bid dengan kolom berikut:

  • OpenRTB: BidRequest.app.ext.installed_sdk
  • Protokol Google RTB (tidak digunakan lagi): BidRequest.mobile.installed_sdk

Anda dapat mempelajari lebih lanjut pesan InstalledSdk di OpenRTB dan Google panduan protokol.

Iklan yang dideklarasikan

Gunakan kolom declared_ad untuk menyediakan materi iklan yang memenuhi persyaratan CreativeEnforcementSettings dan mewakili data rendering. Hanya salah satu dari html_snippet, video_url, video_vast_xml, atau native_response harus diisi.

Jika Anda tidak mengisi declared_ad, kami tidak dapat meninjau materi iklan dan semua bid dengan materi iklan difilter dari lelang.

Merender data

Gunakan kolom rendering_data untuk memberikan data bagi SDK pembeli untuk gunakan untuk menampilkan iklan.

  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
  • Protokol Google RTB (tidak digunakan lagi): BidResponse.ad.sdk_rendered_ad.rendering_data

Bid untuk menempatkan iklan SDK pembeli harus menentukan materi iklan di declared_ad kolom tersebut. Iklan yang dideklarasikan harus mewakili rendering_data secara akurat.

Berikut adalah contoh objek SdkRenderedAd:

{
  "id": "1234567",
  "rendering_data": "\xd58...,\xd4\x89\xd\xf9",
  "declared_ad": {
    "html_snippet": "<iframe src=\"https://example.com/ads?id=123&
      curl=%%CLICK_URL_ESC%%&wprice=%%WINNING_PRICE_ESC%%\"></iframe>",
  }
}

Sebaiknya gunakan API Bidding Real-time untuk mengirimkan materi iklan untuk ulasan sebelum Anda menyertakannya dalam respons bid.

Lihat Google dan Panduan protokol OpenRTB untuk mengetahui detail selengkapnya tentang kolom SdkRenderedAd.

Contoh respons bid

Berikut adalah contoh respons bid untuk setiap format iklan:

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 99
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 320
    h: 50
    burl: "https://abc.com/billing?td=fn&win_price=${AUCTION_PRICE}"
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          html_snippet: "<!doctype html> <html> ... </html>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
      billing_id: 141763360450
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Interstisial

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Video reward

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 412
    h: 775
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          video_vast_xml: "<VAST version=\"2.0\"><Ad>...</Ad></VAST>"
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Native

id: "<bid_request_id>"
seatbid {
  bid {
    id: "<bidder_generated_response_id>"
    impid: "1"
    price: 400
    adomain: "https://play.google.com/store/apps/details?id=com.test.app"
    cid: "<billing_id>"
    crid: "<creative_id>"
    w: 1200
    h: 627
    adx_ext {
      sdk_rendered_ad {
        id: "com.google.ads.mediation.partner.PartnerMediationAdapter"
        rendering_data: "<rendering_data_string>"
        declared_ad {
          click_through_url: "https://play.google.com/store/apps/details?id=com.test.app"
          native_response {
            ...
            assets {
              id: 1
              title {
                text: ""
              }
            }
            assets {
              id: 2
              data {
                value: "<some_string>"
              }
            }
            assets {
              id: 3
              data {
                value: "View now"
              }
            }
            assets {
              id: 4
              img {
                url: "<valid_image_url>"
                w: 1200
                h: 627
                type: 3
              }
            }
            assets {
              id: 5
              img {
                url: "<valid_image_url>"
                w: 100
                h: 100
                type: 1
              }
            }
            assets {
              id: 6
              data {
                value: ""
              }
            }
            assets {
              id: 7
              data {
                value: "<some_string>"
              }
            }
            link {
              url: "<destination_link>"
            }
          }
        }
      }
      event_notification_token {
        payload: "<payload_string>"
      }
    }
  }
}
bidid: "<bidder_generated_response_id>"
cur: "USD"

Peninjauan materi iklan

Materi iklan ditinjau sebelum dapat ditayangkan untuk memastikan bahwa materi iklan memenuhi policies, dan penayang setelan.

Berikut dua cara untuk mengirimkan materi iklan untuk ditinjau:

Real-time Bidding API (direkomendasikan)

Anda dapat menggunakan buyers.creatives.create real-time Bidding API untuk mengirim materi iklan untuk ditinjau.

API ini hanya memerlukan satu pengiriman per materi iklan dan memungkinkan Anda memeriksa status peninjauan materi iklan Anda.

Respons bid

Anda dapat mengirimkan materi iklan baru langsung di respons bid.

Anda harus menggunakan kolom declared_ad dari objek SdkRenderedAd untuk mengirim respons bid dengan materi iklan SDK pembeli untuk ditinjau.

Materi iklan yang dikirim dalam respons bid hanya akan ditinjau setelah beberapa bid dikirim. Semua bid yang diajukan sebelum peninjauan selesai difilter dari lelang. Anda dapat menggunakan antarmuka Bidding Real-time atau Bidding Real-time API untuk memeriksa status materi iklan setelah peninjauan dimulai.

Lihat panduan materi iklan untuk secara lebih mendetail.