Annonces AMP HTML via RTB

Cette page explique comment commencer à utiliser les annonces AMP HTML avec le système d'enchères en temps réel. Consultez les ressources ci-dessous pour en savoir plus sur les annonces AMP HTML et les outils qui vous aideront à vous lancer.

Approche globale

Demande d'enchère RTB

La demande d'enchère RTB indique si elle provient d'une page AMP. et les exigences concernant les annonces AMP HTML.

OpenRTB

page AMP

message SiteExt {
  enum AmpPage {
    // This is not an AMP page.
    DIALECT_HTML = 0;

    // This is an Amp page.
    DIALECT_HTML_AMP = 1;
  }

  // Whether this is an AMP page or not. Omitted if unknown.
  optional AmpPage amp = 1;
  enum VisibilityState {
    VISIBILITY_STATE_UNKNOWN = 0;

    // The page is at least partially visible. For example, in the foreground
    // tab of a non-minimized window.
    VISIBILITY_STATE_VISIBLE = 1;

    // The page is not visible to users. For example, when the page is in a
    // background browser tab, or in a minimized window.
    VISIBILITY_STATE_HIDDEN = 2;
  }

  // The visibility state of the web page containing the ad slot.
  // See https://www.w3.org/TR/page-visibility/.
  // [AdX: BidRequest.page_visibility]
  optional VisibilityState page_visibility = 2 [default =
    VISIBILITY_STATE_UNKNOWN];

  // Information about a browser window's user activation state. See
  // https://html.spec.whatwg.org/multipage/interaction.html#the-useractivation-interface.
  message UserActivation {
    // Indicates whether a user has completed an interaction since page load.
    optional bool wasact = 1;

    // Indicates whether a user is currently interacting with the page.
    optional bool isact = 2;
  }

  // User activation information from the browser for the current request, if
  // the request is for a web page.
  optional UserActivation uact = 5;

  // The set of possible web navigation types that predicate a page load. Each
  // of these types may have different performance characteristics. For example,
  // users going back and forth might experience a faster site than users
  // performing navigation for the first time or submitting forms. See
  // https://w3c.github.io/navigation-timing/#dom-performancenavigationtiming-type.
  enum NavigationType {
    NAVIGATION_TYPE_UNKNOWN = 0;

    // Navigation started by clicking a link, entering the URL in the browser's
    // address bar, form submission, or initializing through a script operation
    // other than reload and back_forward.
    NAVIGATION_TYPE_NAVIGATE = 1;

    // Navigation is through the browser's reload operation, location.reload(),
    // or a Refresh pragma directive like
    // <meta http-equiv="refresh" content="300">.
    NAVIGATION_TYPE_RELOAD = 2;

    // Navigation is through the browser's history traversal operation.
    NAVIGATION_TYPE_BACK_FORWARD = 3;

    // Navigation is initiated by a prerender hint (deprecated). See
    // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/prerender.
    NAVIGATION_TYPE_PRERENDER = 4;
  }

  // The type of browser navigation that led to the current page. Unset for
  // non-web ad requests.
  optional NavigationType ntype = 6;

  // Indicates that the request is using semi-transparent branding,
  // which means only a truncated version of the request URL will
  // be provided. This decision is made by the publisher, see
  // https://support.google.com/admanager/answer/4584891#urls for context.
  optional bool is_semi_transparent_request = 3;

  // The domain of the partner (of the site owner) with ownership
  // of some portion of ad inventory on the site. The partner's ads.txt file
  // will be hosted here. More detail at
  // http://iabtechlab.com/wp-content/uploads/2021/03/ctv-app-ads-explainer-guide.pdf
  optional string inventorypartnerdomain = 4;
}

Exigences relatives aux annonces AMP HTML

// Ad Exchange extensions for the Imp object.
message ImpExt {
...
  // Possible requirement types for AMP ads.
  enum AmpAdRequirementType {
    // AMP ad requirements unknown.
    UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 1;
    // AMP ads are not allowed.
    AMP_AD_NOT_ALLOWED = 2;
    // Either AMP ads or non-AMP ads are allowed;
    // AMP ads are not early rendered.
    AMP_AD_ALLOWED_AND_NOT_EARLY_RENDERED = 3;
    // Either AMP ads or non-AMP ads are allowed;
    // AMP ads are early rendered.
    AMP_AD_ALLOWED_AND_EARLY_RENDERED = 4;
    // AMP ads are required.
    // Ads that are non-AMP may be rejected by the publisher.
    AMP_AD_REQUIRED = 5;
    // Exchange-specific values above 500.
  }
  optional AmpAdRequirementType ampad = 8
    [default = UNKNOWN_AMP_AD_REQUIREMENT_TYPE];
}

RTB Authorized Buyers

page AMP

// Whether this is an AMP page or not.
enum AmpPage {
  // AMP page status unknown.
  UNKNOWN_AMP_PAGE = 0;

Exigences relatives aux annonces AMP HTML

// Possible requirement types for AMP ads.
enum AmpAdRequirementType {
  // AMP ad requirements unknown.
  UNKNOWN_AMP_AD_REQUIREMENT_TYPE = 0;

Réponse à l'enchère RTB

OpenRTB

Dans <ph type="x-smartling-placeholder"></ph> OpenRTB 3.0 et Publicité Modèle commun. Plusieurs ajouts pour assurer la compatibilité avec les annonces AMP HTML sont inclus dans le les spécifications les plus récentes de l'IAB, y compris les suivantes.

Enchère Champ Attr Type Description
Requête Site.amp amp entier Le champ Site.amp indique si la page est affichée. au format AMP, omis si inconnu:
0 = page non-AMP
1 = la page est créée avec le code AMP HTML
Requête ampformat rend entier Les spécifications du format AMP indiquent les exigences et le rendu comportement des annonces AMP HTML:
1 = Les exigences concernant les annonces AMP sont inconnues
2 = Les annonces AMP ne sont pas autorisées
3 = Les annonces AMP et non-AMP sont autorisées. Les annonces AMP ne sont pas diffusées de manière anticipée
4 = Les annonces AMP ou non-AMP sont autorisées, et les annonces AMP sont diffusées de manière anticipée
5 = des annonces AMP sont obligatoires. Les annonces non-AMP peuvent être refusées par l'éditeur.
500+ = valeurs spécifiques à la place de marché doit être communiquée aux enchérisseurs a priori
Réponse display curl chaîne Dans la réponse à l'enchère, display.curl a été ajouté pour pouvoir envoyer via une URL, y compris pour les annonces AMP HTML.
Il s'agit de l'URL à laquelle le balisage de la création sera trouvé. Applicable aux types de créations suivants: les annonces AMP, VAST, DAAST et Native. Normalement, un seul des éléments adm ou curl est valide dans une annonce donnée.

RTB Authorized Buyers

Le champ BidResponse.Ad.amp_ad_url dans l'enchère Authorized Buyers accepte une URL qui renvoie vers le contenu d'une annonce AMP HTML. Le même champ existe en tant qu'extension de l'objet Bid dans le système OpenRTB de Google ; la mise en œuvre.

// The URL to fetch an AMPHTML ad. Only one of the following should be set:
// html_snippet, video_url, amp_ad_url, native_ad.
optional string amp_ad_url = 23;

Validation d'un code AMP HTML valide

Pour que les annonces AMP HTML soient diffusées de manière anticipée, la place de marché doit vérifier et les signer, afin d'indiquer que l'annonce est rédigée dans le format de création <html amp4ads> amp4ads.

Les annonces AMP HTML valides pourront s'afficher tôt sur les pages AMP. Annonces dont le code AMP HTML n'a pas été validé s'affichent à la même vitesse que non-AMP HTML.

Seules les annonces AMP HTML doivent être renvoyées dans le amp_ad_url.

À l'avenir, si un éditeur exige uniquement des annonces AMP HTML, les annonces non signées en tant que Le format AMP HTML ne s'affiche pas.

Avec Authorized Buyers, les enchérisseurs continuent d'être facturés s'ils renvoient un une annonce non-AMP HTML vers un espace publicitaire nécessaire à une annonce AMP HTML.

Récupération côté serveur

Pour que les annonces AMP HTML s'affichent de manière anticipée, leur contenu doit être affiché sans nécessiter de sauts supplémentaires de la part du client. Ceci est conçu pour éviter de mauvaises expériences utilisateur en raison de la latence des annonces et d'appels côté client supplémentaires

Une fois qu'un enchérisseur remporte l'enchère, la place de marché effectue une demande de serveur à serveur pour récupérer le contenu de l'annonce AMP HTML situé dans l'URL fournies dans amp_ad_url. Les serveurs de créations doivent répondre et renvoyer en 300 ms.

L'annonce AMP HTML renvoyée par le serveur de créations sera injectée dans la l'espace publicitaire, puis affiché. Notez qu'une annonce AMP HTML valide ne peut pas contenir iFrame ou d'autres tags <amp-ad>. Consultez l'AMP HTML spécifications relatives aux annonces.

Fonctionnalité disponible en version bêta uniquement: contactez l'équipe chargée de votre compte si vous en avez besoin.

Lors de la récupération de serveur à serveur de l'annonce AMP HTML (spécifiée dans amp_ad_url), Authorized Buyers peut transmettre l'en-tête HTTP et l'adresse IP depuis le navigateur de l'internaute vers le serveur de créations. Ainsi, la création reçoit des informations semblables à celles envoyées par un serveur récupérer. Dans certains cas, l'adresse IP peut être tronquée aux trois premiers octets (IPv4) ou les six premiers octets (IPv6). Contactez l'équipe chargée de votre compte si vous avez besoin . Voici un exemple d'en-tête HTTP:

<ph type="x-smartling-placeholder">

URL de suivi des impressions et macros de clic

Les acheteurs utilisant le système d'enchères en temps réel incluent souvent des outils de suivi des impressions sous la forme d'un champ structuré réponse à l'enchère (il s'agit de Bid.burl, l'URL de l'avis concernant la facturation OpenRTB 2.5).

Avec Authorized Buyers, ils sont déclenchés côté client. amp-pixel déclenche des URL de suivi lors du rendu de la création. amp-analytics est capable de gérer des cas d'utilisation de suivi plus avancés que le rendu.

Les annonces AMP HTML doivent contenir une macro de clic valide dans le code AMP HTML. Cela prend généralement la forme suivante:

<a href="%%CLICK_URL_UNESC%%http%3A%2F%2my.adserver.com%2Fsome%2Fpath%2Fhandleclick%3Fclick%3Dclk"></a>
<a href=”https://my.adserver.com/click?google_click_url=%%CLICK_URL_ESC%%”></a>

Les créations incluent souvent des cookies les pixels correspondants dans le code de la création. Les annonces AMP HTML peuvent utiliser amp-pixel et amp-analytics composants pour ce cas d'utilisation. Si vous ne pouvez pas répondre à votre cas d'utilisation amp-analytics ou amp-pixel, ouvrez un Problème GitHub à aborder d'autres options. Nous accueillons les nouvelles extensions qui peuvent être largement utilisées par un certain nombre d’entreprises différentes. Voir détaillé consignes ou technique pour créer une extension.

Exemples d'URL d'annonces AMP à tester

Vous pouvez utiliser l'exemple de contenu d'annonce AMP HTML suivant à des fins de test:

Ressources

Le projet AMP et Google ont publié un certain nombre de ressources pour vous aider à démarrer:

Créer des annonces au format AMP
Propositions spécifiques au système d'enchères en temps réel destinées au groupe IAB / OpenRTB