Studies

Original data, from sites we run.

Most advice about ad monetization is opinion. These are measured numbers from our own network, the same first-party data the audit is built on.

Cornerstone

How AdSense actually pays

The whole machine, taken apart with real numbers: what a view and a click are worth, why 93% of revenue is US traffic, the demand sources behind it, the vignette that pays 5x, and the weekend cliff.

Diagnostics

Why your RPM chart is lying to you

On a site we run under a thousand page views a day, daily RPM ranged from $2.93 to $49.26 in one month. One click moves a whole day. The rule we use so the swings stop driving decisions.

Ad networks

When it's worth graduating your ad network

AdSense pays a few dollars per thousand views; a premium managed network can pay ten times that, but gates entry on traffic. The RPM ladder across sites we run, and the honest test for moving up.

Seasonality

The revenue spike that isn't about you

A site we run posted a 6x RPM day with no extra traffic. The whole delta was cost per click, and an unrelated site we run spiked the same two days. The quarter-end budget flush, and when to expect it.

Page speed

The anchor ad that shifts your own layout

AdSense's anchor overrides the height you reserve and shifts the page as it fills. It drove page CLS to 0.303, three times over the limit. The safe-reveal fix took it to 0.013.

Page speed

Lighthouse blames your fonts. It's the ads.

On three of four sites we run, Lighthouse pinned a layout-shift failure on web fonts. The real cause was AdSense Auto ads. Fixing the fonts left CLS at 1.00; gating the ad library fixed it.

RPM drivers

The schema tag that cut our RPM by three quarters

We marked a health site up as news. AdSense rebucketed its inventory and RPM fell from $2.61 to $0.66, with no content change. Why a label moves the money, and the free dashboard that catches it early.

Ad density

We added more ads. Here's what we still don't know.

A sweep raised our ad density 51% on a site we run, on traffic that fell 7%. Whether that earned more is genuinely unknowable at this volume, and pretending otherwise is how publishers over-monetize.

RPM drivers

Not every page view can be sold

Your traffic is three populations and only one pays: human commercial, misdirected foreign navigation, and machines. One portal query drew 6,807 impressions at a 0.0% click rate. Counting the wrong traffic dilutes your RPM.

Growth

More pages didn't mean more ad revenue

We launched a site with 2,340 programmatic pages to build ad inventory fast. Its best week ever was 12 clicks at position 40, and 83% of the pages never earned an impression. Empty slots on pages nobody reaches earn nothing.

Site approval

Does AdSense care about your images?

No minimum image count, no stock-versus-original rule, no image-quality bar for approval. But images matter in four confirmed ways, from thin-text rejections to layout shift. What Google actually says, sourced, and what is folklore.

Geography

Country tiers, and the one geo lever you can pull

The viewer’s country sets the ceiling on what an impression is worth. What Tier 1, 2, and 3 really mean, why a US view is worth about 7x an India view in our own data, why the public country-CPM tables are guesswork, and the one geo lever a small publisher actually controls: the underserved non-English Tier 1 market.

Revenue features

Offerwall and Ad Blocking Recovery

Two AdSense features most publishers never switch on, both raise revenue without adding a single display ad. Offerwall even earns from the consent-declined and ad-block traffic your ads never reach. What they are, what they are worth, and how to turn them on.

Policy

Dishonest declarations

Google has a publisher policy by this exact name, and it is one Google will suspend an account over. It governs the truth of what you tell Google: account details, ad-request URLs, geolocation, ads.txt. What it prohibits, how to resolve a violation, and how to stay clean.

Site approval

Low value content

The most common AdSense rejection, and the most misread. It rarely means your writing is bad; it means Google could not find enough original, substantial content to justify the site. What Google checks, the real causes, and how to fix it before you reapply.

Policy

Scaled content abuse

The Google policy that named mass-produced, low-value pages. It targets producing many pages mainly to rank, by AI, scraping, or templates. How it shows up for publishers, why those pages quietly never get indexed, and how to fix it.

Policy

No content

AdSense will not run ads on a screen with no publisher content. "No content" is a common rejection and a common ad-serving limit, and it is usually placement, not quality: under-construction, behind-login, error, and thank-you screens. How to fix it.

Ad sizes

Do ad sizes matter?

We run responsive units, so AdSense picked the size for every impression. The highest-earning size was no fixed size at all, and the most-viewable size earned almost nothing.

RPM drivers

It wasn't the niche

We expected advertiser demand to explain the RPM gap between two sites we run. The cost per click was nearly identical, $0.16 vs $0.19. The 2.7x gap was viewability and click-through, not the topic.

Ad operations

A higher fill rate did not mean more money

Two sites we run. One fills 83% of its ad requests, the other 41%. The one that fills fewer earns more than double the page RPM. Fill rate is a vanity metric, not a revenue lever.

Ad networks

The 2026 ad network shake-up: Ezoic up, Raptive down

The entry thresholds moved in opposite directions this year. Ezoic raised its bar to 250k monthly users; Raptive dropped to 25k pageviews. The on-ramp for new publishers inverted.

Viewability

Where an ad sits decides whether it gets seen

Active View viewability by placement across our network. A 60-point spread, from a sticky anchor at 88% to a page-bottom unit at 28%.

Page speed

We hold the ads until the reader moves

On some sites we run, we do not request an ad until the reader scrolls or taps. It clears the Core Web Vitals cost of ads from the initial load, at the price of the impressions a bouncing visitor never triggers. A deliberate trade, not a free win.

Ad density

The point where another ad starts costing you money

Past the Coalition for Better Ads 30% mobile line, one more unit does not add revenue. Chrome can pull all your ads for crossing it, and below it, viewability, Core Web Vitals, and reader patience make each extra unit earn less.