Formato del anuncio del SDK del comprador

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

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

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 objeto SecureSignal 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

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

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

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 requisitos CreativeEnforcementSettings 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 propagar native_response.

Si no propagas declared_ad, no podremos revisar la creatividad ni se filtran todas las ofertas con la creatividad de la subasta.

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

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 el rendering_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:

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 objeto SdkRenderedAd 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.