Auto Ads Appear in the Worst Places

Auto Ads put a giant banner over your H1, an in-feed ad inside your sticky nav, or anchor ads on mobile that hide the CTA. How to constrain placement without disabling Auto Ads entirely.

You turned on Auto Ads to skip manual slot management. AdSense reads your DOM, optimizes for revenue, and inserts ads everywhere it sees opportunity. The result is a giant banner sitting over your H1, an in-feed ad jammed inside your sticky nav, and a mobile anchor ad covering the article’s CTA. Disabling Auto Ads loses 20-60% of potential revenue — but you don’t have to. Auto Ads exposes page-level controls that most publishers don’t configure. With 4-5 specific tweaks you keep the revenue and lose the worst placements.

Common causes

Ordered by hit rate, highest first.

1. All Auto Ad formats are enabled by default

When you turn Auto Ads on, AdSense enables every format (anchor, vignette, in-article, in-feed, multiplex, side rail). Most publishers don’t even know which is which, so all of them are “on” producing bad placements.

How to spot it: AdSense → Ads → Edit on your site → check the format toggles. If they’re all on, that’s the source.

2. No “no ad” zones declared

AdSense uses any DOM element that looks “long” or “structured” as a candidate ad slot. Without explicit exclusions, it can pick your nav, header, footer, or comments section.

How to spot it: Open page → DevTools → search for <google-anchor> and data-google-query-id. Note their locations. If they’re inside your header or nav, you have no zone exclusions.

3. Page structure has no clear section boundaries

Auto Ads places in-article ads between sibling <p>, <h2>, etc. If your article is one giant <div> with no semantic breaks, AdSense picks awkward break points (mid-sentence).

How to spot it: View source. Count <h2> / <h3> / clear <p> boundaries. If your article is <div><div><div> deeply nested without semantic tags, AdSense has no good options.

4. Anchor ads enabled on mobile

Anchor ads (sticky bottom bar) cover CTAs, comments, and the article’s last paragraph. On mobile they’re persistent and disproportionately annoying.

How to spot it: Open the page on a phone. If a banner is glued to the bottom of the screen, that’s an anchor ad.

5. Vignette (full-screen) ads on every page transition

Vignette ads show a full-screen interstitial when navigating between pages. They tank user metrics (bounce, time on page) but Auto Ads enables them by default.

How to spot it: Click an internal link. If a full-screen ad appears before the next page, that’s a vignette.

6. AdSense optimization preset is “maximum”

In Auto Ads, there’s an implicit “fill level” — AdSense will pack ads densely if it thinks it can. If you haven’t dialed it back, every page is at maximum.

How to spot it: AdSense → Ads → Auto Ads → “Ad load” slider. If at the maximum, density is too high.

Shortest path to fix

Step 1: Audit the active formats

In AdSense → Ads → Your site → edit Auto Ads. Disable formats you don’t want. Recommended starter config for content sites:

FormatRecommendationWhy
In-articleKeepHighest RPM, least intrusive when placed at section breaks
In-feedKeep if you have a feedLooks native if your design has a list
AnchorDisable on mobileHides CTAs
VignetteDisableHurts bounce rate, frustrating UX
MultiplexTest, often disable”More content” widget often shows clickbait
Side railKeep desktop, disable mobileStays out of the way on desktop

Step 2: Exclude regions with CSS selectors

In AdSense → Ads → Auto Ads → Page-level → “Excluded areas,” add selectors:

header, nav, .site-nav, footer, .cta-button, .author-bio, .comments

This stops AdSense from inserting ads inside these elements.

Alternatively, add a class your CSS controls:

<div class="no-ads">
  <!-- this region is excluded by AdSense -->
</div>

Then declare .no-ads in the excluded selectors list.

Step 3: Use semantic HTML so Auto Ads picks clean break points

If your article is <div><div><div> nested deeply, refactor to:

<article>
  <h1>...</h1>
  <p>intro paragraph</p>
  <h2>Section 1</h2>
  <p>...</p>
  <p>...</p>
  <h2>Section 2</h2>
  <p>...</p>
</article>

AdSense will place in-article ads cleanly between <h2> boundaries.

Step 4: Lower the ad density slider

AdSense → Ads → Auto Ads → “Ad load” → drag slider to about 60-70% of max. Revenue per page drops slightly but RPM often improves because users don’t bounce.

Step 5: Test on a real mobile device after each change

Auto Ads renders differently on mobile vs desktop. After every change, open the site on an actual phone. Don’t trust Chrome DevTools mobile emulation — it doesn’t render anchor ads identically.

Step 6: Wait 48 hours and re-screenshot

Auto Ads changes can take a few hours to propagate fully. Capture screenshots before and after, on desktop and mobile, of 3-4 different article types.

When this is not on you

AdSense optimization is opaque. Even with good settings, you’ll occasionally see a bad placement. Snapshot-monitor weekly, not minute-by-minute. Truly persistent bad placement (same spot, every page, after 48h) is worth fighting; one-offs are tolerable.

Easy to misdiagnose as

Disabling Auto Ads entirely “to fix this” is overcorrection — it loses 20-60% potential revenue. Constrain, don’t kill.

Prevention

  • Set up Auto Ads with format restrictions and excluded selectors before flipping it on; don’t enable defaults.
  • Audit Auto Ads placement quarterly with screenshots on mobile + desktop.
  • Keep semantic HTML in articles so AdSense has obvious section boundaries.
  • Disable vignettes globally — they hurt every metric.
  • Test on real phones after every change, not just DevTools emulation.

FAQ

  • Should I switch to manual ads? Hybrid is common — manual for in-article (your control over placement), Auto for the rest.
  • Can I disable anchor ads only on mobile? Yes, in Auto Ads format settings, toggle anchor off in the mobile column.

Tags: #AdSense #Monetization #Troubleshooting #Auto Ads