Los anuncios del SDK del comprador usan creatividades renderizadas por tu propio SDK.
Inventario de aplicaciones para dispositivos móviles de los publicadores que integran sus ofertas
adaptador en su aplicación puede aceptar ofertas
con el formato de anuncio renderizado del SDK del comprador. La forma en que se renderizan se basa en tu
implementación del SDK y el SDKRenderedAd
que envíes en el
respuesta a la oferta.
Puedes realizar una oferta que incluya un anuncio renderizado por el SDK del comprador o cualquier otro anuncio formato compatibles con el SDK de anuncios de Google para dispositivos móviles, pero las ofertas que contengan ambas.
Requisitos
Los anuncios del SDK del comprador están disponibles para los compradores aprobados. Este formato requiere costos esfuerzo de tu parte y del editor. Comunícate con tu administrador técnico de cuentas para configurar tu cuenta para anuncios del SDK del comprador. Luego, puede implementar una estrategia de ofertas de extremo a extremo que permite que tu SDK para comunicarse con el SDK de anuncios de Google para dispositivos móviles. El publicador debe integrar el SDK y el adaptador a sus apps para dispositivos móviles.
Recomendamos que envíe creatividades para opinión antes de incluirlos en una respuesta a la oferta. Comunícate con tu administrador técnico de cuentas si no conoces el tipo de creatividad en el momento de la oferta.
Si una solicitud de oferta admite este formato de anuncio, puede especificar un anuncio que se
con tu SDK estableciendo el campo sdk_rendered_ad
en la oferta
respuesta.
Solicitud de oferta
Las solicitudes de oferta para el inventario de apps para dispositivos móviles incluyen detalles sobre los SDKs y adaptadores de la app del publicador que puedas usar para renderizar, en el siguiente campos:
- ID de SDK
Puedes usar la solicitud de oferta para encontrar los
id
que debes proporcionar en la oferta para un anuncio renderizado por el SDK del comprador.Consulta los siguientes campos:
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Protocolo de RTB de Google (obsoleto):
BidRequest.mobile.installed_sdk
- OpenRTB:
Puedes obtener más información sobre el mensaje
InstalledSdk
en el OpenRTB y Google guías de protocolo.- Asignación de unidades de anuncios
Puedes usar la solicitud de oferta para leer las asignaciones de unidades de anuncios que coincidan con el espacio de oferta.
Consulta los siguientes campos:
- OpenRTB:
BidRequest.imp.ext.ad_unit_mapping
- Protocolo de RTB de Google (obsoleto):
BidRequest.AdSlot.ad_unit_mapping
- OpenRTB:
Puedes obtener más información sobre el objeto
AdUnitMapping
en el OpenRTB y Google guías de protocolo.- Indicadores seguros
Los publicadores pueden compartir indicadores seguros con los ofertantes. Puedes leerlos desde
BuyerGeneratedRequestData
de OpenRTB o del servicio obsoleto de Google objetoSecureSignal
del protocolo de RTB.Consulta los siguientes campos:
- OpenRTB:
BidRequest.imp.ext.buyer_generated_request_data.data
- Protocolo de RTB de Google (obsoleto):
BidRequest.AdSlot.SecureSignal.data
- OpenRTB:
Puedes obtener más información sobre cómo se representan los indicadores seguros en el OpenRTB y Google guías de protocolo.
- Solicitudes de prueba
Puedes leer el campo Solicitud de prueba para saber si la solicitud de oferta es una la prueba.
Consulta los siguientes campos:
- OpenRTB:
BidRequest.test
- Protocolo de RTB de Google (obsoleto):
BidRequest.is_test
- OpenRTB:
Puedes obtener más información sobre el campo
Test
en la OpenRTB y Google guías de protocolo.
Ejemplo de solicitud de oferta
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
Los siguientes campos son obligatorios en la respuesta a la oferta:
- OpenRTB:
BidResponse.seatbid.bid.adomain
BidResponse.seatbid.bid.ext.billing_id
BidResponse.seatbid.bid.crid
BidResponse.seatbid.bid.w
BidResponse.seatbid.bid.h
- Protocolo de RTB de Google (obsoleto):
BidResponse.Ad.click_through_url
BidResponse.Ad.AdSlot.billing_id
BidResponse.Ad.buyer_creative_id
BidResponse.Ad.width
BidResponse.Ad.height
Además, tu respuesta a la oferta debe incluir un SdkRenderedAd
con el
lo siguiente:
- ID de SDK
Usa el campo
id
para proporcionar el ID del SDK que renderizará el anuncio.Puedes encontrar el ID en la solicitud de oferta en los siguientes campos:
- OpenRTB:
BidRequest.app.ext.installed_sdk
- Protocolo de RTB de Google (obsoleto):
BidRequest.mobile.installed_sdk
- OpenRTB:
Puedes obtener más información sobre el mensaje
InstalledSdk
en el OpenRTB y Google guías de protocolo.- Anuncio declarado
Usa un campo
declared_ad
para proporcionar una creatividad que cumpla con los requisitosCreativeEnforcementSettings
y es representativo del anuncio, y la renderización de datos. Solo una de estas opciones:html_snippet
,video_url
,video_vast_xml
o Se debe propagarnative_response
.- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.declared_ad
- Protocolo de RTB de Google (obsoleto):
BidResponse.ad.sdk_rendered_ad.declared_ad
Si no propagas
declared_ad
, no podremos revisar la creatividad ni se filtran todas las ofertas con la creatividad de la subasta.- OpenRTB:
- Datos de renderización
Usa el campo
rendering_data
para proporcionar los datos al SDK del comprador para usar para renderizar tu anuncio.- OpenRTB:
BidResponse.seatbid.bid.ext.sdk_rendered_ad.rendering_data
- Protocolo de RTB de Google (obsoleto):
BidResponse.ad.sdk_rendered_ad.rendering_data
- OpenRTB:
Las ofertas para colocar un anuncio del SDK del comprador deben especificar una creatividad en el
declared_ad
. El anuncio declarado debe representar con precisión elrendering_data
.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 Real-time Bidding para enviar creatividades para opinión antes de incluirlos en una respuesta a la oferta.
Consulta la
Google y
Guías del protocolo OpenRTB
para obtener más detalles sobre los campos SdkRenderedAd
.
Respuesta de oferta de muestra
A continuación, presentamos algunas respuestas de oferta de ejemplo 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
Revisamos las creatividades antes de su publicación para garantizar que cumplan con nuestra políticas y publicadores configuración.
A continuación, se incluyen dos formas de enviar creatividades para su revisión:
- API de Real-time Bidding (recomendada)
Puedes usar la
buyers.creatives.create
de la API de Real-time Bidding para envíe las creatividades a revisión.La API requiere solo un envío por creatividad y le permite verificar el estado de revisión de la 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 el formulario una respuesta a la oferta con una creatividad del SDK del comprador para su revisión.Las creatividades que se envían en la respuesta a la oferta solo se revisan después de muchas ofertas. Todas las ofertas que se realicen antes de que se complete la revisión se filtrarán de la subasta. Puedes usar la interfaz de ofertas en tiempo real. o las ofertas en tiempo real API para verificar el estado de una creatividad después de que comience la revisión.
Consulta la guía sobre creatividades para más detalles.