Une fois que votre application a traité la demande d'enchère de Google, elle doit créer et d'envoyer une réponse. Ce guide explique comment coder votre application pour compiler la réponse.
Créer un message BidResponse
Authorized Buyers envoie l'BidRequest
dans le corps du message
un objet HTTP POST
. La réponse envoyée par votre application
l'en-tête Content-Type
défini sur application/octet-stream
et un corps de message composé
d'un tampon de protocole sérialisé. Le protocole
est un message BidResponse
tel que défini dans
realtime-bidding.proto
Votre application doit renvoyer un
BidResponse
en réponse à chaque BidRequest
. Délais d'inactivité
et les réponses qui ne peuvent pas être analysées sont considérées comme des erreurs et des limitations Google
aux enchérisseurs ayant des taux d'erreur élevés.
Si vous ne souhaitez pas définir d'enchère sur une impression, vous pouvez définir
Champ processing_time_ms
seul et conserver tous les autres champs
vide. Vous pouvez obtenir realtime-bidding.proto
données de référence.
ID de la création
Votre BidResponse
spécifie une création via la méthode
Champ buyer_creative_id
(64 octets maximum). Même les créations similaires
doit avoir des valeurs uniques pour buyer_creative_id
si elles diffèrent par
toute caractéristique notable, y compris, mais sans s'y limiter, la taille, l'URL déclarée,
les attributs de création
et les types de fournisseurs. En d'autres termes, vous devez donner différentes
d'identifiants de création à deux annonces qui:
- Votre apparence ou votre comportement sont différents.
- Afficher des images différentes.
- Affichage par différents moyens (par exemple, une annonce se compose d'une image, tandis que l'autre contient des éléments Flash).
Lorsque vous concevez votre application, vous devez choisir une méthode systématique générer des identifiants pertinents pour les types de créations que vous prévoyez à envoyer.
Attributs d'annonce
Vous devez déclarer les attributs de création qui décrivent de manière exhaustive les
et son ciblage dans la région BidResponse.Ad.attribute
. La
qui doivent être déclarés le sont (voir aussi la liste complète
à
buyer-declarable-creative-attributes.txt):
7 Tagging: IsTagged
L'annonce contient un pixel ou une balise Web servant à créer une liste d'ID de cookie à des fins de remarketing ultérieur8 Remarketing: IsRemarketing
L'annonce cible les consommateurs en fonction de leur ID de cookie ou d'appareil la liste d'ID de cookies ou d'ID d'appareils représente un ensemble de consommateurs qui ont déjà interagi avec un site appartenant à l'acheteur ou représenté par celui-ci ;9 UserInterestTargeting: IsUserInterestTargeted
L'annonce cible les consommateurs en fonction de leur ID de cookie ou d'appareil la liste d'ID de cookies ou d'ID d'appareils représente un ensemble de consommateurs que l'acheteur défini comme un groupe d'intérêt commun.30 InstreamVastVideoType: Vpaid
L'annonce doit être compatible avec la norme VPAID pour s'afficher.32 MraidType: MRAID
L'annonce nécessite l'API MRAID pour s'afficher.
De plus, les attributs suivants sont acceptés, mais leur déclaration est n'est pas obligatoire, car Authorized Buyers les détecte automatiquement et les bloque autoriser) vos créations en fonction des valeurs détectées, plutôt qu'en fonction de votre déclaration. Voir API Créations pour savoir comment obtenir des commentaires sur les propriétés détectées créations.
34 RichMediaCapabilityType: RichMediaCapabilityFlash
L'annonce ne peut s'afficher que si elle est compatible avec Flash.50 RichMediaCapabilityType: RichMediaCapabilityNonFlash
L'annonce ne nécessite pas de contenu Flash pour s'afficher.47 RichMediaCapabilityType: RichMediaCapabilitySSL
L'annonce peut s'afficher sur une page SSL. Notez qu'Authorized Buyers traite les créations avec des valeurs déclarées différentes pour cet attribut comme distinctes (elles seront examinées séparément et ont un état d'approbation distinct). Par conséquent, si vous utilisez à la fois SSL et SSL versions non SSL d'une même création, vous devez déclarer cet attribut en conséquence. afin que cette distinction soit reflétée correctement dans AdX.
Champs Open Bidding
Réponses aux enchères envoyées par les enchérisseurs sur la place de marché et le réseau participant au programme Open Source Les enchères sont semblables à celles des acheteurs Authorized Buyers des enchères en temps réel. Les clients Open Bidding peuvent spécifier un petit nombre des champs supplémentaires, et quelques champs existants peuvent avoir d’autres utilisations. Ces incluent les éléments suivants:
OpenRTB | Authorized Buyers | Détails |
---|---|---|
BidResponse.imp[].pmp.deals[].id |
BidResponse.ad[].adslot[].exchange_deal_id |
Il s'agit de l'ID de l'accord dans l'espace de noms de la place de marché qui lui est associé. et communiquées aux éditeurs. |
BidResponse.seatbid[].bid[].ext.exchange_deal_type |
BidResponse.ad[].adslot[].exchange_deal_type |
Type d'accord signalé aux éditeurs, qui a une incidence sur son état prises en compte lors des enchères. |
BidResponse.seatbid[].bid[].ext.third_party_buyer_token |
BidResponse.ad[].adslot[].third_party_buyer_token |
Jeton permettant d'identifier les informations sur l'acheteur tiers final en tant qu'enchérisseur Open Bidding est un intermédiaire. Cette valeur est obtenue à partir du acheteur tiers et doit être transmise à Google en l'état dans l'enchère. de réponse. |
Recommandations
- Activez les connexions HTTPS persistantes (aussi appelées "keep-alive" ou "keep-alive"). "réutilisation de connexion") sur vos serveurs. Définissez le délai avant expiration sur 10 secondes minimum : des valeurs plus élevées sont bénéfiques dans de nombreux cas. Validation par Google pendant les tests de latence initiaux de votre application, car Authorized Buyers envoie des demandes à un taux élevé et doit éviter de latence lié à l'établissement d'une connexion TCP distincte pour chaque requête.
Incluez l'URL de suivi des impressions (facultative) dont vous souhaitez effectuer le suivi lorsque le l'impression s'affiche plutôt que lorsque l'enchérisseur gagne. En raison de l'abandon entre les gains et les rendus, ce qui permet un suivi plus précis statistiques.
- Ne placez pas le code de votre système d'enchères dans un champ obsolète. ce qui peut entraîner l'échec de vos enchères avec des erreurs.
- Inclure
BidResponse.Ad.width
etBidResponse.Ad.height
dans votreBidResponse
. ABidResponse
à une demande incluant plusieurs tailles d'annonces doit n'inclut pas les valeurswidth
etheight
, ont été retirés de la mise en concurrence. - Limitez la taille de votre réponse à moins de 8 Ko. Les réponses très nombreuses peuvent augmenter et provoquer des délais d'inactivité.
- Suivez les consignes pour des enchères sur l'inventaire iOS qui nécessitent une attribution SKAdNetwork.
Exemple de réponse à l'enchère
Les exemples suivants représentent des exemples lisibles par l'humain des tampons de protocole et Requêtes JSON.
JSON OpenRTB
Protobuf OpenRTB
Important:Les messages Protobuf présentés dans les sont représentés ici sous forme de texte intelligible. Cependant, ce n'est pas ainsi les messages sont envoyés par fil. Lorsque vous utilisez le tampon de protocole Google ou OpenRTB seuls les messages de réponse à l'enchère sérialisés sont acceptés.
Vous pouvez créer et sérialiser un message BidResponse
à l'aide de la méthode
le code C++ suivant:
BidResponse bid_response; // fill in bid response with bid information string post_response; if (bid_response.SerializeToString(&post_response)) { // respond to the POST with post_response as the content } else { // return an error to the POST }
Spécifier une création
Votre réponse à l'enchère spécifie la création à diffuser si votre enchère l'emporte. Votre enchère
doit inclure l'un des formats d'annonces compatibles (AMP, vidéo ou native). Dans ce
exemple, nous spécifions la création à l'aide du champ html_snippet
.
Vous pouvez également spécifier votre création à l'aide de l'un des les champs suivants, selon le format d'annonce:
- Annonce affichée à l'aide d'un SDK
<ph type="x-smartling-placeholder">
- </ph>
BidResponse.Ad.sdk_rendered_ad
- AMP
<ph type="x-smartling-placeholder">
- </ph>
BidResponse.Ad.amp_ad_url
- Vidéo
BidResponse.Ad.video_url
ouBidResponse.Ad.video_vast_xml
- Format natif
<ph type="x-smartling-placeholder">
- </ph>
BidResponse.Ad.native_ad
Spécifiez une annonce hébergée sur vos propres serveurs à l'aide d'un extrait de code HTML dans
le champ html_snippet
de BidResponse
. La
est inclus dans un iFrame inséré dans la page Web, ce qui entraîne l'affichage de l'annonce
sont récupérées et affichées lors du chargement de la page. Vous devez créer le code HTML
afin que l'annonce (bannière ou interstitiel) s'affiche correctement dans un
iFrame et à une taille adaptée à l'espace publicitaire sur lequel vous enchérissez.
De plus, la taille d'annonce déclarée dans la réponse à l'enchère doit correspondre exactement à des combinaisons de tailles dans la demande d'enchère lorsque:
- Une annonce est une bannière standard (et non une annonce vidéo, native ou interstitielle).
- L'enchérisseur a déclaré la taille dans la réponse à l'enchère. La valeur "Déclaration de taille" est obligatoire lorsque plusieurs tailles sont présentes dans la requête.
- Les annonces interstitielles constituent une exception. Pour les interstitiels, la largeur doit correspondre à au moins 50% de la largeur de l'écran et à au moins 40% de la hauteur la hauteur de l'écran.
Le champ html_snippet
accepte tout code HTML valide qui
s'affiche correctement, mais gardez à l'esprit les restrictions liées à la spécification
buyer_creative_id
dans la section Create BidResponse message (Créer un message de réponse à l'enchère). Un
permet d'insérer des informations supplémentaires dans les arguments des URL
récupérées sur vos serveurs pour afficher l'annonce. Cela vous permet de transmettre
des données arbitraires sur l'impression
vers vos propres serveurs.
La plupart des règles concernant les extraits de code HTML renvoyés dans les réponses aux enchères sont identiques à pour les annonces tierces. Découvrez Authorized Buyers Consignes du programme, Conditions applicables aux tiers la diffusion d'annonces et Déclarer des URL de destination dans les annonces.
Spécifier des macros
L'extrait de code HTML qui définit une création peut inclure une ou plusieurs paires
appelées "macros". Au moment de la diffusion de l'annonce, les valeurs sont remplacées par
. Par exemple, l'application d'enchères de votre client peut utiliser
WINNING_PRICE
afin de déterminer le montant payé pour l'annonce,
s'il remporte l'enchère. Pour analyser cette macro, vous devez implémenter une
qui déchiffre les confirmations de prix. Reportez-vous à la section Prix du déchiffrement
Confirmations.
Spécifiez une macro pour un extrait de code HTML au format
%%MACRO%%
, où MACRO
est l'un des
répertoriées dans le tableau ci-dessous.
Google exige que vous utilisiez soit les CLICK_URL_UNESC
, soit
CLICK_URL_ESC
dans la création de l'annonce tierce diffusée.
annonce. Google utilise les macros CLICK_URL
pour effectuer le suivi des clics.
Pour utiliser une macro, incluez-la dans l'annonce afin que l'URL soit extraite au moment
que quelqu'un clique dessus. La valeur renvoyée est une redirection vers une autre
URL que vous ajoutez à CLICK_URL
.
Macro | Description |
---|---|
ADVERTISING_IDENTIFIER |
Permet aux acheteurs de recevoir l'IDFA iOS ou l'identifiant publicitaire Android lors de l'affichage des impressions. Voir Déchiffrer des identifiants d'annonceur pour en savoir plus. |
CACHEBUSTER |
Représentation, sous forme de chaîne, d'un nombre entier aléatoire non signé à quatre octets. |
CLICK_URL_UNESC |
L'URL cliquable de l'annonce sans échappement. Dans l'extrait de code, une version avec échappement de la méthode l'URL de suivi des clics tierce doit suivre directement la macro. Par exemple, si l'URL de suivi des clics tierce est
<a href="%%CLICK_URL_UNESC%%http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> Au moment de la diffusion de l'annonce, cette valeur est remplacée par: <a href="http://google-click-url?...&ad_url=http%3A%2F%2Fmy.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a> L'URL enregistre d'abord le clic auprès de Google, puis redirige vers l'URL de suivi des clics tierce. |
CLICK_URL_ESC |
URL de suivi des clics avec échappement pour l'annonce. Utilisez ceci à la place de
Par exemple, le code suivant pourrait être utilisé dans un extrait de code HTML: <a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%"></a> Au moment de la diffusion de l'annonce, cette valeur est remplacée par: <a href="http://my.adserver.com/click?google_click_url=http://google-click- url%3F...%26ad_url%3D"></a> Le clic est alors enregistré auprès de Vous pouvez ajouter une URL avec double échappement après
|
CLICK_URL_ESC_ESC |
URL avec double échappement de l'annonce. Utilisez ceci à la place de
Par exemple, le code suivant pourrait être utilisé dans un extrait de code HTML: <a href="http://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC_ESC%%"></a> Au moment de la diffusion de l'annonce, cette valeur est remplacée par: <a href="http://my.otheradserver.com/click?google_click_url=http%3A%2F%2Fmy.adserver.com%2Fclick%3Fgoogle_click_url%3Dhttp%3A%2F%2Fgoogle-click-%20url%253F...%2526ad_url%253D"></a> |
SCHEME |
Extension à http: si la demande d'enchère ne nécessite pas SSL ou pour
https: si la demande d'enchère nécessite la conformité avec la norme SSL. |
SITE |
Domaine avec séquence d'échappement de l'URL de contenu ou ID anonyme pour l'inventaire anonyme. |
SITE_URL |
Obsolète. Elle est remplacée par la macro SITE, qui offre des fonctionnalités identiques. |
TZ_OFFSET |
Décalage de fuseau horaire |
VERIFICATION |
Les différentes valeurs pour la production et l'analyse de la création lors de la validation
pipeline. Le format est le suivant: %%?VERIFICATION:true-val:false-val%% . Toute valeur
à l'exception des macros, peuvent être utilisées pour true-val et false-val ,
y compris des chaînes vides. Pour Open Bidding, nous recommandons aux places de marché d'utiliser cette macro :
une fois cette opération effectuée, les plates-formes côté demande n'ont plus besoin d'apporter de modifications.Par exemple, si une création doit inclure %%?VERIFICATION:-1:5000%%
le texte de remplacement serait 5000 lors de la diffusion et -1 dans
le pipeline de validation. Cela permet de différencier ces deux ensembles de pings. |
WINNING_PRICE |
Le coût de l'impression encodée (CPI plutôt que CPM) au format
en unités de la devise du compte. Par exemple, un CPM gagnant de 5 €
correspond à 5 000 000 micros CPM ou 5 000 micros CPI. La couche décodée
la valeur de WINNING_PRICE serait dans ce cas de 5 000.
Le prix gagnant est spécifié en CPI.
|
WINNING_PRICE_ESC |
WINNING_PRICE avec séquence d'échappement dans l'URL. |
L'échappement d'URL dans les macros utilise le schéma suivant:
- Le caractère d'espacement est remplacé par un signe plus (
+
). - Les caractères alphanumériques (0-9, a-z, A-Z) et les caractères de l'ensemble !()*,-./:_~ restent inchangés.
- Tous les autres caractères sont remplacés par
%XX
, oùXX
est la valeur hexadécimale chiffre représentant le caractère.
Restrictions des éditeurs
Les éditeurs utilisent l'BidRequest
pour transmettre des restrictions sur les annonces
qu'ils permettent. Vous devez appliquer les restrictions dans les champs suivants:
allowed_vendor_type
excluded_attribute
excluded_sensitive_category
Un champ spécifie les caractéristiques autorisées de l'annonce, et l'autre
fonctionnalités non autorisées. Ne renvoyez jamais une annonce comportant une fonctionnalité non autorisée. Pour les appareils autorisés
telles que le type de fournisseur, ne renvoient une annonce que si son type se trouve dans
Liste allowed_vendor_type
dans BidRequest
. Consultez le
Commentaires pour ces champs dans le tampon de protocole BidRequest
pour en savoir plus.
Si un extrait de code HTML est renvoyé dans BidResponse
, vous êtes
pour définir précisément attribute
, category
,
et click_through_url
dans le BidResponse
.
Si une annonce possède plusieurs valeurs applicables pour ces champs, vous devez :
inclure chaque valeur. Pour voir les commentaires associés à ces champs, consultez la
Définition du tampon de protocole BidResponse
.
Les réponses pour lesquelles ces champs ne sont pas définis sont supprimées.
Les valeurs possibles de BidRequest.excluded_attribute
sont les suivantes :
(voir le fichier publisher-excludable-creative-attributes.txt):
7 Tagging: IsTagged
Les annonces ne sont pas autorisées si elles contiennent un pixel ou une balise Web servant à créer une liste de à des fins de remarketing ultérieur.8 CookieTargeting: IsCookieTargeted
Les annonces ne sont pas autorisées si elles ciblent les consommateurs sur la base de leur ID de cookie (que représente la liste des ID de cookie). un ensemble de consommateurs ayant précédemment interagi avec un site appartenant à l'acheteur ou représenté par celui-ci ;9 UserInterestTargeting: IsUserInterestTargeted
Les annonces ne sont pas autorisées si elles ciblent les consommateurs sur la base de leur ID de cookie (que représente la liste des ID de cookie). un ensemble de consommateurs que l'acheteur a défini comme appartenant à une catégorie d'intérêt commun.21 CreativeType: Html
Les annonces ne peuvent pas utiliserhtml_snippet
nisnippet_template
dansBidResponse.Ad
.22 CreativeType: VastVideo
Les annonces ne peuvent pas utiliser le champvideo_url
dansBidResponse.Ad
.30 InstreamVastVideoType: Vpaid
Les annonces ne doivent pas exiger la compatibilité avec la norme VPAID pour s'afficher.32 MraidType: MRAID
L'affichage de l'API MRAID n'est pas autorisé pour les annonces.34 RichMediaCapabilityType: RichMediaCapabilityFlash
Les annonces ne doivent pas nécessairement être compatibles avec Flash pour s'afficher.39 RichMediaCapabilityType: RichMediaCapabilityHTML5
Les fonctionnalités HTML5 ne sont pas autorisées pour que les annonces s'affichent.48 RichMediaCapabilityType: RichMediaCapabilityNonSSL
Les annonces ne sont pas autorisées à envoyer des requêtes non SSL.
Par conséquent, si le champ excluded_attribute
contient la valeur
7, vous ne devez pas renvoyer une annonce utilisant un pixel ou une balise web
pour créer une liste. Notez que si une annonce fait cela, elle doit alors définir la valeur 7 dans
le champ d'attribut de BidResponse
.
De même, si le champ excluded_attribute
contient la valeur 48,
vous ne devez renvoyer que des annonces pouvant s'afficher sur une page SSL (et en conséquence
déclarer l'attribut 47 RichMediaCapabilityType: RichMediaCapabilitySSL).
De plus, le champ excluded_sensitive_category
dans
BidRequest
utilise des codes issus du
ad-sensitive-categories.txt
disponible sur la page Données de référence. Voici les extensions
description de certains de ces codes:
3 Politics
Cette catégorie porte sur la politique ou les sujets sociaux controversés. n'inclut pas les annonces pour les organismes de presse, qui ne manifestent généralement pas de point de vue partisan.4 Dating
Cette catégorie inclut les services de rencontre et les communautés de rencontre en ligne.5 Religion
Cette catégorie inclut les annonces à caractère religieux, ainsi que les annonces défendant ou attaquant des opinions religieuses. n'inclut pas l'astrologie ni la spiritualité non confessionnelle.7 Video Games (Casual & Online)
Cette catégorie inclut les annonces concernant les jeux vidéo, les jeux en ligne et les jeux téléchargeables. mais pas les consoles de jeu vidéo.8 Ringtones & Downloadables
Modules complémentaires pour mobiles, tels que sonneries et autres goodies téléchargeables (économiseurs et fonds d'écran pour PC, thèmes de profil et images pour réseaux sociaux).10 Get Rich Quick
Schémas promettant des revenus rapides.18 Weight Loss
Cette catégorie inclut la perte de poids, les régimes, ainsi que les produits et programmes associés. ne concerne pas les annonces relatives à l'alimentation saine ou à la forme physique en général.19 Cosmetic Procedures & Body Modification
Cette catégorie concerne les liftings, les liposuccions, les opérations au laser, l'épilation, les implants capillaires, les tatouages et les modifications corporelles.23 Drugs & Supplements:
Cette catégorie inclut les annonces concernant les marchands de produits pharmaceutiques, de vitamines, de compléments alimentaires et autres produits associés. n'inclut pas de ressources fournissant des informations sur les drogues.24 Sexual & Reproductive Health
Cette catégorie inclut les annonces liées à la sexualité et aux problèmes d'infertilité. n'inclut pas les ressources normales liées aux grossesses.35 Social Casino Games
Cette catégorie inclut les simulations de jeux d'argent et de hasard (y compris, sans s'y limiter, le poker, les machines à sous, le bingo, les loteries, les paris sportifs, le pari sur des courses, ainsi que d'autres jeux de cartes et de casino) ne proposant aucune récompense de valeur (par exemple, de l'argent ou des prix).36 Significant Skin Exposure
Images d'annonces dans lesquelles des parties du corps humain (du sternum à la mi-cuisse) ne sont pas vêtues ou si le corps porte des sous-vêtements, des maillots de bain, de la lingerie ou d'autres vêtements transparents, ou encore des articles non vestimentaires tels qu'une serviette ou un drap de lit.37 Sensationalism
Annonces visant à inciter les utilisateurs à cliquer dessus en attisant leur curiosité, souvent par le biais d'un message d'accroche contenant du texte ou des images outranciers. Cette catégorie inclut les annonces qui portent sur des sujets à caractère sensationnel (tels que l'arrestation, le décès ou le divorce de célébrités) ou qui ont pour but de choquer les utilisateurs.
Open Measurement
Open Measurement vous permet de spécifier des fournisseurs tiers qui proposent des mesures et des services de validation pour les annonces diffusées dans des environnements d'applications mobiles.Les formats d'annonces actuellement compatibles incluent les annonces vidéo, les bannières et les annonces interstitielles. Pour en savoir plus, Pour savoir comment utiliser Open Measurement dans une réponse à l'enchère contenant ces formats, consultez le centre d'aide du SDK Open Measurement. .
Exemples de réponses aux enchères
Les sections suivantes présentent des exemples de réponses aux enchères pour différents types d'annonces.