Display an anchor ad

This example displays an anchor ad using the Google Publisher Tag (GPT) library. Learn more about anchor ads in the Google Ad Manager help center.

Usage notes

  • To ensure an optimal user experience, anchor ads are only requested on pages that properly support the format. Because of this, defineOutOfPageSlot() may return null; you should check for this case to ensure you're not doing any unnecessary work. Currently, anchor ads are supported if the following conditions are met:

    • GPT is running in the top window.
    • On a mobile optimized page where zoom is neutral; typically this means the publisher has <meta name="viewport" content="width=device-width, initial-scale=1"> or similar in the <head> of the page.
    • Viewport is in a portrait orientation with a width between 320px and 1000px.
  • Only request anchor ads on pages/environments where you want an anchor to appear. For example, don't assume anchors are ineligible on desktop pages, as we may add support in the future.

  • Anchor ads generate their own ad container. Unlike other ad types, it's not necessary to define a <div> for anchor ads. Anchor ads automatically create and insert their own container into the page when an ad fills. These containers may overlap or occlude other elements using absolute or fixed positioning, so it's recommended to avoid placing such elements in areas where anchors are meant to appear.

  • If using single-request architecture (SRA) on a page with multiple slots, don't call display() until static ad slots divs are created. As explained in Ad Best Practices, the first call to display() requests every ad slot defined prior to that point. Although anchor ad slots do not require a predefined <div>, static ad slots do. Calling display() before these elements are present on the page can result in lower quality signals, reducing monetization. Because of this, we recommend delaying the initial call until after the static slots are defined.

  • Only visible anchor ads may be refreshed. When an anchor ad slot is collapsed or not yet scrolled into view, all calls to refresh() are ignored. If you're using disableInitialLoad() to manually control ad loading and refresh, however, the first call to refresh() will trigger an ad request regardless of the slot visibility.

Sample implementation

View demo