Format iklan SDK Pembeli

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

Inventaris aplikasi seluler dari penayang yang mengintegrasikan adaptor bidding ke aplikasi mereka dapat menerima bid dengan format iklan yang dirender SDK pembeli. Cara rendering didasarkan pada penerapan SDK dan SDKRenderedAd yang Anda kirimkan dalam respons bid.

Anda dapat menempatkan bid yang menyertakan iklan yang dirender SDK pembeli atau format iklan lainnya yang didukung oleh Google Mobile Ads SDK, tetapi setiap bid yang berisi keduanya akan difilter.

Persyaratan

Iklan SDK Pembeli tersedia untuk pembeli yang disetujui. Format ini memerlukan upaya tambahan dari Anda dan penayang. Hubungi Manajer Akun Teknis Anda guna mengonfigurasi akun untuk iklan SDK pembeli. Kemudian, Anda dapat menerapkan adaptor Bidding yang memungkinkan SDK Anda berkomunikasi dengan Google Mobile Ads SDK. Penayang harus mengintegrasikan SDK dan adaptor Anda ke dalam aplikasi seluler mereka.

Sebaiknya kirim materi iklan untuk ditinjau sebelum menyertakannya dalam respons bid. Hubungi Manajer Akun Teknis 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 respons bid.

Permintaan bid

Permintaan bid untuk inventaris aplikasi seluler menyertakan detail tentang SDK dan adaptor di aplikasi penayang yang dapat Anda gunakan untuk rendering di kolom berikut:

ID SDK

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

Lihat kolom berikut:

  • Authorized Buyers: BidRequest.mobile.installed_sdk
  • OpenRTB: BidRequest.app.ext.installed_sdk

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

Pemetaan Unit Iklan

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

Lihat kolom berikut:

  • Authorized Buyers: BidRequest.AdSlot.ad_unit_mapping
  • OpenRTB: BidRequest.imp.ext.ad_unit_mapping

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

Sinyal Aman

Anda harus membaca objek ID yang Diperpanjang yang merupakan ekstensi standar yang digunakan untuk meneruskan sinyal aman yang dipilih oleh penayang.

Lihat kolom berikut:

  • Authorized Buyers: BidRequest.AdSlot.SecureSignal.data
  • OpenRTB: BidRequest.user.ext.eids.uids.id

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

Permintaan Pengujian

Anda dapat membaca kolom Permintaan Percobaan untuk memahami apakah permintaan bid adalah pengujian.

Lihat kolom berikut:

  • Authorized Buyers: BidRequest.is_test
  • OpenRTB: BidRequest.test

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

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

Bid Slot

Kolom berikut wajib diisi dalam objek BidResponse.seatbid.bid:

  • Authorized Buyers:

    • BidResponse.Ad.click_through_url
    • BidResponse.Ad.AdSlot.billing_id
    • BidResponse.Ad.buyer_creative_id
    • BidResponse.Ad.width
    • BidResponse.Ad.height
  • OpenRTB:

    • BidResponse.seatbid.bid.adomain
    • BidResponse.seatbid.bid.cid
    • BidResponse.seatbid.bid.crid
    • BidResponse.seatbid.bid.w
    • BidResponse.seatbid.bid.h

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

Respons bid Anda harus menyertakan SdkRenderedAd dengan hal berikut:

ID SDK

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

Anda dapat menemukan ID dalam permintaan bid dengan kolom berikut:

  • Authorized Buyers: BidRequest.mobile.installed_sdk
  • OpenRTB: BidRequest.app.ext.installed_sdk

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

Iklan yang dideklarasikan

Gunakan kolom declared_ad untuk menyediakan materi iklan yang memenuhi persyaratan CreativeEnforcementSettings permintaan bid dan mewakili data rendering iklan. Untuk format iklan non-native, hanya salah satu dari html_snippet, video_url, atau video_vast_xml yang harus ditampilkan. Untuk format iklan native, hanya native_response yang harus ditampilkan.

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

Merender data

Gunakan kolom rendering_data untuk memberikan data yang dapat digunakan SDK pembeli untuk merender iklan Anda.

  • Authorized Buyers: BidResponse.ad.sdk_rendered_ad.rendering_data
  • OpenRTB: BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data

Bid untuk menempatkan iklan SDK pembeli harus menentukan materi iklan di kolom declared_ad. 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 mengirim materi iklan untuk ditinjau sebelum Anda menyertakannya dalam respons bid.

Lihat panduan protokol Google dan OpenRTB untuk 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 materi iklan tersebut memenuhi kebijakan dan setelan penayang kami.

Berikut dua cara mengirimkan materi iklan untuk ditinjau:

Real-time Bidding API (direkomendasikan)

Anda dapat menggunakan metode buyers.creatives.create dari Real-time Bidding API untuk mengirimkan materi iklan untuk ditinjau.

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

Respons bid

Anda dapat mengirim materi iklan baru langsung di respons bid.

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

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

Lihat panduan materi iklan untuk mengetahui detail selengkapnya.