Les annonces natives sont mises en forme pour s'adapter au contenu et à l'aspect visuels environnants, ce qui augmente les chances que les utilisateurs les voient et cliquent dessus. L'inventaire d'annonces natives est disponible dans les applications mobiles, ainsi que sur les sites Web mobiles et pour ordinateur. Pour en savoir plus sur les annonces natives, consultez Présentation des annonces natives.
Les annonces natives sont compatibles avec Authorized Buyers et Open Bidding.
Voici le workflow pour les annonces natives:
- Une annonce native est appelée auprès de Google. L'appel spécifie l'un des modèles d'annonces natives ou les deux ci-dessous, chacun spécifiant ses champs natifs préférés.
- Google envoie aux acheteurs une demande d'enchère RTB contenant une liste des champs demandés.
- Les acheteurs intéressés répondent en fournissant les champs demandés.
- Google lance une mise aux enchères pour sélectionner l'enchère gagnante, puis envoie à l'éditeur les assets de création fournis par l'acheteur.
- L'éditeur assemble les assets dans une annonce native et les met en forme pour les adapter au style du site.
Formats des messages
Google accepte la spécification OpenRTB à la fois dans JSON et dans Protobuf.
Pour les annonces natives Protobuf OpenRTB, les champs suivants diffèrent de la spécification:
Spécification JSON (PROTOCOL_OPENRTB_2_4) |
Type JSON | Implémentation OpenRTB (PROTOCOL_OPENRTB_PROTOBUF_2_4) |
Type OpenRTB |
---|---|---|---|
BidRequest.imp[].native.request |
string |
BidRequest.imp[].native.request_native |
NativeRequest |
BidResponse.seatbid[].bid[].adm |
string |
BidResponse.seatbid[].bid[].adm_native |
NativeResponse |
Les champs OpenRTB sont des messages Protobuf et non des chaînes.
Si vous utilisez l'implémentation du protocole OpenRTB, vous ne recevrez pas BidRequest.imp[].native.request
et devrez répondre avec BidResponse.seatbid[].bid[].adm_native
. Les réponses aux enchères avec BidResponse.seatbid[].bid[].adm
sont filtrées. Les ID d'élément ne sont pas nécessaires pour les réponses aux enchères Protobuf OpenRTB.
Si vous utilisez un SDK acheteur pour afficher les annonces natives, vous devez inclure une image type
dans le declared_ad
lorsque vous envoyez les créations pour examen.
Modèles d'annonces natives
Google accepte les deux modèles d'annonces natives les plus courants pour les annonces natives non vidéo et vidéo:
- Modèle d'annonce incitant à installer une application : permet de promouvoir et de générer des installations d'application mobile.
- Modèle d'annonce de contenu : combinaison plus générique de texte et d'images pour les annonces axées sur la marque ou le Web.
- Modèle d'annonce vidéo incitant à installer une application
- Modèle d'annonce de contenu vidéo
Il existe d'autres modèles, et ils peuvent présenter des exigences différentes en termes de champs, de dimensions et de tailles.
Modèle d'annonce incitant à installer une application
Champs obligatoires et recommandés
Les tableaux ci-dessous présentent les champs obligatoires ou recommandés. Les règles suivantes s'appliquent :
- Les champs marqués comme Obligatoires sont obligatoires pour l'enchérisseur.
- Les champs marqués comme Recommandé ne sont pas obligatoires pour l'enchérisseur. L'éditeur peut ou non les afficher s'ils en fournissent (par exemple, une note).
- L'incitation à l'action est toujours marquée comme Recommended (Recommandé), car une valeur par défaut est attribuée si une incitation à l'action n'est pas envoyée par l'enchérisseur, mais elle sera toujours affichée le cas échéant.
Le tableau suivant répertorie les champs d'un modèle d'annonce incitant à installer une application. Les applications mobiles utilisent ces champs pour créer des annonces natives incitant à installer une application.
Champ | Description | Obligatoire ou recommandé ? | Toujours affiché ? | Taille d'image recommandée/nombre maximal de caractères | Exemple |
---|---|---|---|---|---|
Titre | Titre de l'application | Obligatoire | Oui | 25 caractères | Flood-It! |
Image | Une capture d'écran de l'application ou une autre image pertinente | Obligatoire | Non | 1 200 x 627 px ou 600 x 600 px en fonction du format requis par l'éditeur | <Capture d'écran du jeu Flood-It!> |
Body | Texte principal de l'application | Obligatoire | Non | 90 caractères | Simplement simple, mais aussi stimulant = délicieusement addictif ! |
Icône de l'application | L'icône de l'appli | Obligatoire | Non | 128 x 128 px | <Icône de l'application Flood-it!> |
Incitation à l'action | Action souhaitée de l'utilisateur | Recommandé | Oui | 15 caractères | Installer |
Star rating [Note] | Nombre d'étoiles (0 à 5) représentant la note de l'application sur la plate-forme de téléchargement d'applications | Recommandé | Non | 0 – 5 | 4.5 |
Prix | Le coût de l'application | Recommandé | Non | 15 caractères | Sans frais |
Remarques sur la longueur du texte
Si un acheteur envoie un composant texte (corps du texte, par exemple) plus long que le nombre maximal de caractères suggéré, le texte peut être tronqué et recadré par Google ou l'éditeur. Notez que les limites de troncation sont de moitié de taille en chinois, en coréen et en japonais. Par exemple, la limite de titres est de 90 pour l'anglais et de 45 pour le chinois.
Remarques sur la taille des images
Les éditeurs sont autorisés à:
- Recadrez l'image principale de façon symétrique jusqu'à 20% dans une seule dimension (hauteur ou largeur).
- Permet de mettre l'image à l'échelle sans modifier ses proportions.
- Les images dont les proportions sont très différentes de celles impliquées par la hauteur et la largeur peuvent être filtrées.
Modèle d'annonce du réseau de contenu
Le tableau suivant répertorie les champs d'un modèle d'annonce de contenu. Les éditeurs utilisent ces champs pour créer des annonces de contenu natives.
Champ | Description | Obligatoire ou recommandé ? | Toujours affiché ? | Taille d'image recommandée/nombre maximal de caractères* | Exemple |
---|---|---|---|---|---|
Titre | En-tête d'annonce | Obligatoire | Oui | 25 caractères | Taux de prêt les plus bas |
Image | L'image principale de l'annonce | Obligatoire | Non | 1 200 x 627 px ou 600 x 600 px en fonction du format requis par l'éditeur | <Image principale de l'annonce> |
Body | Le contenu de l'annonce | Obligatoire | Non | 90 caractères | Votre maison à Brooklyn : moins chère et plus vite que vous ne le pensez ! |
Logo | Logo de l'annonceur ou toute autre petite image pertinente | Recommandé | Non | 128 x 128 px | <Logo de NY Mortgage Inc.> |
Incitation à l'action | Action préférée de l'utilisateur | Recommandé | Non | 15 caractères | Demander un devis |
Annonceur | Texte permettant d'identifier l'annonceur ou la marque | Obligatoire | Non | 25 caractères | NY Mortgage Inc. |
Modèle d'annonce vidéo incitant à installer une application
Champ | Description | Obligatoire ou recommandé ? | Toujours affiché ? | Taille d'image recommandée/nombre maximal de caractères* | Exemple |
---|---|---|---|---|---|
Vidéo | Réponse VAST vidéo contenant tous les éléments nécessaires à la lecture d'une annonce vidéo. | Obligatoire | Non | - | Une URL vers un fichier XML VAST contenant une image Flood-It! annonce vidéo |
Titre | Titre de l'application | Obligatoire | Oui | 25 caractères | Flood-It! |
Image | Image (vignette) affichée dans le lecteur avant un clic sur l'annonce vidéo ou pendant son chargement. | Obligatoire | Non | Elle doit correspondre au format de la vidéo (par exemple, 1 280 x 720 pour une vidéo au format 16:9, 4:3 pour une vidéo en 640 x 480). | Capture d'écran du jeu Flood-It! Ou à partir de la vidéo |
Body | Texte principal de l'application | Obligatoire | Non | 90 caractères | Simplement simple, mais aussi stimulant = délicieusement addictif ! |
Icône de l'application | L'icône de l'appli | Obligatoire | Non | 128 x 128 px | Icône de l'application Flood-it! |
Incitation à l'action | Action souhaitée de l'utilisateur | Obligatoire | Oui | 15 caractères | Installer |
Star rating [Note] | Nombre d'étoiles (0 à 5) représentant la note de l'application sur la plate-forme de téléchargement d'applications | Recommandé | Non | 0 – 5 | 4.5 |
Prix | Le coût de l'application | Recommandé | Non | 15 caractères | Sans frais |
Restrictions
Vidéo: toutes les vidéos doivent se présenter sous la forme d'une URL VAST ou d'un tag VAST. Vous ne pouvez pas spécifier un fichier vidéo brut (WebM, MP4, etc.).
Longueur du texte: si un acheteur spécifie un élément texte tel que
body
dans la réponse, il peut être tronqué et sélectionné par l'éditeur ou par Google. Notez que les limites de troncation sont deux fois moins réduites en chinois, en coréen et en japonais. Par exemple, le nombre maximal de titres est 90 en anglais et 45 en chinois.Taille de l'image: les éditeurs sont autorisés à:
- Recadrez l'image principale de façon symétrique jusqu'à 20% dans une seule dimension (hauteur ou largeur).
- Permet de mettre l'image à l'échelle sans modifier ses proportions.
Exemple d'annonce incitant à installer une application
Modèle d'annonce de contenu vidéo
Champ | Description | Obligatoire ou recommandé ? | Toujours affiché ? | Taille d'image recommandée/nombre maximal de caractères* | Exemple |
---|---|---|---|---|---|
Vidéo | Réponse VAST vidéo contenant tous les éléments nécessaires à la lecture d'une annonce vidéo. | Obligatoire | Oui | - | Une URL vers un fichier XML VAST contenant une image Flood-It! annonce vidéo |
Titre | En-tête d'annonce | Obligatoire | Oui | 25 caractères | Taux de prêt les plus bas |
Image | Image (vignette) affichée dans le lecteur avant un clic sur l'annonce vidéo ou pendant son chargement. | Obligatoire | Non | Elle doit correspondre au format de la vidéo (par exemple, 1 280 x 720 pour une vidéo au format 16:9, 4:3 pour une vidéo en 640 x 480). | Une capture d'écran de la vidéo |
Body | Le contenu de l'annonce | Obligatoire | Non | 90 caractères | Votre maison à Brooklyn : moins chère et plus vite que vous ne le pensez ! |
Logo | Logo de l'annonceur ou toute autre petite image pertinente | Recommandé | Non | 128 x 128 px | Logo de NY Mortgage Inc. |
Incitation à l'action | Action préférée de l'utilisateur | Obligatoire | Non | 15 caractères | Demander un devis |
Annonceur | Texte permettant d'identifier l'annonceur ou la marque | Obligatoire | Non | 25 caractères | NY Mortgage Inc. |
Champs de métadonnées
Les métadonnées de champs suivantes sont partagées par tous les modèles d'annonces compatibles:
Tampon de protocole en temps réel Authorized Buyers | Équivalent Authorized Buyers OpenRTB | Description |
---|---|---|
NativeAd.click_link_url |
Link.url |
URL qui est appelée par le navigateur lorsque l'utilisateur clique sur l'annonce.
Il peut s'agir de la première étape d'une chaîne de redirection qui mène finalement à la page de destination. Pour les annonces natives, nous vous recommandons d'utiliser le champ click_link_url afin de définir la destination vers laquelle l'utilisateur sera redirigé. Il est obligatoire dans le cas de pages de destination dynamiques. |
Ad.click_through_url |
Bid.adomain |
Doit être défini si l'enchérisseur a l'intention de définir une enchère. Il s'agit de l'ensemble des URL de destination de l'extrait, y compris les URL auxquelles l'utilisateur accédera s'il clique sur l'annonce affichée et toutes les URL visibles dans l'annonce affichée. N'incluez pas d'appels intermédiaires au serveur publicitaire qui sont sans rapport avec la page de destination finale. Si une réponse à l'enchère renvoie un extrait ou une annonce vidéo, mais ne déclare aucune Pour les annonces non natives, il n'est pas utilisé pour le suivi des clics ou toute autre fonctionnalité publicitaire. Il sert uniquement à déclarer l'URL de destination. Pour les annonces natives, si |
NativeAd.click_tracking_urls |
Link.clicktrackers |
Facultatif. URL supplémentaires permettant aux annonceurs de suivre les clics des utilisateurs sur l'annonce. |
Ad.ad_choices_destination_url |
BidExt.ad_choices_destination_url |
Lien vers une page de préférences ou de désactivation pour les annonces. Le cas échéant, une icône AdChoices standard est ajoutée à la création native et associée à cette URL. Cette option est compatible avec les annonces natives, mais ne fait pas partie du message natif dans la réponse à l'enchère. |
Ad.impression_tracking_url |
NativeResponse.imptrackers |
L'impression native doit être suivie avec impression_tracking_url dans le protocole d'enchères en temps réel Authorized Buyers ou dans les outils de suivi natifs dans OpenRTB. |
Champs obligatoires et recommandés
required_fields
et recommended_fields
sont spécifiés par l'éditeur. Nous vous expliquons comment traduire ces champs de bits pour déterminer si un champ est obligatoire ou recommandé.
Un champ de bits utilise chaque bit d'une valeur binaire pour stocker une instruction "true" ou "false", ce qui équivaut à envoyer de nombreux signaux booléens tels que is_logo_required
, is_header_required
, etc., mais tous empaquetés.
Exemple
Pour cet exemple, nous utiliserons la valeur required_fields
de 1085
.
Commencez par déterminer la valeur binaire équivalente : 10000111101
Une fois que vous disposez de la valeur binaire, vous pouvez vérifier les bits pour voir si un champ est obligatoire (1) ou non obligatoire (0).
Le tableau ci-dessous met en correspondance les champs avec leur position dans la valeur binaire. Lisez le binaire de droite à gauche, le bit de 1 bit correspondant à la position la plus à droite dans la valeur binaire.
Champ | Emplacement de la valeur binaire (de droite à gauche) |
---|---|
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 |
En examinant l'exemple de valeur binaire 10000111101
, le 1 bit (le plus à droite) correspond à 1
, ce qui signifie qu'il s'agit d'une valeur requise. D'après le tableau, le bit de 1 bit correspond à HEADLINE
.
Les 2 bits (deuxième valeur en partant de la droite) correspondent à 0
, ce qui signifie qu'ils ne sont pas obligatoires. Le 2 bits correspond à BODY
.
Voici tous les champs obligatoires interprétés dans notre exemple:
Valeur | Description | Obligatoire ? |
---|---|---|
1 |
VIDEO |
Oui |
0 |
STORE |
Non |
0 |
PRICE |
Non |
0 |
STAR_RATING |
Non |
0 |
APP_ICON |
Non |
1 |
LOGO |
Oui |
1 |
IMAGE |
Oui |
1 |
ADVERTISER |
Oui |
1 |
CALL_TO_ACTION |
Oui |
0 |
BODY |
Non |
1 |
HEADLINE |
Oui |
Message NativeAdTemplate
Lors de la réception d'une demande d'enchère contenant un inventaire natif, celle-ci contiendra un champ BidRequest.adSlot[].native_ad_template.
Le message NativeAdTemplate
fournit des spécifications pour:
- Champs obligatoires ou recommandés.
- les dimensions des images, logos et icônes d'applications ;
- Spécifications concernant le style dans lequel l'annonce est affichée.
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; // ... }
Message NativeAd
Lorsqu'il définit une enchère sur un inventaire natif, l'acheteur doit renseigner des champs obligatoires dans le fichier BidRequest.adSlot[].native_ad_template
correspondant dans BidResponse.ad[].native_ad.
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; // ... } }
Exemples de demandes d'enchères
Demandes d'enchères non vidéo
JSON OpenRTB
Protobuf OpenRTB
Demandes d'enchères pour les annonces vidéo
Exemples de réponses aux enchères
Notez que les valeurs de ces réponses ne sont pas destinées à correspondre aux requêtes correspondantes ci-dessus. Toutefois, si le modèle de la requête suggère des champs obligatoires/facultatifs, les réponses ici respectent ces exigences.