В рекламных объявлениях, созданных с помощью Buyer SDK, используются креативы, генерируемые вашим собственным SDK.
Мобильные приложения от издателей, интегрировавших ваш адаптер для размещения ставок в свои приложения, могут принимать ставки в формате рекламы, отображаемой с помощью SDK покупателя. Способ отображения рекламы зависит от вашей реализации SDK и SDKRenderedAd , который вы отправляете в ответе на запрос ставки.
Вы можете разместить ставку, включающую либо объявление, отображаемое с помощью SDK покупателя, либо любой другой формат объявления, поддерживаемый SDK Google Mobile Ads , но ставки, содержащие оба формата, будут отфильтрованы.
Требования
Реклама с использованием SDK для покупателей доступна только авторизованным покупателям. Вы можете напрямую интегрировать авторизованных покупателей с SDK Google Mobile Ads, включая медиацию , адаптеры для участников торгов и защищенные сигналы . Издатель должен интегрировать ваш SDK и адаптер в свои мобильные приложения.
Для получения дополнительной информации об этих точках интеграции или для обсуждения других вариантов интеграции сигналов или обработки данных на устройстве с Google Mobile Ads SDK с целью повышения релевантности или эффективности измерения эффективности рекламы, свяжитесь со своим техническим менеджером по работе с клиентами.
Мы рекомендуем вам отправить рекламные материалы на рассмотрение, прежде чем включать их в заявку на участие в тендере.
Если запрос на размещение рекламы поддерживает этот формат объявления, вы можете указать объявление, которое будет отображаться с помощью вашего SDK, задав поле sdk_rendered_ad в ответе на запрос .
Запрос на участие в тендере
В заявках на размещение мобильного приложения необходимо указывать подробную информацию об SDK и адаптерах, которые можно использовать для отображения в приложении издателя, в следующих полях:
- Идентификатор SDK
Вы можете использовать запрос на участие в тендере, чтобы найти идентификатор SDK, который необходимо указать в ответе на запрос, в поле
BidRequest.app.ext.installed_sdk.id.Более подробную информацию об этом можно найти в справочной документации
InstalledSdk.- Сопоставление рекламных блоков
С помощью запроса на назначение ставки вы можете найти сопоставления рекламных блоков, соответствующие слоту назначения ставки, с помощью поля
BidRequest.imp.ext.ad_unit_mapping.Более подробную информацию об этом можно найти в справочной документации
AdUnitMapping.- Защищенные сигналы
Издатели могут обмениваться защищенными сигналами с участниками торгов. Эти сигналы можно найти в
BidRequest.imp.ext.buyer_generated_request_data.data.Более подробную информацию о том, как представляются защищенные сигналы, можно найти в справочной документации
BuyerGeneratedRequestData.- Запросы на тестирование
Вы можете использовать поле
BidRequest.test, чтобы проверить, является ли запрос на участие в тендере тестовым.Более подробную информацию об этом поле можно найти в справочной документации
BidRequest.
Пример запроса на коммерческое предложение
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>"
...
}
Ответ на заявку
В заявке на участие в тендере необходимо заполнить следующие поля:
-
BidResponse.seatbid.bid.adomain -
BidResponse.seatbid.bid.ext.billing_id -
BidResponse.seatbid.bid.crid -
BidResponse.seatbid.bid.w -
BidResponse.seatbid.bid.h
Кроме того, в поле BidResponse.seatbid.bid.ext.sdk_rendered_ad необходимо указать следующее:
- Идентификатор SDK
Используйте поле
id, чтобы указать идентификатор, по которому SDK будет отображать рекламу.Идентификатор можно найти в
BidRequest.app.ext.installed_sdk.- Объявленное объявление
Используйте
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_adчтобы указать креатив, соответствующий требованиям, указанным вBidRequest.imp.ext.creative_enforcement_settings, и отражающий данные рендеринга объявления. Следует заполнить только один из параметров:html_snippet,video_url,video_vast_xmlилиnative_response.Если вы не заполните
declared_ad, мы не сможем просмотреть рекламный материал, и все ставки с этим материалом будут исключены из аукциона.Более подробную информацию о заявленном объявлении можно найти в справочной документации по
DeclaredAd.- Визуализация данных
Используйте поле
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data, чтобы предоставить данные для SDK покупателя, которые будут использоваться для отображения вашей рекламы.Для размещения рекламы, созданной с помощью SDK покупателя, необходимо указать креатив в поле
declared_ad. Объявленный креатив должен точно соответствовать даннымrendering_data.Вот пример объекта
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>", } }
Мы рекомендуем использовать API для торгов в реальном времени, чтобы отправлять рекламные материалы на проверку перед включением их в ответ на запрос о ставке.
Более подробную информацию о полях SdkRenderedAd см. в руководстве OpenRTB .
Пример ответа на заявку
Ниже приведены примеры ответов на ставки для каждого формата объявления:
Баннер
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"
Интерстициальный
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"
Видео, за которое награда
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"
Родной
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"
Творческий обзор
Рекламные материалы проходят проверку перед публикацией, чтобы убедиться в их соответствии нашим правилам и настройкам издателя.
Вот два способа отправить свои работы на рассмотрение:
- API для торгов в реальном времени (рекомендуется)
Для отправки рекламных материалов на проверку вы можете использовать метод
buyers.creatives.createAPI Real-time Bidding.API требует всего одной отправки для каждого креатива и позволяет отслеживать статус его проверки.
- Ответ на заявку
Новые рекламные материалы можно отправлять непосредственно в ответе на заявку .
Для отправки ответа на ставку с креативом из SDK покупателя на проверку необходимо использовать поле
declared_adобъектаSdkRenderedAd.Рекламные материалы, представленные в ответе на заявку, рассматриваются только после получения большого количества заявок. Все заявки, поданные до завершения рассмотрения, исключаются из аукциона. Вы можете использовать интерфейс торгов в реальном времени или API торгов в реальном времени, чтобы проверить статус рекламного материала после начала рассмотрения.
Более подробную информацию можно найти в руководстве для творческих специалистов .