Anuncios nativos

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:

  1. 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.
  2. Google envía a los compradores una solicitud de oferta de RTB que incluye una lista de los que se solicitan.
  3. Los compradores interesados responden con los campos solicitados.
  4. Google realiza una subasta para seleccionar la oferta ganadora y envía la recursos de creatividad que proporcionó el comprador al publicador.
  5. 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:

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

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

video nativo

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 - Una URL a XML de VAST que contiene un informe Flood-It! Anuncio de video
Título El encabezado del anuncio Obligatorio 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 click_through_url. Solo establecido este campo si html_snippet, video_url o Se establecieron native_ad. Estos datos se utilizan como URL de destino. por ejemplo, para el filtrado posterior de URLs o de anuncios bloqueados por el publicador categorización. Consulta la NativeAd.click_link_url más arriba cuando uses anuncios nativos.

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_link_url, el valor el primer valor de click_through_url se usa para dirigir al usuario a la página de destino. Además, todos los valores se utilizan como URL de destino de registro (similar al caso de los no nativos).

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.

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
0 STORE No
0 PRICE No
0 STAR_RATING No
0 APP_ICON No
1 LOGO
1 IMAGE
1 ADVERTISER
1 CALL_TO_ACTION
0 BODY No
1 HEADLINE

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

Google

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.

Respuestas de ofertas que no son de video

Google

JSON de OpenRTB

Protocolo de OpenRTB

Respuestas de ofertas de video