Os anúncios nativos são formatados para se ajustarem ao conteúdo e aos recursos visuais ao redor design, aumentando a probabilidade de serem visualizados e clicados pelos usuários. Anúncio nativo está disponível em apps para dispositivos móveis, bem como em sites para dispositivos móveis e computadores. Para mais informações sobre anúncios nativos, consulte Visão geral de anúncios nativos anúncios.
Os anúncios nativos são compatíveis com Authorized Buyers e Open Bidding
Veja o fluxo de trabalho dos anúncios nativos:
- Uma chamada de anúncio nativo é feita ao Google. A chamada especifica um ou ambos os modelos de anúncios nativos abaixo, cada um especificando o campos nativos.
- O Google envia aos compradores uma solicitação de lance RTB contendo uma lista dos campos que estão sendo solicitados.
- Os compradores interessados respondem com os campos solicitados.
- O Google realiza um leilão para selecionar o lance vencedor e envia o os recursos do criativo fornecidos pelo comprador ao editor.
- O editor monta os recursos em um anúncio nativo e os estiliza para se adequar ao design do site.
Formatos de mensagem
O Google suporta Especificação do OpenRTB em JSON e Protobuf.
Para anúncios nativos em Protobuf do OpenRTB, os seguintes campos são diferentes da especificação:
Especificação JSON (PROTOCOL_OPENRTB_2_4) |
Tipo de JSON | Implementação do OpenRTB (PROTOCOL_OPENRTB_PROTOBUF_2_4) |
Tipo do OpenRTB |
---|---|---|---|
BidRequest.imp[].native.request |
string |
BidRequest.imp[].native.request_native |
NativeRequest |
BidResponse.seatbid[].bid[].adm |
string |
BidResponse.seatbid[].bid[].adm_native |
NativeResponse |
Os campos do OpenRTB são mensagens do Protobuf, e não strings.
Se você usar a implementação de Protobuf do OpenRTB, não vai receber
BidRequest.imp[].native.request
e responder com
BidResponse.seatbid[].bid[].adm_native
. Respostas de lance com
BidResponse.seatbid[].bid[].adm
foram filtradas. Os códigos de recurso não são necessários para o OpenRTB
Respostas de lance do protobuf.
Se você usar um SDK do comprador para renderizar anúncios nativos,
você precisa incluir uma imagem type
no declared_ad
ao
enviar criativos para revisão.
Modelos de anúncios nativos
O Google oferece suporte aos dois modelos mais comuns de anúncios nativos para anúncios que não são de vídeo e anúncios nativos em vídeo:
- Modelo de anúncio de instalação de apps: promover e impulsionar instalações de apps para dispositivos móveis.
- Modelo de anúncio de conteúdo: mais genérico de texto e imagens para anúncios de marca ou da Web.
- Modelo de anúncio em vídeo de instalação de apps
- Modelo de anúncio de conteúdo em vídeo
Existem outros modelos, e eles podem ter um conjunto diferente de requisitos para campos, dimensões e tamanhos.
Modelo de anúncio de instalação de apps
Campos obrigatórios e recomendados
As tabelas abaixo mostram os campos rotulados como Obrigatório ou Recomendado. Aplicam-se as seguintes regras:
- Os campos marcados como Obrigatórios são obrigatórios para o bidder.
- Os campos marcados como Recomendado não são obrigatórios para o bidder, e o o editor poderá ou não exibi-los se forem fornecidos (por exemplo, marcar com estrela classificação).
- A call-to-action (CTA) é sempre marcada como Recomendada porque padrão será atribuído se não for enviado pelo proponente, mas sempre será serão exibidos, se enviados.
A tabela a seguir lista os campos de um modelo de anúncio de instalação de aplicativo. Os aplicativos para dispositivos móveis usam esses campos para criar anúncios nativos de instalação de apps.
Campo | Descrição | Obrigatório ou recomendado? | Sempre exibido? | Tamanho de imagem recomendado/número máximo de caracteres | Exemplo |
---|---|---|---|---|---|
Título | O título do app | Obrigatório | Sim | 25 caracteres | Inundação! |
Imagem | Uma captura de tela do app ou outra imagem relevante | Obrigatório | Não | 1.200 px x 627 px ou 600 px x 600 px,dependendo da proporção necessária pelo editor. | <Uma captura de tela do jogo Flood-It!> |
Corpo | Texto principal do app | Obrigatório | Não | 90 caracteres | Simplesmente simples e desafiadores = deliciosamente viciante! |
Ícone do app | O ícone do app | Obrigatório | Não | 128 x 128 px | <Flood-it! ícone do app> |
Call-to-action | Ação do usuário preferida | Recomendado | Sim | 15 caracteres | Instalar |
Star rating | O número de estrelas (0 a 5) representando classificação do app na app store | Recomendado | Não | 0 a 5 | 4,5 |
Preço | Custo do app | Recomendado | Não | 15 caracteres | Gratuito |
Observações sobre o tamanho do texto
Se um comprador enviar um recurso de texto (corpo do texto, por exemplo) maior que o máximo sugerido de caracteres, o texto pode ficar truncado e cortadas pelo Google ou pelo editor. Observe que o truncamento têm metade do tamanho em chinês, japonês e coreano. Por exemplo, o o limite de títulos é 90 para inglês e 45 para chinês.
Observações sobre o tamanho da imagem
Os editores podem:
- Corte a imagem principal de forma simétrica em até 20% em uma dimensão (altura ou largura).
- Dimensione a imagem sem alterar a proporção.
- Imagens com proporções significativamente diferentes das implícitas por altura e largura podem ser filtradas.
Modelo de anúncio de conteúdo
A tabela a seguir lista os campos de um modelo de anúncio de conteúdo. Editoras use esses campos para criar anúncios de conteúdo nativo.
Campo | Descrição | Obrigatório ou recomendado? | Sempre exibido? | Tamanho de imagem recomendado/número máximo de caracteres * | Exemplo |
---|---|---|---|---|---|
Título | O cabeçalho do anúncio | Obrigatório | Sim | 25 caracteres | Taxas de hipoteca mais baixas |
Imagem | A imagem principal do anúncio | Obrigatório | Não | 1.200 px x 627 px ou 600 px x 600 px,dependendo da proporção necessária pelo editor. | <Imagem principal do anúncio> |
Corpo | O conteúdo do anúncio | Obrigatório | Não | 90 caracteres | O lar do seu lar no Brooklyn. Mais barato e antes do que você imagina. |
Logotipo | O logotipo do anunciante ou outra imagem pequena relevante | Recomendado | Não | 128 x 128 px | <Logotipo da NY Mortgage Inc.> |
Call-to-action | Ação preferida do usuário | Recomendado | Não | 15 caracteres | Receber um orçamento |
Advertiser | Texto que identifica o anunciante ou a marca | Obrigatório | Não | 25 caracteres | Mortgage Inc. de Nova York |
Modelo de anúncio em vídeo de instalação de apps
Campo | Descrição | Obrigatório ou recomendado? | Sempre exibido? | Tamanho da imagem recomendado/número máximo de caracteres * | Exemplo |
---|---|---|---|---|---|
Vídeo | É a resposta VAST de vídeo com todos os recursos necessários para reproduzir um anúncio em vídeo. | Obrigatório | Não | - | Um URL para XML VAST contendo um Flood-It! Anúncio em vídeo |
Título | O título do app | Obrigatório | Sim | 25 caracteres | Inundação! |
Imagem | Imagem (miniatura) mostrada no player antes do clique no anúncio em vídeo ou durante o carregamento. | Obrigatório | Não | Precisa corresponder à proporção do vídeo (por exemplo, 1.280 x 720 para vídeos de 16 x 9, 4 x 3 para vídeos de 640 x 480). | Uma captura de tela do jogo Flood-It! Ou, no vídeo, |
Corpo | Texto principal do app | Obrigatório | Não | 90 caracteres | Simplesmente simples e desafiadores = deliciosamente viciante! |
Ícone do app | O ícone do app | Obrigatório | Não | 128 x 128 px | Flood-it! ícone do app |
Call-to-action | Ação do usuário preferida | Obrigatório | Sim | 15 caracteres | Instalar |
Star rating | Número de estrelas (0 a 5) que representa a classificação do app na app store | Recomendado | Não | 0 a 5 | 4,5 |
Preço | Custo do app | Recomendado | Não | 15 caracteres | Gratuito |
Restrições
Vídeo: todos os vídeos precisam estar na forma de um URL VAST. ou uma tag VAST. Um arquivo de vídeo bruto como WebM, MP4 etc. não pode ser especificado.
Comprimento do texto: se um comprador especificar um recurso de texto, como o
body
na resposta, ela pode ser truncada e reduzida por pelo Google ou pelo editor. Os limites de truncamento têm metade do tamanho em chinês, japonês e coreano. Por exemplo, o limite de títulos é 90 em inglês. e 45 para chinês.Tamanho da imagem: os editores podem:
- Cortar a imagem principal de forma simétrica em até 20% em uma dimensão (altura ou largura.
- Dimensione a imagem sem alterar a proporção.
Exemplo de anúncio de instalação de apps
Modelo de anúncio de conteúdo em vídeo
Campo | Descrição | Obrigatório ou recomendado? | Sempre exibido? | Tamanho da imagem recomendado/número máximo de caracteres * | Exemplo |
---|---|---|---|---|---|
Vídeo | É a resposta VAST de vídeo com todos os recursos necessários para reproduzir um anúncio em vídeo. | Obrigatório | Sim | - | Um URL para XML VAST contendo um Flood-It! Anúncio em vídeo |
Título | O cabeçalho do anúncio | Obrigatório | Sim | 25 caracteres | Taxas de hipoteca mais baixas |
Imagem | Imagem (miniatura) mostrada no player antes do clique no anúncio em vídeo ou durante o carregamento. | Obrigatório | Não | Precisa corresponder à proporção do vídeo (por exemplo, 1.280 x 720 para vídeos de 16 x 9, 4 x 3 para vídeos de 640 x 480). | Uma captura de tela do vídeo |
Corpo | O conteúdo do anúncio | Obrigatório | Não | 90 caracteres | O lar do seu lar no Brooklyn. Mais barato e antes do que você imagina. |
Logotipo | O logotipo do anunciante ou outra imagem pequena relevante | Recomendado | Não | 128 x 128 px | Logotipo da NY Mortgage Inc. |
Call-to-action | Ação preferida do usuário | Obrigatório | Não | 15 caracteres | Receber um orçamento |
Advertiser | Texto que identifica o anunciante ou a marca | Obrigatório | Não | 25 caracteres | Mortgage Inc. de Nova York |
Campos meta
Os metacampos a seguir são compartilhados por todos os modelos de anúncios compatíveis:
Autorizado Buffer de protocolo em tempo real do comprador | Autorizado Equivalente ao OpenRTB dos compradores | Descrição |
---|---|---|
NativeAd.click_link_url |
Link.url |
O URL que será chamado pelo navegador quando o usuário clicar no anúncio.
Pode ser a primeira etapa de uma cadeia de redirecionamento que acaba levando ao
página de destino. Para anúncios nativos, recomendamos usar click_link_url como o campo a ser definido
o destino para onde o usuário irá. É obrigatório usar este campo no caso
das páginas de destino dinâmicas. |
Ad.click_through_url |
Bid.adomain |
Precisa ser definido se o bidder pretende dar um lance. Esse é o conjunto de
URLs do snippet, incluindo os URLs que o usuário acessará se
clicam no anúncio exibido e todos os URLs visíveis na imagem
anúncio. Não inclua chamadas intermediárias para o servidor de anúncios que não estejam relacionadas à
a página de destino final. Um BidResponse que retorna um snippet ou anúncio em vídeo
mas declarar que nenhum Para anúncios não nativos, ele não é usado para rastreamento de cliques ou qualquer outro funcionalidade ele será usado somente como uma declaração de URL de destino. Para anúncios nativos, se |
NativeAd.click_tracking_urls |
Link.clicktrackers |
Opcional. URLs adicionais que permitem aos anunciantes rastrear os cliques dos usuários em o anúncio. |
Ad.ad_choices_destination_url |
BidExt.ad_choices_destination_url |
Vincule a uma página de preferências de anúncios ou a uma página de desativação. Se estiver presente, um padrão O ícone "Opções de anúncios" é adicionado ao criativo nativo e vinculado a esse URL. Isso é compatível com anúncios nativos, mas não faz parte da mensagem nativa no resposta do lance. |
Ad.impression_tracking_url |
NativeResponse.imptrackers |
A impressão nativa deve ser rastreada com
impression_tracking_url em lances em tempo real do Authorized Buyers
proto ou impressões nativas no OpenRTB. |
Campos obrigatórios e recomendados
required_fields
e recommended_fields
são especificados pelo editor. Mostramos como
para converter esses campos de bit a fim de determinar se um campo é obrigatório ou
recomendado.
Um campo de bit usa cada bit de um valor binário para armazenar um valor verdadeiro ou falso
equivalente, o que equivale a enviar muitos sinais booleanos, como
is_logo_required
, is_header_required
etc., mas todas
amontoadas.
Exemplo
Para este exemplo, usaremos um valor required_fields
de
1085
.
Primeiro, encontre o valor binário equivalente:
10000111101
Assim que tiver o valor binário, você poderá verificar os bits para ver se um campo está obrigatório (1) ou não obrigatório (0).
A tabela abaixo mapeia os campos para seus respectivos locais no valor binário. Leia o da direita para a esquerda, com o 1 bit correspondente à posição mais à direita no valor binário.
Campo | Canal de valor binário (da direita para a esquerda) |
---|---|
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 |
Analisando o exemplo de valor binário 10000111101
, o de 1 bit
(mais à direita) é 1
, que significa um valor obrigatório. De acordo com as
tabela, o 1 bit corresponde a HEADLINE
.
O de 2 bits (segundo valor da direita) é 0
, que significa
não é obrigatório. A de 2 bits corresponde a BODY
.
Estes são todos os campos obrigatórios interpretados no exemplo:
Valor | Descrição | Obrigatório? |
---|---|---|
1 |
VIDEO |
Sim |
0 |
STORE |
Não |
0 |
PRICE |
Não |
0 |
STAR_RATING |
Não |
0 |
APP_ICON |
Não |
1 |
LOGO |
Sim |
1 |
IMAGE |
Sim |
1 |
ADVERTISER |
Sim |
1 |
CALL_TO_ACTION |
Sim |
0 |
BODY |
Não |
1 |
HEADLINE |
Sim |
Mensagem NativeAdTemplate
Ao receber uma solicitação de lance com inventário nativo, ela terá um
preenchido BidRequest.adSlot[].native_ad_template.
A mensagem NativeAdTemplate
fornece especificações para:
- Campos obrigatórios ou recomendados.
- Dimensões para imagens, logotipos e ícones do app.
- Especificações do estilo em que o anúncio é renderizado.
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; // ... }
Mensagem NativeAd
Ao definir lances para inventário nativo, um comprador precisa preencher
BidResponse.ad[].native_ad
com campos obrigatórios declarados no BidRequest.adSlot[].native_ad_template
correspondente.
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; // ... } }
Exemplos de solicitações de lance
Solicitações de lance que não são de vídeo
JSON do OpenRTB
Protobuf do OpenRTB
Solicitações de lance de vídeo
Exemplos de respostas de lance
Observe que os valores nesta resposta não devem corresponder ao solicitações correspondentes acima. No entanto, se o modelo na solicitação sugerir campos, as respostas aqui vão estar em conformidade com esses requisitos.