Interstitial Ads

An interstitial ad (or a full-screen ad) is a type of ad that mostly covers the screen. Thus publisher contents don't appear on the screen when an interstitial ad is shown.

You can identify an interstitial ad opportunity in the bid request by verifying that the bid request's BidRequest.imp.instl field is set to true in Protobuf, or 1 in JSON.

Ad slot size

Ad slot size for interstitial ads indicates the area that can be used to render creatives and depends on several factors such as specific formats and screen dimensions.

The first width and height pair in OpenRTB's BidRequest.imp.banner.format, field, represents the actual ad slot size, and the remaining pairs represent a list of acceptable ad sizes that are within range of the slot's requirements.

Creatives aren't restricted to the recommended sizes in the bid request, but all recommended sizes in the bid request are guaranteed to be within the acceptable size range.

You can bid with any creative whose width and height meet the following criteria:

  • Less than or equal to the ad slot width and height
  • Greater than or equal to 50% of the ad slot width
  • Greater than or equal to 40% of the ad slot height

If the ad size is too big or too small, the bid response is filtered with the rejection reason INTERSTITIAL_SIZE_MISMATCH.

If you don't specify the ad size in the bid response, the response is filtered with the rejection reason MISSING_AD_SIZE.

Sample bid requests

Here are some sample bid requests for interstitial ads.

OpenRTB Protobuf

Show sample

[Serialized request](/authorized-buyers/rtb/data/request-response/openrtb_protobuf_mobile_app_interstitial_ad_request.bin){: .download}
id: "D3x8RPLO96R6T137tQ6168"
imp {
  id: "1"
  banner {
    w: 360
    h: 715
    pos: AD_POSITION_FULLSCREEN
    api: MRAID_1
    api: MRAID_2
    format {
      w: 360
      h: 715
    }
    format {
      w: 320
      h: 568
    }
  }
  displaymanager: "GoogleMobileAds-Android"
  displaymanagerver: "22.3.0"
  instl: true
  tagid: "5771994185"
  bidfloor: 2764.414643547123
  bidfloorcur: "JPY"
  secure: true
  exp: 3600
  clickbrowser: true
  metric {
    type: "click_through_rate"
    value: 0.03971313312649727
    vendor: "EXCHANGE"
  }
  metric {
    type: "viewability"
    value: 0.91
    vendor: "EXCHANGE"
  }
  [com.google.doubleclick.imp] {
    billing_id: 68640308112
    billing_id: 56606437068
    publisher_settings_list_id: 1984414516100776281
    publisher_settings_list_id: 5846951473307279661
    allowed_vendor_type: 0
    allowed_vendor_type: 57823
    ampad: AMP_AD_NOT_ALLOWED
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    excluded_creatives {
      buyer_creative_id: "EXCLUDED_BUYER_CREATIVE_ID"
    }
    creative_enforcement_settings {
      policy_enforcement: POLICY_ENFORCEMENT_NETWORK_AND_PLATFORM_POLICY
      publisher_blocks_enforcement: PUBLISHER_BLOCKS_ENFORCEMENT_APPLIES
    }
    auction_environment: SERVER_SIDE_AUCTION
    ae: SERVER_SIDE_AUCTION
    jsver: "test-sdk_123456789"
  }
}
app {
  name: "Test App"
  bundle: "com.google.testapp"
  publisher {
    id: "pub-7405557148270612"
    [com.google.doubleclick.publisher] {
      country: "HK"
    }
  }
  content {
    url: "https://www.google.com"
    userrating: "4.7"
    livestream: false
    language: "en"
  }
  storeurl: "https://www.google.com"
}
device {
  ua: "OMITTED"
  geo {
    lat: 0.0
    lon: 0.0
    country: "GBR"
    region: "GB-ENG"
    zip: "RH20"
    type: IP
    utcoffset: 60
    accuracy: 2312
    [com.google.doubleclick.geo] {
      geo_criteria_id: 9191103
    }
  }
  ipv6: "2a02:c7c:7c25::"
  make: "Huawei"
  model: "LYA-L09"
  os: "android"
  osv: "10"
  connectiontype: WIFI
  devicetype: HIGHEND_PHONE
  ifa: "0f0f33d1-fa18-4a2c-bc47-79ef855b5c16"
  w: 360
  h: 715
  pxratio: 3.0
  sua {
    browsers {
      brand: "Mozilla"
      version: "5"
      version: "0"
    }
    browsers {
      brand: "AppleWebKit"
      version: "537"
      version: "36"
    }
    platform {
      brand: "Android"
      version: "10"
    }
    mobile: true
    model: "LYA-L09"
    source: USER_AGENT_STRING
  }
  [com.google.doubleclick.device] {
    metereddata: false
    chargelevel: 0.93
    charging: false
    diskspace: 2100
    audioout: AUDIO_SILENT
  }
}
user {
  id: "D17oNZQUJqB4Rt4n4Ec61AC9tee"
  consent: "OMITTED"
  [com.google.doubleclick.user] {
    consented_providers_settings {
      consented_providers: 1205
      consented_providers: 415
      additional_consent: "OMITTED"
    }
    consent: "OMITTED"
    session {
      duration: 6
      depth: 12
      requestssinceappopen: 12
      priorclicks: 0
    }
    idage: 44064000
  }
}
at: FIRST_PRICE
tmax: 1500
cur: "EUR"
cur: "JPY"
bcat: "32"
bcat: "33"
regs {
  [com.google.doubleclick.regs] {
    gdpr: true
  }
}
source {
  schain {
    complete: true
    nodes {
      asi: "testssp.com"
      sid: "pub-1111111111111111"
      hp: true
    }
    ver: "1.0"
  }
  [com.google.doubleclick.source] {
    omidpn: "Google"
    omidpv: "afma-sdk-a-v251815999.232400000.1"
  }
}
cattax: GOOGLE_CATEGORIES
[com.google.doubleclick.bid_request] {
  google_query_id: "ANy-zc395b-x973i1113tK7P9K633CKoo3Pl45uz8D40mz3v48s9Zp604a8FsGL3893PT15M"
  fcap_scope: FREQUENCY_CAPPING_SCOPE_DEVICE
  privacy_treatments {
    allow_user_data_collection: true
  }
}

OpenRTB JSON

Show sample

{
  "id": "D3x8RPLO96R6T137tQ6168",
  "imp": [
    {
      "id": "1",
      "banner": {
        "w": 360,
        "h": 715,
        "pos": 7,
        "api": [
          3,
          5
        ],
        "format": [
          {
            "w": 360,
            "h": 715
          },
          {
            "w": 320,
            "h": 568
          }
        ]
      },
      "displaymanager": "GoogleMobileAds-Android",
      "displaymanagerver": "22.3.0",
      "instl": 1,
      "tagid": "5771994185",
      "bidfloor": 2764.414643547123,
      "bidfloorcur": "JPY",
      "secure": 1,
      "exp": 3600,
      "clickbrowser": 1,
      "metric": [
        {
          "type": "click_through_rate",
          "value": 0.03971313312649727,
          "vendor": "EXCHANGE"
        },
        {
          "type": "viewability",
          "value": 0.91,
          "vendor": "EXCHANGE"
        }
      ],
      "ext": {
        "billing_id": [
          "68640308112",
          "56606437068"
        ],
        "publisher_settings_list_id": [
          "1984414516100776281",
          "5846951473307279661"
        ],
        "allowed_vendor_type": [
          0,
          57823
        ],
        "ampad": 2,
        "excluded_creatives": [
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          },
          {
            "buyer_creative_id": "EXCLUDED_BUYER_CREATIVE_ID"
          }
        ],
        "creative_enforcement_settings": {
          "policy_enforcement": 2,
          "publisher_blocks_enforcement": 1
        },
        "auction_environment": 0,
        "ae": 0,
        "jsver": "test-sdk_123456789"
      }
    }
  ],
  "app": {
    "name": "Test App",
    "bundle": "com.google.testapp",
    "publisher": {
      "id": "pub-7405557148270612",
      "ext": {
        "country": "HK"
      }
    },
    "content": {
      "url": "https://www.google.com",
      "userrating": "4.7",
      "livestream": 0,
      "language": "en"
    },
    "storeurl": "https://www.google.com"
  },
  "device": {
    "ua": "OMITTED",
    "geo": {
      "lat": 0.0,
      "lon": 0.0,
      "country": "GBR",
      "region": "GB-ENG",
      "zip": "RH20",
      "type": 2,
      "utcoffset": 60,
      "accuracy": 2312,
      "ext": {
        "geo_criteria_id": 9191103
      }
    },
    "ipv6": "2a02:c7c:7c25::",
    "make": "Huawei",
    "model": "LYA-L09",
    "os": "android",
    "osv": "10",
    "connectiontype": 2,
    "devicetype": 4,
    "ifa": "0f0f33d1-fa18-4a2c-bc47-79ef855b5c16",
    "w": 360,
    "h": 715,
    "pxratio": 3.0,
    "sua": {
      "browsers": [
        {
          "brand": "Mozilla",
          "version": [
            "5",
            "0"
          ]
        },
        {
          "brand": "AppleWebKit",
          "version": [
            "537",
            "36"
          ]
        }
      ],
      "platform": {
        "brand": "Android",
        "version": [
          "10"
        ]
      },
      "mobile": 1,
      "model": "LYA-L09",
      "source": 3
    },
    "ext": {
      "metereddata": 0,
      "chargelevel": 0.93,
      "charging": 0,
      "diskspace": 2100,
      "audioout": 3
    }
  },
  "user": {
    "id": "D17oNZQUJqB4Rt4n4Ec61AC9tee",
    "consent": "OMITTED",
    "ext": {
      "consented_providers_settings": {
        "consented_providers": [
          "1205",
          "415"
        ],
        "additional_consent": "OMITTED"
      },
      "consent": "OMITTED",
      "session": {
        "duration": 6,
        "depth": 12,
        "requestssinceappopen": 12,
        "priorclicks": 0
      },
      "idage": 44064000
    }
  },
  "at": 1,
  "tmax": 1500,
  "cur": [
    "EUR",
    "JPY"
  ],
  "bcat": [
    "32",
    "33"
  ],
  "regs": {
    "ext": {
      "gdpr": 1
    }
  },
  "source": {
    "schain": {
      "complete": 1,
      "nodes": [
        {
          "asi": "testssp.com",
          "sid": "pub-1111111111111111",
          "hp": 1
        }
      ],
      "ver": "1.0"
    },
    "ext": {
      "omidpn": "Google",
      "omidpv": "afma-sdk-a-v251815999.232400000.1"
    }
  },
  "cattax": 500,
  "ext": {
    "google_query_id": "ANy-zc395b-x973i1113tK7P9K633CKoo3Pl45uz8D40mz3v48s9Zp604a8FsGL3893PT15M",
    "fcap_scope": 3,
    "privacy_treatments": {
      "allow_user_data_collection": 1
    }
  }
}

Best practices

Google recommends the following best practices:

  • Include formatting attributes in your HTML creative snippets to center ads within the ad slot. Otherwise, ads render on the top left of the ad slot.

  • Respond with an interstitial ad that takes up as much space as possible within the ad slot. Don't fill an interstitial ad slot with a much smaller ad. For example, a 320x480 ad is too small for a 420x800 interstitial slot.

  • Don't add any close button:

    • Our SDK automatically shows a close button (where applicable) to ensure that users can click the button.
    • MRAID useCustomClose() is not supported.
  • Use the recommended sizes from the bid request to choose acceptable ad sizes for your bid response.

  • Compare BidRequest.device.w and BidRequest.device.h fields to choose creatives with an appropriate orientation.

    • We recommend having vertical and horizontal creatives so you can bid with the appropriate orientation.

Sizeless (fluid) interstitials

Sizeless interstitials (also known as responsive or fluid interstitials) dynamically resize to take up the entire ad slot width and height. Authorized Buyers doesn't resize creatives for you. You must supply a creative that dynamically resizes.

You only need to submit sizeless interstitials for review once, even though they can serve at multiple sizes. To ensure your creative isn't re-reviewed for each individual ad slot size, we recommend the following:

Bid response

  • Use BidResponse.seatbid.bid.ext.attribute to declare Rendering: Sizeless AdX (attribute 105) in your bid response. Declarable creative attributes can be found in the buyer-declarable-creative-attributes.txt data file.

  • Populate BidResponse.seatbid.bid.w and BidResponse.seatbid.bid.h with the size you want the creative to render based on ad size requirements; for example, 360x480 for a 360x480 ad slot. The creative might still serve at other sizes. For the deprecated Google RTB protocol, you would populate BidResponse.Ad.width and BidResponse.Ad.height.

If you add the Rendering: Sizeless AdX attribute to an existing creative, the creative must be re-reviewed.

Creative pre-approval

  • When submitting a creative for review, include the RENDERING_SIZELESS_ADX attribute in the declaredAttributes field. In Real-time Bidding API, creative attributes are represented using a string enum value. To learn more about how these correspond to the numerical IDs from buyer-declarable-creative-attributes.txt, see the mapping guide.
  • Submit the creative using a size that you expect to serve, that is, a common size for interstitial creatives. The creative can still serve at other sizes.
  • Each sizeless creative only counts against your creative limit once, even if it serves at multiple sizes.