Anchor Ads Explained: What They Are, How They Differ from Sticky Ads, and When to Use Them
Anchor ads are display banners that stay fixed to the top or bottom of the screen as users scroll. Google's anchor ad format auto-pins to the viewport edge, doesn't move with page content, and shows a close button in compliant implementations. Most publishers run anchor ads at the bottom on mobile because that's where viewability is highest. Done right they earn high RPM. Done wrong they break Better Ads Standards and trigger AdSense policy warnings.
What anchor ads actually are
An anchor ad is a banner that floats at a fixed position on the screen, usually pinned to the bottom edge on mobile and to the top or bottom on desktop. The defining trait is that it doesn't scroll with the page. As a user reads, scrolls, or interacts with content, the anchor banner stays put.
Google offers anchor ads through both AdSense and Google Ad Manager. In AdSense, the anchor format is part of the auto ads suite. You enable it once at the account or page level and Google decides where and when to render it based on its own ML signals. In GAM, anchor ads exist as a defined format with publisher controls over size, placement, and rendering rules through the Publisher Tag library.
The format works because of viewability mechanics. A banner pinned to the bottom of a mobile viewport stays in view for longer than an in-content banner that scrolls past. Higher viewability means more advertiser bidding interest, which means higher eCPM. The whole format exists to capture that viewability premium.
Outside Google's ecosystem, the format also appears in mobile apps via AdMob's anchored adaptive banner (a sized variant that calculates its own height per device). For native iOS and Android apps, that's the implementation path. Same concept, different SDK and different controls.
Anchor ads vs sticky ads: the difference that confuses everyone
Most blog posts treat anchor ads and sticky ads as the same thing. They're not. The terminology overlaps but the implementations differ, and the difference matters when you're deciding which to use.
Origin: Anchor ad (Google): Specific Google ad format (AdSense / GAM) · Sticky ad (general term): Generic publisher term, any ad fixed in viewport
Implementation: Anchor ad (Google): Google's auto ads or Publisher Tag · Sticky ad (general term): Custom CSS or third-party scripts
Position: Anchor ad (Google): Top or bottom edge of viewport, fixed · Sticky ad (general term): Anywhere fixed (sidebar, top, bottom, in-content)
Sizing: Anchor ad (Google): Google decides height; mobile typically 50-150px · Sticky ad (general term): Publisher decides
Close button: Anchor ad (Google): Required by Google policy on mobile · Sticky ad (general term): Publisher choice
Better Ads Standards compliance: Anchor ad (Google): Google handles it · Sticky ad (general term): Publisher's responsibility
Demand source: Anchor ad (Google): Google's auction · Sticky ad (general term): Whatever ad network you serve through
Best for: Anchor ad (Google): Publishers wanting Google-managed compliance · Sticky ad (general term): Publishers running custom ad layouts
The practical version: every anchor ad is a sticky ad, but not every sticky ad is an anchor ad. If you're using Google's anchor format specifically, you're getting Google's compliance handling automatically. If you're rolling your own sticky banner with custom CSS, you're responsible for making sure it doesn't violate Better Ads Standards (which means a close button, no fullscreen blocking, no auto-collapse on mobile).
The compliance side is where most custom sticky ad implementations fail. Better Ads Standards specifically calls out "fixed obstructive ads on mobile" as a violation. A sticky banner without a close button on mobile can trigger Coalition for Better Ads warnings and, in extreme cases, Chrome's ad filter. Google's anchor format avoids this by handling the close button and sizing automatically.
How Google anchor ads work
Two implementations to know about.
AdSense auto ads. You enable anchor ads at the account or page level. Google's ML decides when and where to render them based on user behavior and content signals. Minimal publisher control. Good for sites that want set-and-forget monetization. Bad if you need precise placement or want to A/B test the ad position.
Google Ad Manager Publisher Tag. You define an anchor ad slot in your GPT setup, specify allowed sizes, and Google renders the anchor banner with publisher-controlled positioning rules. More setup overhead than auto ads. Worth it if you're already running GAM and want anchor ads as part of a larger inventory strategy.
On mobile apps: the equivalent is AdMob's anchored adaptive banner. It's the same conceptual format (fixed banner at the top or bottom of the screen) but implemented via the Google Mobile Ads SDK rather than a JavaScript tag. Anchored adaptive banners size automatically to the device width and have a max height of 150dp on Android or 150 points on iOS. We covered the mobile implementation in detail in Adaptive Banner Ads for AdMob.
What kind of performance to actually expect
The honest version: anchor ads typically outperform in-content banners by 20 to 40 percent on RPM in Tier 1 markets, but the lift depends heavily on your existing setup and traffic mix.
What drives the range:
- Traffic source. Heavy mobile traffic benefits more from anchor ads than desktop-heavy traffic, because mobile viewability is generally lower for in-content placements
- Content engagement. Long-form content sites see bigger lifts because users scroll deeper, and the anchor banner accumulates more viewable seconds
- Ad density. If your page already has a lot of ads, adding an anchor ad on top has diminishing returns
- User behavior. Sites where users scroll quickly see less anchor ad benefit than sites where readers dwell on content
What I see across stacks: 15 to 30 percent RPM lift on a well-implemented anchor ad in Tier 1 markets, lower in Tier 3. The lift gets smaller if your existing in-content banners are already at high viewability rates (above 70 percent), because the anchor isn't capturing as much net new viewable inventory.
When anchor ads work and when they don't
They work when:
- Your traffic is predominantly mobile (anchor ads at the bottom of mobile viewport are the highest-viewability format)
- Your content is long enough that users scroll meaningfully (news, long-form articles, recipe sites)
- You have AdSense or GAM and want Google-managed compliance handling
- Your existing ad density isn't already maxed out
- You're in a vertical with strong mobile demand (lifestyle, news, gaming, finance)
They don't work when:
- Most of your traffic bounces in under 15 seconds (no time to accumulate viewable seconds)
- Your audience is heavily ad-blocker users (anchor ads tend to be the first thing blocked)
- You have aggressive interstitial usage that already triggers Better Ads Standards concerns (adding anchor on top compounds the problem)
- You run a custom ad stack that doesn't integrate cleanly with AdSense or GAM
- Your inventory is in low-CPM markets where the format premium doesn't translate to meaningful absolute revenue
The format isn't universally good or bad. It's good for the use cases that match its mechanics. The most common mistake is assuming "anchor ads = more money" without considering whether your traffic profile and content actually capture the viewability premium.
How to set up anchor ads (AdSense)
The AdSense path is the simpler one. The full procedure:
- Sign in to AdSense. Go to the Ads section.
- Switch to Auto ads. Edit your auto ads settings for the site you want to enable.
- Toggle anchor ads on. This is a single setting under "Ad formats."
- Apply changes. Google's ML takes over from there. Anchor ads will start serving on your site within 24 to 48 hours.
For more granular control, you can specify per-page rules through the AdSense interface, but most sites get more value from leaving auto ads to make decisions across the whole site.
How to set up anchor ads (Google Ad Manager)
GAM is more involved because you're operating at the line-item level. The general procedure:
- Create an anchor ad slot. In GAM, define a new ad unit configured for anchor placement. Specify allowed sizes (typically 320x50, 320x100, or responsive).
- Add the slot to your GPT setup. Use
googletag.defineSlotwith the appropriate slot path andaddService(googletag.pubads()). - Enable the anchor format. Use
googletag.pubads().enableLazyLoad()and the anchor-specific API call (displayAnchorAdor equivalent in current GPT versions). - Set targeting and floor pricing. Apply your standard targeting and floor rules to the anchor inventory.
- Test and deploy. Verify the anchor renders correctly, the close button is functional, and Better Ads Standards compliance is intact.
Reference Google's Publisher Tag samples for the current API syntax. The implementation details change between GPT versions, so static code samples in blog posts go stale fast.
Common mistakes with anchor ads
Across publisher implementations I see, the same handful of issues show up.
1. No close button on mobile. Better Ads Standards explicitly require a close button on fixed mobile ads. If you're rolling a custom sticky ad and forget the close button, you're exposing yourself to Coalition for Better Ads warnings. Google's anchor format handles this automatically. Custom implementations don't.
2. Anchor ads on top of interstitials. If you have aggressive interstitial usage already, adding anchor ads on top can trigger compounding ad density complaints from users and from Google itself. The cumulative ad load matters more than any individual format.
3. Conflicting CSS with anchor ads. Custom layouts with their own fixed-position elements (cookie banners, chat widgets, navigation drawers) can conflict with anchor ads. The result is overlapping UI that breaks the user experience. Test on real devices before shipping.
4. Setting anchor ads on bouncing traffic. Sites where users bounce in under 15 seconds get almost no benefit from anchor ads because the viewable-second accumulation never happens. The format requires user dwell to capture its premium. If your bounce rate is over 80 percent, fix the bounce rate before adding anchor formats.
5. Treating anchor and sticky as interchangeable in custom implementations. Custom sticky banners need to handle compliance manually. Google's anchor format does it automatically. Don't roll your own when AdSense's auto ads can do the same thing with less risk.
Frequently asked questions
What is the difference between an anchor ad and a sticky ad?
Anchor ad refers specifically to Google's named ad format in AdSense and GAM, which auto-handles placement, sizing, close button, and Better Ads Standards compliance. Sticky ad is a generic publisher term for any ad fixed in the viewport, including custom CSS implementations. Every anchor ad is a sticky ad, but not every sticky ad is an anchor ad. The Google version handles compliance automatically. Custom sticky ads put compliance on the publisher.
Are anchor ads compliant with Better Ads Standards?
Google's anchor ad format is compliant by default because Google handles the close button, sizing, and placement rules. Custom sticky ad implementations need to manually meet Better Ads Standards requirements: visible close button on mobile, no fullscreen blocking, no auto-collapse, no obstruction of essential content. If you're using Google's anchor format through AdSense or GAM, compliance is built in. If you're rolling a custom sticky banner, compliance is on you.
How much does an anchor ad pay compared to a regular banner?
Anchor ads typically earn 20 to 40 percent more RPM than in-content banners in Tier 1 markets, because they accumulate more viewable seconds per impression. The lift depends on traffic source (mobile-heavy sites benefit more), content engagement (long-form content benefits more), and existing ad density (sites already maxed out see smaller gains). In Tier 3 markets the lift is smaller in absolute terms because the format premium doesn't translate to meaningful absolute eCPM.
Can I use anchor ads on a mobile app?
The equivalent format on mobile apps is AdMob's anchored adaptive banner, accessed through the Google Mobile Ads SDK. It's the same conceptual format (fixed banner pinned to the screen edge) but implemented via SDK rather than JavaScript. For full implementation details on mobile apps, see Adaptive Banner Ads for AdMob.
Do anchor ads hurt user experience?
Implemented correctly, no. Implemented poorly, yes. Google's anchor format includes a close button, sizing limits, and dismissal rules that prevent the format from blocking content. Custom sticky implementations without those controls can degrade user experience and trigger ad-blocker behavior. The format isn't inherently good or bad for UX. The implementation determines the impact.
What to do this week
If you're not running anchor ads and you have meaningful mobile traffic with content users actually engage with:
- Check whether your existing setup already uses AdSense auto ads. If yes, enable the anchor ad toggle. If no, consider whether AdSense auto ads as a layer on top of your existing setup makes sense.
- Audit your current sticky ad implementations (if any) for Better Ads Standards compliance. Specifically: close button on mobile, no auto-collapse, no fullscreen blocking. If a custom sticky banner doesn't meet these, replace it with Google's anchor format.
- If you're running GAM, evaluate adding an anchor ad slot to your inventory mix. The setup overhead is real but the placement-quality lift on mobile traffic typically pays for it.
- Don't add anchor ads on top of an already-maxed ad density. Audit your overall ad load first.
If your content engagement is low (high bounce rate, short dwell), anchor ads won't fix the underlying problem. Fix engagement first, then add the format.
If you're running a mobile app and looking at fixed banners, the relevant format is anchored adaptive banner via AdMob. The implementation path is different from web anchor ads. We covered it in detail in Adaptive Banner Ads for AdMob.
If you're trying to figure out whether anchor ads fit your specific setup, book a 30-minute call. I'll look at your traffic mix and current ad stack and tell you whether the format pays off in your specific case.
Category
Ad Platforms & NetworksLast updated