AMP Ads over RTB

This page describes how to get started using AMP Ads with RTB.


The AMP Project and Google have released a number of resources to help you get started:

Building ads in AMP
RTB-specific proposals to IAB / OpenRTB Group

High-level approach

RTB Bid Response

Owner: Bidder

  • The new BidResponse.Ad.amp_ad_url field to be added to Ad Exchange bid responses that accept a URL pointing to AMP Ad content.
    // The URL to fetch an AMP Ad. Only one of the following should be set:
    html_snippet, video_url, amp_ad_url.
    optional string amp_ad_url = 23
  • In OpenRTB, Google proposed a new field to the Bid object.
    Bid Object Additional field: ampadurl
    Field Type Description
    ampadurl string Optional means of conveying AMP Ad markup in case the bid wins; only one of ampadurl or adm should be set. Substitution macros (Section 4.4) may be included. URL should point to a creative server containing valid amp4ads html.

Verification of valid AMP

Owner: Exchange

  • For AMP Ads to be early rendered, the exchange is required to verify and sign in at the time that the ad is written in amp4ads <html amp4ads> creative format.
  • Ads that are valid amp4ads will be allowed to render early by AMP pages. Ads that are not verified as valid amp4ads will render at the same speed as non-AMP Ads.

    Only amp4ads should be returned in the amp_ad_url.

  • In the future, if a publisher requires amp4ads only, ads not signed as amp4ads will not be rendered.

    On Ad Exchange, bidders will still be charged if they return a non-AMP Ad to an amp4ads-required adslot.

Server-side fetch

Owner: Exchange and Bidder

  • For amp4ads to be early rendered, AMP Ad content must be fetched with 0 additional hops from the client. This is designed to avoid poor user experiences due to ad latency and extra client-side calls.
  • The exchange's servers (not the client browser) will request the AMP Ad content located at the URL provided in amp_ad_url after a bidder wins the auction. Creative servers must respond and return content within 150 ms.
  • The amp4ad will be injected into the adslot and subsequently rendered. Note that since a valid amp4ads cannot contain an iframe or another ad tag, the server-side fetch must retrieve the actual HTML of the creative.

Impression tracking URLs

Owner: Exchange and Bidder

  • RTB buyers often include impression trackers as a structured field in the bid response (this is Bid.burl, the "billing notice URL" in OpenRTB 2.5).
  • On Ad Exchange, these will be fired client-side; amp-pixel fires tracking URLs when the creative is rendered. amp-analytics can handle more advanced tracking use cases beyond rendering.

Cookie Matching

Owner: Bidder

Creatives often include cookie matching pixels within the creative code. AMP Ads can use the amp-pixel and amp-analytics components for this use case. If your use case cannot be accommodated by using amp-analytics or amp-pixel, open a GitHub issue to discuss alternate options. We welcome new extensions that can be broadly used by a number of different companies. See detailed guidelines or a technical guide to building a new extension.

Sample AMP Ad URLs for testing

Here are some example AMP Ad URLs with valid AMP Ad content that can be used for testing.

Send feedback about...

Real-Time Bidding Protocol
Real-Time Bidding Protocol