Os anúncios do SDK do comprador usam criativos renderizados pelo seu próprio SDK.
O inventário de apps para dispositivos móveis de publishers que integram seu bidding
adapter ao app pode aceitar lances
com o formato de anúncio renderizado pelo SDK do comprador. A renderização é baseada na sua
implementação do SDK e no SDKRenderedAd enviado na
resposta do lance.
Você pode fazer um lance incluindo um anúncio renderizado pelo SDK do comprador ou qualquer outro formato de anúncio com suporte do SDK do Google Mobile Ads, mas todos os lances que contêm os dois são filtrados.
Requisitos
Os anúncios do SDK do comprador estão disponíveis para compradores aprovados. É possível integrar diretamente o Authorized Buyers ao SDK do Google Mobile Ads, incluindo Mediação, adaptadores de bidder, e indicadores seguros. O publisher precisa integrar seu SDK e adaptador aos apps para dispositivos móveis.
Para mais informações sobre esses pontos de integração ou para discutir outras integrações de processamento ou indicadores no dispositivo com o SDK do Google Mobile Ads para melhorar a Relevância do anúncio ou a medição, entre em contato com seu gerente técnico de contas.
Recomendamos que você envie criativos para revisão antes de incluí-los em uma resposta de lance.
Se uma solicitação de lance oferecer suporte a esse formato de anúncio, você poderá especificar um anúncio renderizado
com seu SDK definindo o campo sdk_rendered_ad na resposta
do lance.
Solicitação de lance
As solicitações de lance para inventário de apps para dispositivos móveis incluem detalhes sobre os SDKs e adaptadores no app do publisher que podem ser usados para renderização nos seguintes campos:
- ID do SDK
Você pode usar a solicitação de lance para encontrar o ID do SDK que precisa fornecer na resposta do lance com o campo
BidRequest.app.ext.installed_sdk.id.Saiba mais sobre isso na
InstalledSdkdocumentação de referência.- Mapeamento do bloco de anúncios
Você pode usar a solicitação de lance para encontrar os mapeamentos de blocos de anúncios que correspondem ao slot de lance com o campo
BidRequest.imp.ext.ad_unit_mapping.Saiba mais sobre isso na
AdUnitMappingdocumentação de referência.- Indicadores seguros
Os publishers podem compartilhar indicadores seguros com os bidders. Eles podem ser encontrados em
BidRequest.imp.ext.buyer_generated_request_data.data.Saiba mais sobre como os indicadores seguros são representados na
BuyerGeneratedRequestDatadocumentação de referência.- Solicitações de teste
Você pode usar o campo
BidRequest.testpara verificar se a solicitação de lance é um teste.Saiba mais sobre esse campo na
BidRequestdocumentação de referência.
Exemplo de solicitação de lance
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>"
...
}
Resposta do lance
Os campos a seguir são obrigatórios na resposta do lance:
BidResponse.seatbid.bid.adomainBidResponse.seatbid.bid.ext.billing_idBidResponse.seatbid.bid.cridBidResponse.seatbid.bid.wBidResponse.seatbid.bid.h
Além disso, a resposta do lance precisa preencher
BidResponse.seatbid.bid.ext.sdk_rendered_ad
com o seguinte:
- ID do SDK
Use o campo
idpara fornecer o ID do SDK para renderizar o anúncio.Você pode encontrar o ID em
BidRequest.app.ext.installed_sdk.- Anúncio declarado
Use
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_adpara fornecer um criativo que atenda aos requisitos encontrados emBidRequest.imp.ext.creative_enforcement_settingse seja representativo dos dados de renderização do anúncio. Apenas um dehtml_snippet,video_url,video_vast_xmlounative_responseprecisa ser preenchido.Se você não preencher
declared_ad, não poderemos revisar o criativo, e todos os lances com o criativo serão filtrados do leilão.Saiba mais sobre o anúncio declarado na
DeclaredAddocumentação de referência.- Dados de renderização
Use o campo
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_datapara fornecer os dados para o SDK do comprador usar para renderizar seu anúncio.Os lances para veicular um anúncio do SDK do comprador precisam especificar um criativo no campo
declared_ad. O anúncio declarado precisa representar com precisão orendering_data.Confira um exemplo de objeto
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>", } }
Recomendamos usar a API Lances em Tempo Real para enviar criativos para revisão antes de incluí-los em uma resposta do lance.
Consulte o
guia do OpenRTB para mais
detalhes sobre os campos SdkRenderedAd.
Exemplo de resposta do lance
Confira exemplos de respostas de lance para cada formato de anúncio:
Banner
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"
Intersticial
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"
Vídeo premiado
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"
Nativo
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"
Revisão do criativo
Os criativos são revisados antes da veiculação para garantir que atendam às nossas políticas e às configurações do publisher.
Confira duas maneiras de enviar criativos para revisão:
- API de lances em tempo real (recomendado)
Você pode usar o
buyers.creatives.createmétodo da API de Lances em Tempo Real para enviar criativos para revisão.A API exige apenas um envio por criativo e permite verificar o status da revisão do criativo.
- Resposta do lance
Você pode enviar novos criativos diretamente na resposta do lance.
É necessário usar o campo
declared_addo objetoSdkRenderedAdpara enviar uma resposta de lance com um criativo do SDK do comprador para revisão.Os criativos enviados na resposta do lance só são revisados após muitos lances. Todos os lances feitos antes da conclusão da revisão são filtrados do leilão. Você pode usar a interface de lances em tempo real ou a API de lances em tempo real para verificar o status de um criativo após o início da revisão.
Consulte o guia de criativos para mais detalhes.