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 Anda ke dalam aplikasi mereka dapat menerima bid dengan format iklan yang dirender SDK pembeli. Cara rendernya didasarkan pada implementasi SDK dan SDKRenderedAd yang Anda kirim dalam respons bid.

Anda dapat mengajukan bid yang menyertakan iklan yang dirender SDK pembeli atau format iklan lain yang didukung oleh Google Mobile Ads SDK, tetapi bid apa pun yang berisi keduanya akan difilter.

Persyaratan

Iklan SDK pembeli tersedia untuk pembeli yang disetujui. Format ini memerlukan upaya tambahan dari Anda dan penayang. Hubungi Account Manager Teknis Anda untuk mengonfigurasi akun Anda 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 selulernya.

Sebaiknya kirimkan materi iklan untuk peninjauan sebelum menyertakannya dalam respons bid. Hubungi 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 dengan menetapkan kolom sdk_rendered_ad di 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 SDK yang harus Anda berikan dalam respons bid dengan kolom BidRequest.app.ext.installed_sdk.id.

Anda dapat mempelajari lebih lanjut hal ini di dokumentasi referensi InstalledSdk.

Pemetaan Unit Iklan

Anda dapat menggunakan permintaan bid untuk menemukan pemetaan unit iklan yang cocok dengan slot bid dengan kolom BidRequest.imp.ext.ad_unit_mapping.

Anda dapat mempelajari lebih lanjut hal ini di dokumentasi referensi AdUnitMapping.

Sinyal Aman

Penayang dapat membagikan sinyal aman kepada bidder. Anda dapat menemukannya di BidRequest.imp.ext.buyer_generated_request_data.data.

Anda dapat mempelajari lebih lanjut cara sinyal aman direpresentasikan dalam dokumentasi referensi BuyerGeneratedRequestData.

Permintaan Pengujian

Anda dapat menggunakan kolom BidRequest.test untuk memverifikasi apakah permintaan bid adalah pengujian.

Anda dapat mempelajari lebih lanjut kolom ini di dokumentasi referensi BidRequest.

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 diperlukan dalam respons bid:

  • BidResponse.seatbid.bid.adomain
  • BidResponse.seatbid.bid.ext.billing_id
  • BidResponse.seatbid.bid.crid
  • BidResponse.seatbid.bid.w
  • BidResponse.seatbid.bid.h

Selain itu, respons bid Anda harus mengisi BidResponse.seatbid.bid.ext.sdk_rendered_ad dengan hal berikut:

ID SDK

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

Anda dapat menemukan ID di BidRequest.app.ext.installed_sdk.

Iklan yang dideklarasikan

Gunakan BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad untuk memberikan materi iklan yang memenuhi persyaratan yang ditemukan di BidRequest.imp.ext.creative_enforcement_settings dan mewakili data rendering iklan. Hanya salah satu dari html_snippet, video_url, video_vast_xml, atau native_response yang harus diisi.

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

Anda dapat mempelajari iklan yang dideklarasikan lebih lanjut di dokumentasi referensi DeclaredAd.

Merender data

Gunakan kolom BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data untuk memberikan data yang akan digunakan SDK pembeli untuk merender iklan Anda.

Bid untuk menempatkan iklan SDK pembeli harus menentukan materi iklan di kolom declared_ad. Iklan yang dideklarasikan harus merepresentasikan 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 Real-time Bidding API untuk mengirim materi iklan untuk peninjauan sebelum Anda menyertakannya dalam respons bid.

Lihat panduan 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 akan ditinjau sebelum dapat ditayangkan untuk memastikan materi iklan tersebut memenuhi kebijakan dan setelan penayang kami.

Berikut adalah dua cara untuk mengirimkan materi iklan agar 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 ini hanya memerlukan satu pengiriman per materi iklan dan memungkinkan Anda memeriksa status peninjauan materi iklan.

Respons bid

Anda dapat mengirimkan 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 ditempatkan sebelum peninjauan selesai akan 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 mengetahui detail selengkapnya.