Los anuncios con el SDK del comprador usan creatividades renderizadas por tu propio SDK.
El inventario de apps para dispositivos móviles de los publicadores que integran tu adaptador de ofertas en su app puede aceptar ofertas con el formato de anuncio renderizado del SDK del comprador. La forma en que se renderizan se basa en la implementación del SDK y el SDKRenderedAd
que envíes en la respuesta a la oferta.
Puedes realizar una oferta que incluya un anuncio renderizado en el SDK del comprador o cualquier otro formato de anuncio compatible con el SDK de anuncios de Google para dispositivos móviles, pero se filtrarán las ofertas que contengan ambos.
Requisitos
Los anuncios del SDK del comprador están disponibles para los compradores aprobados. Este formato requiere un esfuerzo adicional de tu parte y del editor. Comunícate con tu administrador técnico de cuentas a fin de configurar tu cuenta para los anuncios del SDK del comprador. Luego, puedes implementar un adaptador de ofertas que permita que el SDK se comunique con el SDK de anuncios de Google para dispositivos móviles. El editor debe integrar tu SDK y el adaptador en sus apps para dispositivos móviles.
Recomendamos que envíes las creatividades para su revisión antes de incluirlas en una respuesta a la oferta. Comunícate con tu administrador técnico de cuentas si no conoces el tipo de creatividad al momento de la oferta.
Si una solicitud de oferta admite este formato del anuncio, puedes especificar un anuncio que se renderice con el SDK. Para ello, configura el campo sdk_rendered_ad
en la respuesta a la oferta.
Solicitud de oferta
Las solicitudes de oferta de inventario de aplicaciones para dispositivos móviles incluyen detalles sobre los SDK y los adaptadores de la app del publicador que puedes usar para la renderización en los siguientes campos:
- ID de SDK
Puedes usar la solicitud de oferta para encontrar el
id
que debes proporcionar en la respuesta a la oferta para un anuncio renderizado por el SDK del comprador.Consulta los siguientes campos:
- Authorized Buyers:
BidRequest.mobile.installed_sdk
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Authorized Buyers:
Puedes obtener más información sobre el mensaje
InstalledSdk
en las guías de los protocolos de Google y OpenRTB.- Asignación de unidades de anuncios
Puedes usar la solicitud de oferta para leer las asignaciones de unidades de anuncios que coinciden con el espacio de oferta.
Consulta los siguientes campos:
- Authorized Buyers:
BidRequest.AdSlot.ad_unit_mapping
- OpenRTB:
BidRequest.imp.ext.ad_unit_mapping
- Authorized Buyers:
Puedes obtener más información sobre el objeto
AdUnitMapping
en las guías de los protocolos de Google y OpenRTB.- Indicadores seguros
Debes leer el objeto de ID extendido, que es la extensión estándar que se usa para pasar indicadores seguros que elige el publicador.
Consulta los siguientes campos:
- Authorized Buyers:
BidRequest.AdSlot.SecureSignal.data
- OpenRTB:
BidRequest.user.ext.eids.uids.id
- Authorized Buyers:
Puedes obtener más información sobre el objeto
Extended Id
en las guías de los protocolos de Google y OpenRTB.- Solicitudes de prueba
Puedes leer el campo Solicitud de prueba para comprender si la solicitud de oferta es de prueba.
Consulta los siguientes campos:
- Authorized Buyers:
BidRequest.is_test
- OpenRTB:
BidRequest.test
- Authorized Buyers:
Puedes obtener más información sobre el campo
Test
en las guías de los protocolos de Google y OpenRTB.
Solicitud de oferta de muestra
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>"
...
}
Respuesta a la oferta
- Oferta de licencia
Los siguientes campos son obligatorios en el objeto
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
Puedes obtener más información sobre el mensaje
SeatBid
en las guías de los protocolos de Google y OpenRTB.
Tu respuesta a la oferta debe incluir un SdkRenderedAd
con lo siguiente:
- ID de SDK
Usa el campo
id
para proporcionar el ID a fin de que el SDK renderice el anuncio.Puedes encontrar el ID en la solicitud de oferta con los siguientes campos:
- Authorized Buyers:
BidRequest.mobile.installed_sdk
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Authorized Buyers:
Puedes obtener más información sobre el mensaje
InstalledSdk
en las guías de los protocolos de Google y OpenRTB.- Anuncio declarado
Usa un campo
declared_ad
para proporcionar una creatividad que cumpla con los requisitosCreativeEnforcementSettings
de la solicitud de oferta y que represente los datos de renderización del anuncio. En el caso de los formatos de anuncios no nativos, solo se debe presentarhtml_snippet
,video_url
ovideo_vast_xml
. Para el formato del anuncio nativo, solo se debe presentarnative_response
.- Authorized Buyers:
BidResponse.ad.sdk_rendered_ad.declared_ad
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad
Si no propagas
declared_ad
, no podremos revisar la creatividad y todas las ofertas con esta se filtrarán de la subasta.- Authorized Buyers:
- Renderización de datos
Usa el campo
rendering_data
para proporcionar los datos que usará el SDK del comprador para renderizar tu anuncio.- Authorized Buyers:
BidResponse.ad.sdk_rendered_ad.rendering_data
- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
- Authorized Buyers:
Las ofertas para colocar un anuncio del SDK del comprador deben especificar una creatividad en el campo
declared_ad
. El anuncio declarado debe representar elrendering_data
de forma precisa.Este es un objeto
SdkRenderedAd
de muestra:{ "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 la API de Ofertas en tiempo real para enviar creatividades para su revisión antes de incluirlas en una respuesta a la oferta.
Consulta las guías de los protocolos de Google y OpenRTB para obtener más detalles sobre los campos SdkRenderedAd
.
Ejemplo de respuesta a la oferta
A continuación, presentamos ejemplos de respuestas a ofertas para cada formato de anuncio:
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"
Video recompensado
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"
Revisión de creatividades
Las creatividades se revisan antes de su publicación para garantizar que cumplan con nuestras políticas y la configuración del publicador.
Existen dos maneras de enviar creatividades para su revisión:
- API de Real-time Bidding (recomendado)
Puedes usar el método
buyers.creatives.create
de la API de Ofertas en tiempo real para enviar creatividades para su revisión.La API requiere solo un envío por creatividad y te permite verificar el estado de revisión de tu creatividad.
- Respuesta a la oferta
Puedes enviar creatividades nuevas directamente en la respuesta a la oferta.
Debes usar el campo
declared_ad
del objetoSdkRenderedAd
para enviar a revisión una respuesta a la oferta con una creatividad de SDK del comprador.Las creatividades enviadas en la respuesta a la oferta solo se revisan después de muchas ofertas. Todas las ofertas que se realizan antes de que se complete la revisión se filtran de la subasta. Puedes usar la interfaz de Ofertas en tiempo real o la API de Ofertas en tiempo real para verificar el estado de una creatividad después de que comience la revisión.
Consulta la guía de creatividades para obtener más detalles.