В объявлениях SDK для покупателей используются креативы, созданные с помощью вашего собственного SDK.
Инвентарь мобильных приложений от издателей, которые интегрируют ваш адаптер назначения ставок в свое приложение, может принимать ставки с форматом отображаемой рекламы SDK покупателя. То, как они отображаются, зависит от реализации вашего SDK и SDKRenderedAd
который вы отправляете в ответе на заявку.
Вы можете разместить ставку, включающую либо объявление, созданное SDK покупателя, либо любой другой формат объявлений, поддерживаемый Google Mobile Ads SDK , но любые ставки, содержащие оба формата, фильтруются.
Требования
Объявления Buyer SDK доступны одобренным покупателям. Этот формат требует дополнительных усилий от вас и издателя. Свяжитесь со своим техническим менеджером по работе с клиентами, чтобы настроить свою учетную запись для рекламы SDK для покупателей. Затем вы можете внедрить адаптер назначения ставок , который позволит вашему SDK взаимодействовать с Google Mobile Ads SDK. Издателю необходимо интегрировать ваш SDK и адаптер в свои мобильные приложения.
Мы рекомендуем отправлять креативы на проверку , прежде чем включать их в ответ на запрос ставки. Если вы не знаете тип креатива на момент подачи заявки, обратитесь к своему техническому менеджеру по работе с клиентами.
Если запрос ставки поддерживает этот формат объявления, вы можете указать объявление, которое будет отображаться с помощью вашего SDK, задав поле sdk_rendered_ad
в ответе на заявку .
Запрос ставки
Запросы ставок для инвентаря в мобильных приложениях включают сведения о SDK и адаптерах в приложении издателя, которые вы можете использовать для рендеринга, в следующих полях:
- Идентификатор SDK
Вы можете использовать запрос ставки, чтобы найти
id
, который необходимо указать в ответе на заявку для объявления, отображаемого SDK покупателя.См. следующие поля:
- Авторизованные покупатели:
BidRequest.mobile.installed_sdk
. - OpenRTB:
BidRequest.app.ext.installed_sdk
- Авторизованные покупатели:
Подробнее о сообщении
InstalledSdk
можно узнать в руководствах по протоколам Google и OpenRTB .- Сопоставление рекламных блоков
Вы можете использовать запрос ставки, чтобы прочитать сопоставления рекламных блоков, которые соответствуют рекламному месту.
См. следующие поля:
- Авторизованные покупатели:
BidRequest.AdSlot.ad_unit_mapping
. - OpenRTB:
BidRequest.imp.ext.ad_unit_mapping
- Авторизованные покупатели:
Подробнее об объекте
AdUnitMapping
можно узнать в руководствах по протоколам Google и OpenRTB .- Безопасные сигналы
Вам следует прочитать объект Extended Id, который является стандартным расширением, используемым для передачи безопасных сигналов, выбранных издателем.
См. следующие поля:
- Авторизованные покупатели:
BidRequest.AdSlot.SecureSignal.data
. - OpenRTB:
BidRequest.user.ext.eids.uids.id
- Авторизованные покупатели:
Подробнее об объекте
Extended Id
можно узнать в руководствах по протоколам Google и OpenRTB .- Тестовые запросы
Вы можете прочитать поле «Тестовый запрос», чтобы понять, является ли запрос ставки тестовым.
См. следующие поля:
- Авторизованные покупатели:
BidRequest.is_test
- OpenRTB:
BidRequest.test
- Авторизованные покупатели:
Подробнее о поле
Test
можно узнать в руководствах по протоколам Google и OpenRTB .
Образец запроса ставки
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
обязательны следующие поля:Авторизованные покупатели:
-
BidResponse.Ad.click_through_url
-
BidResponse.Ad.AdSlot.billing_id
-
BidResponse.Ad.buyer_creative_id
-
BidResponse.Ad.width
-
BidResponse.Ad.height
-
ОпенРТБ:
-
BidResponse.seatbid.bid.adomain
-
BidResponse.seatbid.bid.cid
-
BidResponse.seatbid.bid.crid
-
BidResponse.seatbid.bid.w
-
BidResponse.seatbid.bid.h
-
Подробнее о сообщении
SeatBid
можно узнать в руководствах по протоколам Google и OpenRTB .
Ваш ответ на заявку должен включать SdkRenderedAd
со следующим:
- Идентификатор SDK
Используйте поле
id
, чтобы указать идентификатор SDK для отображения объявления.Вы можете найти идентификатор в запросе ставки с помощью следующих полей:
- Авторизованные покупатели:
BidRequest.mobile.installed_sdk
. - OpenRTB:
BidRequest.app.ext.installed_sdk
- Авторизованные покупатели:
Подробнее о сообщении
InstalledSdk
можно узнать в руководствах по протоколам Google и OpenRTB .- Заявленное объявление
Используйте поле
declared_ad
, чтобы предоставить креатив, который соответствует требованиямCreativeEnforcementSettings
запроса ставки и отражает данные рендеринга объявления. Для неродных форматов объявлений должен быть представлен только один изhtml_snippet
,video_url
илиvideo_vast_xml
. Для формата нативного объявления следует указывать толькоnative_response
.- Авторизованные покупатели:
BidResponse.ad.sdk_rendered_ad.declared_ad
. - OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad
Если вы не заполните
declared_ad
, мы не сможем просмотреть креатив, и все ставки с этим креативом будут отфильтрованы с аукциона.- Авторизованные покупатели:
- Рендеринг данных
Используйте поле
rendering_data
, чтобы предоставить данные для SDK покупателя, которые будут использоваться для показа вашего объявления.- Авторизованные покупатели:
BidResponse.ad.sdk_rendered_ad.rendering_data
. - OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
- Авторизованные покупатели:
В ставках на размещение объявления 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
см. в руководствах по протоколам Google и 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.create
API для назначения ставок в реальном времени.API требует только одной отправки каждого креатива и позволяет проверить статус рассмотрения вашего креатива.
- Ответ на заявку
Вы можете отправлять новые объявления прямо в ответе на заявку .
Чтобы отправить на рассмотрение ответ на заявку с креативом SDK покупателя, необходимо использовать поле
declared_ad
объектаSdkRenderedAd
.Креативы, отправленные в ответ на заявку, проверяются только после множества ставок. Все ставки, сделанные до завершения проверки, отфильтровываются с аукциона. Вы можете использовать интерфейс назначения ставок в реальном времени или API назначения ставок в реальном времени , чтобы проверить статус креатива после начала проверки.
Более подробную информацию можно найти в руководстве по креативам .