Annunci nativi

Gli annunci nativi sono annunci formattati in modo da adattarsi ai contenuti e alle immagini circostanti design, in modo che abbiano maggiori probabilità di essere visualizzati e selezionati dagli utenti. Annuncio nativo L'inventario è disponibile su app mobile e sui siti web per computer desktop e dispositivi mobili. Per ulteriori informazioni sugli annunci nativi, consulta Panoramica degli annunci.

Gli annunci nativi sono supportati sia per Authorized Buyers sia per di Open Bidding.

Ecco il flusso di lavoro per gli annunci nativi:

  1. Google riceve una chiamata per un annuncio nativo. La chiamata specifica uno o entrambi i modelli di annunci nativi riportati di seguito, ognuno dei quali specifica il campi nativi.
  2. Google invia agli acquirenti una richiesta di offerta RTB contenente un elenco dei campi richiesti.
  3. Gli acquirenti interessati rispondono con i campi richiesti.
  4. Google esegue un'asta per selezionare l'offerta vincente e invia gli asset della creatività forniti dall'acquirente al publisher.
  5. Il publisher assembla gli asset in un annuncio nativo e assegna loro uno stile per adattarsi al design del sito.

Formati dei messaggi

Google supporta Specifica OpenRTB sia in JSON che Protobuf.

Per gli annunci nativi OpenRTB Protobuf, i seguenti campi sono diversi dalla specifica:

Specifica JSON
(PROTOCOL_OPENRTB_2_4)
Tipo JSON Implementazione di OpenRTB
(PROTOCOL_OPENRTB_PROTOBUF_2_4)
Tipo OpenRTB
BidRequest.imp[].native.request string BidRequest.imp[].native.request_native NativeRequest
BidResponse.seatbid[].bid[].adm string BidResponse.seatbid[].bid[].adm_native NativeResponse

I campi OpenRTB sono messaggi Protobuf e non stringhe.

Se utilizzi l'implementazione di OpenRTB Protobuf, non riceverai BidRequest.imp[].native.request e deve rispondere con BidResponse.seatbid[].bid[].adm_native. Risposte all'offerta con I filtri BidResponse.seatbid[].bid[].adm sono filtrati. Gli ID asset non sono obbligatori per OpenRTB Risposte alle offerte Protobuf.

Se utilizzi un SDK per gli acquirenti per eseguire il rendering degli annunci nativi, devi includere un'immagine type in declared_ad quando Inviare le creatività per la revisione.

Modelli di annunci nativi

Google supporta i due modelli di annunci nativi più comuni per gli annunci non video e annunci nativi video:

Esistono altri modelli e potrebbero avere requisiti diversi per campi, dimensioni e dimensioni.

Modello di annuncio per l'installazione di app

Le tabelle riportate di seguito mostrano i campi contrassegnati come Obbligatorio o Consigliato. Valgono le seguenti regole:

  • I campi contrassegnati come obbligatori sono obbligatori per l'offerente.
  • I campi contrassegnati come Consigliati non sono obbligatori per l'offerente e i campi l'editore può mostrarli o meno se vengono forniti (ad esempio, aggiungi a Speciali valutazione).
  • L'invito all'azione è sempre contrassegnato come Consigliato perché il valore predefinito viene assegnato se non ne viene inviato uno dall'offerente, ma lo sarà sempre visualizzato se inviato.

La seguente tabella elenca i campi di un modello di annuncio per l'installazione di app. Le app mobile utilizzano questi campi per creare annunci nativi per l'installazione di app.

Campo Descrizione Obbligatorio o consigliato? Sempre visualizzato? Dimensioni immagine consigliate/numero massimo di caratteri Esempio
Titolo Il titolo dell'app Obbligatorio 25 caratteri Flood-It!
Immagine Uno screenshot dell'app o un'altra immagine pertinente. Obbligatorio No 1200 x 627 px o 600 x 600 px,a seconda delle proporzioni richieste dal publisher. <Uno screenshot del gioco Flood-It!>
Corpo Testo principale dell'app Obbligatorio No 90 caratteri Estremamente semplice stuzzicante impegnativo = piacevolmente coinvolgente.
Icona dell'app L'icona dell'app Obbligatorio No 128 x 128 px <Allontana! icona dell'app>
Call to action Azione utente preferita Consigliato 15 caratteri Installa
Valutazione a stelle Numero di stelle (0 - 5) che rappresentano la valutazione dell'app nello store Consigliato No 0 - 5 4,5
Prezzo Il costo dell'app Consigliato No 15 caratteri Gratis

Note sulla lunghezza del testo

Se un acquirente invia un asset di testo (ad es. corpo del testo) più lungo della il numero massimo di caratteri suggerito, il testo potrebbe essere troncato con i puntini da parte di Google o del publisher. Il troncamento sono dimezzate in cinese, giapponese e coreano. Ad esempio, il limite di titoli è 90 per l'inglese e 45 per il cinese.

Note sulle dimensioni delle immagini

I publisher possono:

  • Ritaglia l'immagine principale in modo simmetrico fino al 20% in una sola dimensione (altezza o standard).
  • Ridimensiona l'immagine senza modificarne le proporzioni.
  • Immagini con proporzioni sostanzialmente diverse da quelle implicate per altezza e larghezza potrebbero essere filtrati.

Modello di annuncio di contenuti

La seguente tabella elenca i campi di un modello di annuncio di contenuti. Editori usa questi campi per creare annunci di contenuti nativi.

Campo Descrizione Obbligatorio o consigliato? Sempre visualizzato? Dimensioni immagine consigliate/numero massimo di caratteri * Esempio
Titolo L'intestazione dell'annuncio Obbligatorio 25 caratteri Tassi ipotecari più bassi
Immagine L'immagine principale dell'annuncio Obbligatorio No 1200 x 627 px o 600 x 600 px,a seconda delle proporzioni richieste dal publisher. <Immagine principale dell'annuncio>
Corpo Il contenuto dell'annuncio Obbligatorio No 90 caratteri La tua dolce casa a Brooklyn, più economica e veloce di quanto pensi!
Logo Il logo dell'inserzionista o un'altra immagine di piccole dimensioni pertinente Consigliato No 128 x 128 px <Logo di NY Mortgage Inc.>
Call to action Azione preferita dell'utente Consigliato No 15 caratteri Richiedi un preventivo
Inserzionista Testo che identifica l'inserzionista o il brand Obbligatorio No 25 caratteri NY Mortgage Inc.

Modello di annuncio video per l'installazione di app

Campo Descrizione Obbligatorio o consigliato? Sempre visualizzato? Dimensioni delle immagini consigliate/numero massimo di caratteri* Esempio
Video La risposta VAST video contenente tutti gli asset necessari per riprodurre un annuncio video. Obbligatorio No - Un URL al file XML VAST contenente un file Flood-It! Annuncio video
Titolo Il titolo dell'app Obbligatorio 25 caratteri Flood-It!
Immagine Immagine (miniatura) visualizzata nel player prima che venga fatto clic sull'annuncio video o durante il caricamento. Obbligatorio No Deve corrispondere alle proporzioni del video (ad es. 1280 x 720 per un video 16 x 9, 4 x 3 per un video 640 x 480). Uno screenshot del gioco Flood-It!. Oppure dal video
Corpo Testo principale dell'app Obbligatorio No 90 caratteri Estremamente semplice stuzzicante impegnativo = piacevolmente coinvolgente.
Icona dell'app L'icona dell'app Obbligatorio No 128 x 128 px Dalla gioia! icona dell'app
Call to action Azione utente preferita Obbligatorio 15 caratteri Installa
Valutazione a stelle Numero di stelle (0-5) che rappresenta la valutazione dell'app nello store Consigliato No 0 - 5 4,5
Prezzo Il costo dell'app Consigliato No 15 caratteri Gratis

Restrizioni

  • Video: tutti i video devono avere il formato di un URL VAST. o un tag VAST. Non è possibile specificare un file video non elaborato, ad esempio WebM, MP4 e così via.

  • Lunghezza del testo: se un acquirente specifica un asset di testo come body nella risposta, potrebbe essere stato troncato con dei puntini di sospensione da parte di Google o del publisher. Tieni presente che i limiti di troncamento sono dimezzati cinese, giapponese e coreano. Ad esempio, il limite per i titoli è 90 in inglese. e 45 per il cinese.

  • Dimensioni immagine. I publisher possono:

    • Ritaglia l'immagine principale in modo simmetrico fino al 20% in una dimensione (altezza o larghezza.
    • Ridimensiona l'immagine senza modificarne le proporzioni.

Esempio di annuncio per l'installazione di app

video nativo

Modello di annuncio di contenuti video

Campo Descrizione Obbligatorio o consigliato? Sempre visualizzato? Dimensioni delle immagini consigliate/numero massimo di caratteri* Esempio
Video La risposta VAST video contenente tutti gli asset necessari per riprodurre un annuncio video. Obbligatorio - Un URL al file XML VAST contenente un file Flood-It! Annuncio video
Titolo L'intestazione dell'annuncio Obbligatorio 25 caratteri Tassi ipotecari più bassi
Immagine Immagine (miniatura) visualizzata nel player prima che venga fatto clic sull'annuncio video o durante il caricamento. Obbligatorio No Deve corrispondere alle proporzioni del video (ad es. 1280 x 720 per un video 16 x 9, 4 x 3 per un video 640 x 480). Uno screenshot del video
Corpo Il contenuto dell'annuncio Obbligatorio No 90 caratteri La tua dolce casa a Brooklyn, più economica e veloce di quanto pensi!
Logo Il logo dell'inserzionista o un'altra immagine di piccole dimensioni pertinente Consigliato No 128 x 128 px Logo di NY Mortgage Inc.
Call to action Azione preferita dell'utente Obbligatorio No 15 caratteri Richiedi un preventivo
Inserzionista Testo che identifica l'inserzionista o il brand Obbligatorio No 25 caratteri NY Mortgage Inc.

Metadati

I seguenti meta campi sono condivisi da tutti i modelli di annuncio supportati:

Autorizzato Buffer di protocollo in tempo reale degli acquirenti Autorizzato Equivalente OpenRTB degli acquirenti Descrizione
NativeAd.click_link_url Link.url L'URL che verrà chiamato dal browser quando l'utente fa clic sull'annuncio. Può essere il primo passaggio di una catena di reindirizzamento che porta alla pagina di destinazione. Per gli annunci nativi, consigliamo di utilizzare click_link_url come campo da impostare la destinazione finale a cui andrà l'utente. È obbligatorio utilizzare questo campo nella richiesta delle pagine di destinazione dinamiche.
Ad.click_through_url Bid.adomain

Deve essere impostato se l'offerente intende fare offerte. Questo è l'insieme delle destinazioni Gli URL per lo snippet, inclusi gli URL a cui verrà indirizzato l'utente se fa clic sull'annuncio visualizzato e a qualsiasi URL visibile annuncio. Non includere chiamate intermedie all'ad server non correlate a la pagina di destinazione finale. Una risposta all'offerta che restituisce uno snippet o un annuncio video. ma dichiara che nessun elemento click_through_url verrà ignorato. Solo impostati questo campo se html_snippet, video_url o native_ad impostati. Questi dati vengono utilizzati come URL di destinazione di Google, ad esempio per il post-filtro di URL o annunci bloccati dai publisher categorizzazione. Consulta la NativeAd.click_link_url riportata sopra quando utilizzi gli annunci nativi.

Per gli annunci non nativi, non viene utilizzato per il monitoraggio dei clic o qualsiasi altro annuncio funzionalità; viene utilizzato solo come dichiarazione dell'URL di destinazione.

Per gli annunci nativi, se il criterio NativeAd.click_link_url non è impostato, il valore il primo valore di click_through_url viene utilizzato per indirizzare l'utente a la pagina di destinazione. Inoltre, tutti i valori vengono utilizzati come URL di destinazione (simile al caso non nativo).

NativeAd.click_tracking_urls Link.clicktrackers (Facoltativo) URL aggiuntivi che consentono agli inserzionisti di monitorare i clic degli utenti su dell'annuncio.
Ad.ad_choices_destination_url BidExt.ad_choices_destination_url Inserisci un link a una pagina di disattivazione o di preferenze annunci. Se presente, viene restituito uno standard L'icona Scegli Tu! viene aggiunta alla creatività nativa e collegata a questo URL. Questo è supportata per gli annunci nativi, ma non fa parte del messaggio nativo nella all'offerta.
Ad.impression_tracking_url NativeResponse.imptrackers L'impressione nativa deve essere monitorata con impression_tracking_url nelle offerte in tempo reale di Authorized Buyers o imptrackers nativi in OpenRTB.

required_fields e recommended_fields sono specificati dal publisher. Ti mostriamo come convertire questi campi di bit per determinare se un campo è obbligatorio o consigliato.

Un campo di bit utilizza ogni bit di un valore binario per memorizzare un valore vero o falso equivalente all'invio di molti indicatori booleani come is_logo_required, is_header_required ecc. ma tutti confezionati insieme.

Esempio

Per questo esempio utilizzeremo il valore required_fields 1085.

Innanzitutto, trova il valore binario equivalente: 10000111101

Una volta ottenuto il valore binario, puoi controllare i bit per verificare se un campo è obbligatorio (1) o non obbligatorio (0).

La tabella seguente mappa i campi alla loro posizione nel valore binario. Leggi binario da destra a sinistra, con 1 bit corrispondente alla posizione più a destra nel valore binario.

Campo Posizionamento del valore binario (da destra a sinistra)
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

Osservando il valore binario di esempio 10000111101, il valore a 1 bit (più a destra) è 1 e indica un valore obbligatorio. In base alle tabella, a 1 bit corrisponde a HEADLINE.

Il valore a 2 bit (il secondo valore da destra) è 0 a indicare non obbligatorio. Il formato a 2 bit corrisponde a BODY.

Di seguito sono riportati tutti i campi obbligatori interpretati nel nostro esempio:

Valore Descrizione Obbligatorio?
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

Messaggio NativeAdTemplate

Quando ricevi una richiesta di offerta contenente un inventario nativo, questa conterrà una BidRequest.adSlot[].native_ad_template compilato. Il messaggio NativeAdTemplate fornisce le specifiche per:

  • Campi obbligatori o consigliati.
  • Dimensioni di immagini, loghi e icone delle app.
  • Specifiche per lo stile in cui viene visualizzato l'annuncio.
di Gemini Advanced.
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;

  // ...
}

Messaggio di annuncio nativo

Quando fai offerte per un inventario nativo, l'acquirente deve compilare BidResponse.ad[].native_ad con i campi obbligatori dichiarati nel campo BidRequest.adSlot[].native_ad_template corrispondente.

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;
    // ...
  }
}

Esempi di richieste di offerta

Richieste di offerta non video

Google

JSON OpenRTB

Protobuf OpenRTB

Richieste di offerta per i video

Esempi di risposte alle offerte

Tieni presente che i valori in questa risposta non devono corrispondere ai richieste corrispondenti precedenti. Tuttavia, se il modello nella richiesta suggerisce campi, le risposte in questo caso rispettano tali requisiti.

Risposte alle offerte non video

Google

JSON OpenRTB

Protobuf OpenRTB

Risposte all'offerta per i video