Ad density lab · November 2026

We flipped every ad switch and measured the screen.

Ad-quality watchdogs flag sites where ads cover too much of the screen. We used two small test sites, one on Mediavine and one on Raptive, changed ad settings (one at a time on Mediavine, stacked step by step on Raptive), and had a robot reader scroll real articles on a phone and a desktop to measure how much of the screen was ad.

Where the "35%" and "50%" lines come from

Advertisers don't pick websites one by one. They buy through systems that grade sites first, and a bad grade means fewer advertisers bidding, which means lower pay. One of those graders, DeepSee, publishes its red lines. A site lands in its "High Risk" group if either is true:

• Ads cover 35% or more of the screen on average while you scroll. Picture a phone: more than a third of what you see, on average, is ads.
• Ads cover half the screen or more at some moment, on most visits. One bad screenful is enough.

DeepSee says only about 1% of the sites it tracks cross each line. Other graders, like Jounce and OpenSincera, score sites too but don't publish a number. So we used DeepSee's lines as the yardstick. Read DeepSee's rules →

Why the spikes matter more than the average

How the grader looks at a site. DeepSee's robot visits a site again and again. Each visit is a "crawl". During a visit it takes snapshots of the screen and measures how much of each one is ads. Its two red lines read those snapshots in different ways:

• The average line (35%) is named "Average Snapshot Density": all the snapshots averaged together. Screens that show only the article pull the number down, so a few ad-heavy moments get diluted.
• The peak line (50%) trips if ads fill half the screen "at least once during most crawls" (DeepSee's words). Nothing dilutes it. One bad screen on a visit counts, and if that happens on most visits, the site is flagged.

35%50%
One real visit from our test: 84 screens while scrolling one article on a phone (Raptive density on Max). Average: 20%, comfortably under 35%. Worst screen: 55%, over the 50% line.

What our test showed. Averages ran from about 3% to 18%, far below 35%. Peaks sat much closer: the typical worst screen was 23–45%, and some runs went past 50%. Three changes caused those over-50% moments: full-screen ads, the top banner, and Raptive density on Max. That's why peaks, not averages, are the thing to watch.

What we don't know. DeepSee doesn't publish how many visits it makes, what screen size it uses or how far it scrolls. "Most crawls" suggests a spike on 1 visit in 6 wouldn't flag a site on its own. 2 in 6 (Max density) is getting close, and real readers see more variety than our 12 test views.

Key takeaways

0 of 11
No setup came close to the 35% average line

Even the most aggressive setting (Raptive density on Max) averaged 18% of a phone screen. The risk is short spikes, not the average.

7.6% → 2.9%
The sticky bottom bar is the biggest Mediavine lever

Turning it off cut desktop coverage by about 60%. But that bar earns about 19% of ad income on comparable sites: roughly $50 → $40 RPM. Expensive.

51–59%
Full-screen ads and the top banner cause the spikes

They didn't move the average, but each produced a one-off peak over 50% (1 of 6 runs). If a watchdog cares about peaks, these are the cheap ones to drop: full-screen ads earn about 2–2.5%.

14.7% → 8.9%
Raptive "large format" is the biggest phone lever

Turning it off cut phone coverage by about 40%, but ads loaded fell from 30 to 19. Rough phone RPM estimate: $40 → $26.

2 of 6
The density dial matters most at the top

Max loaded about 35% more ads (best case ~$40 → $54 RPM) but pushed 2 of 6 phone runs past 50%, which is DeepSee's red line. Very Low cut ad loads but barely beat simply turning off large format.

≈ 0
Some switches do nothing you can see

The sidebar slide-in and the first-screen speed setting showed no measurable change in coverage. Leave them alone.

Our recommended setup

Averages never came near the 35% line, so cutting ads across the board buys almost nothing. The smart move: keep the ads that earn, switch off the few that cause spikes.

Mediavine

✕ Full-screen ads: off. Caused a spike past 50% and earn only about 2%.
✕ Top banner: off. It caused the worst moment in the whole test (59%).
✓ Sticky bottom bar: keep. It's the biggest coverage lever, but it earns about 19% and coverage stays low with it on.
– Slide-in sidebar, first-screen speed mode: leave at default. No measurable effect.
✕ "Turn on new features automatically": off, so new spike-makers don't switch on quietly.

Raptive

✕ Full-screen ads: off.
✓ Density: Optimized / Medium, never Max. Max pushed 2 of 6 phone visits past 50%.
✓ Large-format ads: keep. Turning them off cut about a third of phone ads and barely moved the peaks (the typical worst screen stayed around 40–44%).
✕ Auto-optimize: off. It's the only way to stop Raptive raising density on its own. With it back on, the live density on our test site crept from 22% to 24%: a hint, not proof.
? Frame ads: maybe off on desktop. Desktop coverage fell from 9.9% to 6.3% with no fewer ads loaded, but only 4 page views. Test it first.

How sure is this? About 12 page views per setting on two small sites. That's enough to see which settings cause the big moves, not exact dollars. A few weeks of earnings on a real site is the final word.

How to read the charts

average coveragetypical peakone-off spike over 50%watchdog lines

Mediavine test site

Mediavine has no density dial, only on/off switches. We flipped one switch at a time and put it back before the next one.

Phone

0%35%50%60%
Starting setupDefault settings as we found them
11.2% avg
typical peak 27% · 37 ads loaded
Est. RPM ~$50 · starting point
Slide-in sidebar ad OFFThe desktop sidebar ad that slides in
10.7% avg -0.5pts
typical peak 28% · 33 ads loaded (-12%)
Est. RPM ~$50 · no change seen
Sticky bottom bar OFFThe ad bar pinned to the bottom of the screen
8.8% avg -2.4pts
typical peak 23% · 28 ads loaded (-26%)
Est. RPM ~$40 -19% · this bar earns ~19% on comparable sites
First-screen speed mode OFFLets ads load in the very first screen
9.3% avg -1.9pts
typical peak 27% · 29 ads loaded (-21%)
Est. RPM ~$50 · no change seen
Full-screen ads ONAds that cover the page between clicks
11.2% avg —
typical peak 27% · 30 ads loaded (-18%)
⚠ 1 of 6 runs passed 50% (worst 51%)
Est. RPM ~$51 +2% · full-screen ads earn ~2% on comparable sites
Top banner ONA wide banner above the article
11.4% avg +0.2pts
typical peak 28% · 31 ads loaded (-17%)
⚠ 1 of 6 runs passed 50% (worst 59%)
Est. RPM ~$50 · small; no earnings data for this unit

Desktop

0%35%50%60%
Starting setupDefault settings as we found them
7.6% avg
typical peak 11% · 27 ads loaded
Est. RPM ~$50 · starting point
Slide-in sidebar ad OFFThe desktop sidebar ad that slides in
7.9% avg +0.3pts
typical peak 14% · 33 ads loaded (+23%)
Est. RPM ~$50 · no change seen
Sticky bottom bar OFFThe ad bar pinned to the bottom of the screen
2.9% avg -4.6pts
typical peak 9% · 30 ads loaded (+12%)
Est. RPM ~$40 -19% · this bar earns ~19% on comparable sites
First-screen speed mode OFFLets ads load in the very first screen
7.7% avg +0.2pts
typical peak 13% · 33 ads loaded (+22%)
Est. RPM ~$50 · no change seen
Full-screen ads ONAds that cover the page between clicks
7.9% avg +0.3pts
typical peak 14% · 34 ads loaded (+24%)
Est. RPM ~$51 +2% · full-screen ads earn ~2% on comparable sites
Top banner ONA wide banner above the article
7.5% avg —
typical peak 12% · 33 ads loaded (+23%)
Est. RPM ~$50 · small; no earnings data for this unit

Raptive test site

Raptive has on/off switches plus a density dial. Here the changes stack: each row keeps the changes above it. Auto-optimize was turned off so the settings would stick.

Phone

0%35%50%60%
Starting setupAuto-optimize on, density "Optimized"/"Medium"
14.7% avg
typical peak 39% · 30 ads loaded
Est. RPM ~$40 · starting point
+ Frame ads OFFAds that wrap the article edges
14.9% avg +0.3pts
typical peak 45% · 30 ads loaded (-1%)
Est. RPM ~$40 -1% · scaled by ads loaded
+ Large-format ads OFFExtra-tall ad sizes
8.9% avg -5.8pts
typical peak 44% · 19 ads loaded (-36%)
Est. RPM ~$26 -36% · scaled by ads loaded
+ Density "Very Low"Dial set to the minimum (12% / 15%)
8.9% avg -5.8pts
typical peak 35% · 22 ads loaded (-29%)
Est. RPM ~$29 -29% · scaled by ads loaded
+ Density "Max"Dial set to the maximum (28% / 30%)
18.0% avg +3.3pts
typical peak 43% · 41 ads loaded (+36%)
⚠ 2 of 6 runs passed 50% (worst 55%)
Est. RPM ~$54 +36% · scaled by ads loaded (a ceiling: extra ads sell for less)

Desktop

0%35%50%60%
Starting setupAuto-optimize on, density "Optimized"/"Medium"
9.9% avg
typical peak 29% · 36 ads loaded
Est. RPM ~$40 · starting point
+ Frame ads OFFAds that wrap the article edges
6.3% avg -3.6pts
typical peak 29% · 36 ads loaded (+0%)
Est. RPM ~$40 · scaled by ads loaded
+ Large-format ads OFFExtra-tall ad sizes
9.8% avg —
typical peak 29% · 30 ads loaded (-18%)
Est. RPM ~$33 -18% · scaled by ads loaded
+ Density "Very Low"Dial set to the minimum (12% / 15%)
9.4% avg -0.5pts
typical peak 28% · 23 ads loaded (-37%)
Est. RPM ~$25 -37% · scaled by ads loaded
+ Density "Max"Dial set to the maximum (28% / 30%)
13.7% avg +3.8pts
typical peak 30% · 48 ads loaded (+32%)
Est. RPM ~$53 +32% · scaled by ads loaded (a ceiling: extra ads sell for less)

About the dollar estimates

What this test can and can't tell you

Measured with a headless browser (390×844 phone, 1440×900 desktop) that scrolls each article in steps and records the share of the visible screen covered by ad slots at every stop.