Los anuncios nativos son anuncios con un formato que se adapta al contenido y la imagen que los rodea. en el diseño de tu producto, lo que aumenta las probabilidades de que los usuarios las vean y hagan clic en ellas. Anuncio nativo el inventario está disponible en aplicaciones para dispositivos móviles, así como en sitios web móviles y de escritorio. Para obtener más información sobre los anuncios nativos, consulte Descripción general de los anuncios nativos. anuncios.
Los anuncios nativos son compatibles con Authorized Buyers y Open Bidding.
Este es el flujo de trabajo para anuncios nativos:
- Se llama a Google para solicitar un anuncio nativo. La llamada especifica una o ambas plantillas de anuncios nativos que se indican a continuación, cada una de las cuales especifica la preferencia campos nativos.
- Google envía a los compradores una solicitud de oferta de RTB que incluye una lista de los que se solicitan.
- Los compradores interesados responden con los campos solicitados.
- Google realiza una subasta para seleccionar la oferta ganadora y envía la recursos de creatividad que proporcionó el comprador al publicador.
- El publicador organiza los recursos para crear un anuncio nativo y los diseña que se adapta al diseño del sitio.
Formatos de mensajes
Google admite los Especificación de OpenRTB en JSON y Protobuf.
Para los anuncios nativos de OpenRTB Protobuf, los siguientes campos difieren de la especificación:
Especificación JSON (PROTOCOL_OPENRTB_2_4) |
Tipo JSON | Implementación de OpenRTB (PROTOCOL_OPENRTB_PROTOBUF_2_4) |
Tipo de OpenRTB |
---|---|---|---|
BidRequest.imp[].native.request |
string |
BidRequest.imp[].native.request_native |
NativeRequest |
BidResponse.seatbid[].bid[].adm |
string |
BidResponse.seatbid[].bid[].adm_native |
NativeResponse |
Los campos de OpenRTB son mensajes Protobuf en lugar de cadenas.
Si usas la implementación de OpenRTB Protobuf, no recibirás
BidRequest.imp[].native.request
y debe responder con
BidResponse.seatbid[].bid[].adm_native
Respuestas a la oferta con
Se filtran las BidResponse.seatbid[].bid[].adm
. Los IDs de activos no son necesarios para OpenRTB
Respuestas de ofertas de protobuf.
Si usas un SDK del comprador para renderizar anuncios nativos
debes incluir una imagen type
en el declared_ad
cuando
enviar creatividades para su revisión
Plantillas de anuncios nativos
Google admite las dos plantillas de anuncios nativos más comunes para los anuncios que no son de video y Anuncios nativos de video:
- Plantilla de anuncio de instalación de aplicación: Promocionar y generar instalaciones de aplicaciones para dispositivos móviles.
- Plantilla de anuncio de contenido: Es más genérica. combinación de imágenes y texto para los anuncios web o de marca.
- Plantilla de anuncios de instalación de aplicación de video
- Plantilla de anuncio de contenido de video
Existen otras plantillas que pueden tener un conjunto diferente de requisitos para campos, dimensiones y tamaños.
Plantilla de anuncio de instalación de aplicaciones
Campos obligatorios y recomendados
En las siguientes tablas, se muestran los campos etiquetados como Obligatorio o Recomendado. Se aplican las siguientes reglas:
- El ofertante requiere los campos marcados como Obligatorio.
- El ofertante no exige los campos marcados como Recomendados. Además, el publicador puede mostrarlos o no si se proporcionan (por ejemplo, destacar calificación).
- El llamado a la acción (CTA) siempre está marcado como Recomendado porque se asigna un valor predeterminado si el ofertante no envía uno, pero siempre se se mostrará si se envió.
La siguiente tabla muestra los campos de una plantilla de anuncio de instalación de aplicación. Las aplicaciones para dispositivos móviles usan estos campos para crear anuncios nativos de instalación de aplicaciones.
Campo | Descripción | ¿Obligatorio o recomendado? | ¿Se muestra siempre? | Tamaño de imagen recomendado o cantidad máxima de caracteres | Ejemplo |
---|---|---|---|---|---|
Título | Título de la app | Obligatorio | Sí | 25 caracteres | Flood-It! |
Imagen | Una captura de pantalla de la app o alguna otra imagen relevante | Obligatorio | No | Debe ser de 1,200 px x 627 px o 600 px x 600 px, según la relación de aspecto requerida. por el editor. | <Captura de pantalla del juego Flood-It!> |
Cuerpo | Texto principal de la app | Obligatorio | No | 90 caracteres | Engañosamente simple + tentadoramente desafiante = realmente adictivo. |
Ícono de la aplicación | El ícono de la app | Obligatorio | No | 128 × 128 px | <Flood-It! ícono de la app > |
Llamado a la acción | Acción preferida del usuario | Recomendado | Sí | 15 caracteres | Instalar |
Calificación por estrellas | Cantidad de estrellas (0-5) que representan la calificación de la app en la tienda de aplicaciones | Recomendado | No | Entre 0 y 5 | 4.5 |
Precio | El costo de la app | Recomendado | No | 15 caracteres | Gratis |
Notas sobre la longitud del texto
Si un comprador envía un recurso de texto (por ejemplo, el texto del cuerpo) más largo que el la cantidad máxima sugerida de caracteres, el texto puede truncarse y elipse por Google o el editor. Ten en cuenta que el truncamiento y los límites son la mitad en chino, japonés y coreano. Por ejemplo, el el límite de títulos es 90 para inglés y 45 para chino.
Notas sobre el tamaño de la imagen
Los publicadores pueden hacer lo siguiente:
- Recorta la imagen principal de forma simétrica hasta un 20% en una dimensión (altura o ancho).
- Ajustar la escala de la imagen sin cambiar su relación de aspecto
- Imágenes que tienen relaciones de aspecto sustancialmente diferentes a las implícitas por alto y ancho.
Plantilla de anuncio de contenido
En la siguiente tabla, se indican los campos de una plantilla de anuncio de contenido. Editores utilicé estos campos para crear anuncios de contenido nativo.
Campo | Descripción | ¿Obligatorio o recomendado? | ¿Se muestra siempre? | Tamaño de imagen recomendado o cantidad máxima de caracteres * | Ejemplo |
---|---|---|---|---|---|
Título | El encabezado del anuncio | Obligatorio | Sí | 25 caracteres | Tasas hipotecarias más bajas |
Imagen | La imagen principal del anuncio | Obligatorio | No | Debe ser de 1,200 px x 627 px o 600 px x 600 px, según la relación de aspecto requerida. por el editor. | <Imagen principal del anuncio> |
Cuerpo | El contenido del anuncio | Obligatorio | No | 90 caracteres | Tu dulce hogar en Brooklyn, más barato y antes de lo que piensas |
Logotipo | El logotipo del anunciante o alguna otra imagen pequeña relevante | Recomendado | No | 128 × 128 px | <Logotipo de NY Mortgage Inc.> |
Llamado a la acción | Acción preferida del usuario | Recomendado | No | 15 caracteres | Solicite una cotización |
Advertiser | Texto que identifica al anunciante o a la marca | Obligatorio | No | 25 caracteres | NY Motgage Inc. |
Plantilla de anuncio de video de instalación de aplicación
Campo | Descripción | ¿Obligatorio o recomendado? | ¿Se muestra siempre? | Tamaño de la imagen recomendado/cantidad máxima de caracteres * | Ejemplo |
---|---|---|---|---|---|
Video | Es la respuesta de VAST de video que contiene todos los elementos necesarios para reproducir un anuncio de video. | Obligatorio | No | - | Una URL a XML de VAST que contiene un informe Flood-It! Anuncio de video |
Título | Título de la app | Obligatorio | Sí | 25 caracteres | Flood-It! |
Imagen | Es una imagen (miniatura) que se muestra en el reproductor antes de hacer clic en el anuncio de video o mientras este se está cargando. | Obligatorio | No | Debe coincidir con la relación de aspecto del video (por ejemplo: 1280 × 720 para videos de 16 × 9, 4 × 3 para videos de 640 × 480). | Captura de pantalla del juego Flood-It! o en el video |
Cuerpo | Texto principal de la app | Obligatorio | No | 90 caracteres | Engañosamente simple + tentadoramente desafiante = realmente adictivo. |
Ícono de la aplicación | El ícono de la app | Obligatorio | No | 128 × 128 px | Flood‐It! ícono de la app |
Llamado a la acción | Acción preferida del usuario | Obligatorio | Sí | 15 caracteres | Instalar |
Calificación por estrellas | Cantidad de estrellas (0-5) que representan la calificación de la aplicación en la tienda de aplicaciones | Recomendado | No | Entre 0 y 5 | 4.5 |
Precio | El costo de la app | Recomendado | No | 15 caracteres | Gratis |
Restricciones
Video: Todos los videos deben tener el formato de una URL de VAST. o una etiqueta VAST. No se puede especificar un archivo de video sin procesar, como WebM, MP4, etc.
Longitud del texto: Si el comprador especifica un recurso de texto, como el
body
en la respuesta, es posible que se trunque y se reduzca Google o el publicador. Ten en cuenta que los límites de truncamiento son la mitad del tamaño en chino, japonés y coreano. Por ejemplo, el límite del título es 90 en inglés. y 45 para chino.Tamaño de la imagen: Los publicadores pueden hacer lo siguiente:
- Recorta la imagen principal de forma simétrica hasta un 20% en una dimensión (altura). o ancho.
- Ajustar la escala de la imagen sin cambiar su relación de aspecto
Ejemplo de anuncio de instalación de aplicación
Plantilla de anuncio de contenido de video
Campo | Descripción | ¿Obligatorio o recomendado? | ¿Se muestra siempre? | Tamaño de la imagen recomendado/cantidad máxima de caracteres * | Ejemplo |
---|---|---|---|---|---|
Video | Es la respuesta de VAST de video que contiene todos los elementos necesarios para reproducir un anuncio de video. | Obligatorio | Sí | - | Una URL a XML de VAST que contiene un informe Flood-It! Anuncio de video |
Título | El encabezado del anuncio | Obligatorio | Sí | 25 caracteres | Tasas hipotecarias más bajas |
Imagen | Es una imagen (miniatura) que se muestra en el reproductor antes de hacer clic en el anuncio de video o mientras este se está cargando. | Obligatorio | No | Debe coincidir con la relación de aspecto del video (por ejemplo: 1280 × 720 para videos de 16 × 9, 4 × 3 para videos de 640 × 480). | Una captura de pantalla del video |
Cuerpo | El contenido del anuncio | Obligatorio | No | 90 caracteres | Tu dulce hogar en Brooklyn, más barato y antes de lo que piensas |
Logotipo | El logotipo del anunciante o alguna otra imagen pequeña relevante | Recomendado | No | 128 × 128 px | Logotipo de NY Mortgage Inc. |
Llamado a la acción | Acción preferida del usuario | Obligatorio | No | 15 caracteres | Solicite una cotización |
Advertiser | Texto que identifica al anunciante o a la marca | Obligatorio | No | 25 caracteres | NY Motgage Inc. |
Metacampos
Todas las plantillas de anuncios compatibles comparten los siguientes metacampos:
Autorizado Búfer de protocolo en tiempo real para compradores | Autorizado Equivalente de OpenRTB para compradores | Descripción |
---|---|---|
NativeAd.click_link_url |
Link.url |
Es la URL a la que llamará el navegador cuando el usuario haga clic en el anuncio.
Puede ser el primer paso de una cadena de redireccionamiento que, finalmente, conduce al
la página de destino. En el caso de los anuncios nativos, recomendamos usar click_link_url como el campo para configurar
el destino al que finalmente irá el usuario. Es obligatorio usar este campo en el caso
de páginas de destino dinámicas. |
Ad.click_through_url |
Bid.adomain |
Se debe establecer si el ofertante tiene la intención de ofertar. Este es el conjunto de destinos
URLs del fragmento, incluidas las URLs a las que se dirigirá el usuario si
haga clic en el anuncio que se muestra y en todas las URL visibles en la
anuncio. No incluyas llamadas intermedias al servidor de anuncios que no estén relacionadas con lo siguiente:
la página de destino final. Una respuesta a la oferta que muestra un fragmento o un anuncio de video
pero declara que no se descartará ningún En el caso de los anuncios que no son nativos, no se utiliza para el seguimiento de clics ni para ningún otro tipo de anuncio. funcionalidad; Solo se utiliza como declaración de la URL de destino. En el caso de los anuncios nativos, si no se establece |
NativeAd.click_tracking_urls |
Link.clicktrackers |
Opcional. URLs adicionales que permiten a los anunciantes hacer un seguimiento de los clics de los usuarios en el anuncio. |
Ad.ad_choices_destination_url |
BidExt.ad_choices_destination_url |
Vincula a una página de preferencias de anuncios o de inhabilitación. Si está presente, se usará El ícono de AdChoices se agrega a la creatividad nativa y se vincula a esta URL. Esta es compatible con anuncios nativos, pero no es parte del mensaje nativo de la respuesta a la oferta. |
Ad.impression_tracking_url |
NativeResponse.imptrackers |
Se debe realizar un seguimiento de la impresión nativa con
impression_tracking_url en las ofertas en tiempo real de Authorized Buyers
proto o imptracker nativo en OpenRTB. |
Campos obligatorios y recomendados
required_fields
y recommended_fields
son especificadas por el publicador. Te mostramos cómo
traducir estos campos de bits para determinar si un campo es obligatorio
se recomienda.
Un campo de bits usa cada bit de un valor binario para almacenar un valor verdadero o falso
equivalente a enviar muchos indicadores booleanos, como
is_logo_required
, is_header_required
, etc., pero todos
todo junto.
Ejemplo
Para este ejemplo, usaremos un valor required_fields
de
1085
Primero, encuentra el valor binario equivalente:
10000111101
Cuando tengas el valor binario, puedes comprobar los bits para ver si obligatorio (1) o no obligatorio (0).
En la siguiente tabla, se asignan los campos en su posición en el valor binario. Lee el binario de derecha a izquierda (el de 1 bit corresponde al lugar que se encuentra más a la derecha) en el valor binario.
Campo | Ubicación del valor binario (de derecha a izquierda) |
---|---|
HEADLINE |
1 |
BODY |
2 |
CALL_TO_ACTION |
4 |
ADVERTISER |
8 |
IMAGE |
16 |
LOGO |
32 |
APP_ICON |
64 |
STAR_RATING |
128 |
PRICE |
256 |
STORE |
512 |
VIDEO |
1024 |
Si observas el valor binario de ejemplo 10000111101
, la prueba de 1-bit
(en el extremo derecho) es 1
, lo que indica un valor obligatorio. Según el
tabla, el de 1 bit corresponde a HEADLINE
.
El de 2 bits (segundo valor desde la derecha) significa 0
.
no es obligatorio. El de 2 bits corresponde a BODY
.
Estos son todos los campos obligatorios interpretados en nuestro ejemplo:
Valor | Descripción | ¿Obligatorio? |
---|---|---|
1 |
VIDEO |
Sí |
0 |
STORE |
No |
0 |
PRICE |
No |
0 |
STAR_RATING |
No |
0 |
APP_ICON |
No |
1 |
LOGO |
Sí |
1 |
IMAGE |
Sí |
1 |
ADVERTISER |
Sí |
1 |
CALL_TO_ACTION |
Sí |
0 |
BODY |
No |
1 |
HEADLINE |
Sí |
Mensaje de LiveDataTemplate
Cuando se recibe una solicitud de oferta que contiene un inventario nativo, esta contendrá un
se propagó BidRequest.adSlot[].native_ad_template.
El mensaje NativeAdTemplate
proporciona especificaciones para lo siguiente:
- Son campos obligatorios o recomendados.
- Dimensiones de las imágenes, los logotipos y los íconos de las apps
- Son las especificaciones del estilo con el que se renderiza el anuncio.
message BidRequest { //... message AdSlot { //... message NativeAdTemplate { // Defines the bits used in required_fields and recommended_fields. // There is one bit for each of the fields in BidResponse.Ad.NativeAd enum Fields { NO_FIELDS = 0x0; HEADLINE = 0x1; BODY = 0x2; CALL_TO_ACTION = 0x4; ADVERTISER = 0x8; IMAGE = 0x10; LOGO = 0x20; APP_ICON = 0x40; STAR_RATING = 0x80; PRICE = 0x100; DEPRECATED_STORE = 0x200; VIDEO = 0x400; } // Bitfield describing which fields are required by the publisher. Bid // responses with no value for these fields will be rejected. Click // and view tracking urls are always implicitly required. optional int64 required_fields = 1; // Bitfield describing which fields are recommended by the publisher. // All recommended field are supported, but not all recommended fields // are required. optional int64 recommended_fields = 2; // max_safe_length indicates the maximum number of Unicode characters that // are guaranteed to be shown without truncation. Longer strings may be // truncated and ellipsized by Ad Exchange or the publisher during // rendering. optional int32 headline_max_safe_length = 3; optional int32 body_max_safe_length = 4; optional int32 call_to_action_max_safe_length = 5; optional int32 advertiser_max_safe_length = 6; optional int32 price_max_safe_length = 15; // The width and height from which to calculate the required aspect ratio. // You can provide a larger image in the response. Images that have aspect // ratios substantially different than those implied by the height and // width may be filtered. optional int32 image_width = 7; optional int32 image_height = 8; optional int32 logo_width = 9; optional int32 logo_height = 10; optional int32 app_icon_width = 11; optional int32 app_icon_height = 12; // Globally distinct id for the specific style, HTML, and CSS with which // the native ad is rendered. optional int32 style_id = 16; // Type of style layout for each native ad template. enum LayoutType { PIXEL = 0; FLUID = 1; } optional LayoutType style_layout_type = 17 [default = PIXEL]; // If the style_layout_type is Pixel, width and height of the // entire native ad after rendering. If the style_layout_type is // Fluid, the style_height and style_width may optionally // not be populated. optional int32 style_height = 18; optional int32 style_width = 19; } repeated NativeAdTemplate native_ad_template = 51; } // NativePlacementType describes placement of native ad slot with respect to // surrounding context. enum NativePlacementType { PLACEMENT_UNKNOWN = 0; // In the feed of content - for example as an item inside the organic // feed/grid/listing/carousel. PLACEMENT_IN_FEED = 1; // In the atomic unit of the content - for example, in the article page or single // image page. PLACEMENT_ATOMIC_UNIT = 2; // Outside the core content - for example in the ads section on the right // rail, as a banner-style placement near the content, etc. PLACEMENT_OUTSIDE = 3; // Recommendation widget, most commonly presented below the article // content. PLACEMENT_RECOMMENDATION = 4; } optional NativePlacementType native_placement_type = 45; // ... }
Mensaje del maestro
Cuando se oferta en el inventario nativo, un comprador debe propagar
BidResponse.ad[].native_ad
con los campos obligatorios declarados en el BidRequest.adSlot[].native_ad_template
correspondiente.
message BidResponse { //... message Ad { //... message NativeAd { // A short title for the ad. optional string headline = 1; // A long description of the ad. optional string body = 2; // A label for the button that the user is supposed to click. optional string call_to_action = 3; // The name of the advertiser or sponsor, to be displayed in the ad // creative. optional string advertiser = 4; // Next tag to use: 4 message Image { optional string url = 1; // Image width and height are specified in pixels. You may provide a // larger image than was requested, so long as the aspect ratio is // preserved. optional int32 width = 2; optional int32 height = 3; } // A large image. optional Image image = 5; // A smaller image, for the advertiser's logo. optional Image logo = 6; // The app icon, for app download ads. optional Image app_icon = 7; // The video file. Only set this field if the video field is requested. oneof video { // The URL to fetch a video ad. The URL should return an XML response // that conforms to VAST standards. string video_url = 13; // The VAST document to be returned. string video_vast_xml = 16; } // The app rating in the app store. Must be in the range [0-5]. optional double star_rating = 8; // The URL that the browser/SDK will load when the user clicks the ad. // This can be the landing page directly, or the first step of a redirect // chain that eventually leads to it. For backward compatibility, if this // is not set, the first Ad.click_through_url is used. optional string click_link_url = 14; // The URL to use for click tracking. The SDK pings click tracking url on // a background thread. When resolving the url, HTTP 30x redirects are // followed. The SDK ignores the contents of the response; this URL // has no effect on the landing page for the user. // This field is planned to be deprecated and we are moving to the // repeated click_tracking_urls field. optional string click_tracking_url = 11; // The URLs to use for click tracking. This will be used throughout the // serving stack and will incorporate any URL in click_tracking_urls. repeated string click_tracking_urls = 15; // The price of the promoted app including the currency info. optional string price = 10; }; optional NativeAd native_ad = 18; // The set of destination URLs for the snippet. This includes the URLs that // the user will go to if they click on the displayed ad, and any URLs that // are visible in the rendered ad. Do not include intermediate calls to the // adserver that are unrelated to the final landing page. A BidResponse that // returns a snippet or video ad but declares no click_through_url will be // discarded. Only set this field if html_snippet or video_url or native_ad // are set. This data is used as a destination URL declaration, for example // for post-filtering of publisher-blocked URLs or ad categorization. // // For non-native ads, it is not used for click tracking or any // other ad functionality; it is only used as a destination URL // declaration. // // For native ads, if NativeAd.click_link_url is not set, the first // value of click_through_url is used to direct the user to the landing // page. In addition, all values are used as destination // URL declarations (similar to the non-native case). repeated string click_through_url = 4; //... // The URLs to call when the impression is rendered. The SDK pings // impression urls on a background thread and ignores the contents // of the response. repeated string impression_tracking_url = 19; // Link to ad preferences page. This is only supported for native ads. // If present, a standard AdChoices icon is added to the native ad creative and // linked to this URL. optional string ad_choices_destination_url = 21; // ... } }
Ejemplos de solicitudes de oferta
Solicitudes de ofertas que no son de video
JSON de OpenRTB
Protocolo de OpenRTB
Solicitudes de oferta de video
Ejemplos de respuestas a ofertas
Ten en cuenta que los valores de esta respuesta no están diseñados para coincidir con el correspondientes a las solicitudes anteriores. Sin embargo, si la plantilla en la solicitud sugiere que es obligatorio o opcional, , las respuestas se adhieren a esos requisitos.