Finding 03
We recorded a 23x revenue spread, then found most of it was a missing import
The worst page earned Rs 2.08 per thousand views against the best at Rs 47.29. Reading the source showed the worst page carried no ad slots at all. Holding slot count constant, 4.6x of the gap survived.
In plain terms
Among 20 pages on one site, each carrying the same two ad slots, the best earned 4.6 times as much ad revenue per 1,000 views as the worst.
- Published
- Window
- 28 days, 2026-08-13 to 2026-09-09
- Sample
- 21 pages above the view threshold, 14,603 views between them
- Instrument
- Google Analytics ad revenue and views per page, with each page's ad slots counted from its source code.
A 23x revenue spread inside one site is a striking number. Most of it came from one line of code.
The spread at face value
Ad revenue per thousand page views, joined to page path across one property for twenty eight days, ran from Rs 47.29 on the best page to Rs 2.08 on the worst. A 23x spread inside a single site, on one template, under one ad account. Taken at face value, it says that what a page is about matters far more than where the ads sit.
What the check found
That reading assumes both pages carry the same two ad slots, so placement cannot explain the gap. Reading both pages out of version control, the top page carries two ad slots and the bottom page carries none.
The worst earning page on the site was not a monetisation puzzle. It was a missing import. It returned Rs 2.08 per thousand views because it was serving almost no ads, and it entered the analysis as though it were serving two.
The number that survived
Drop that page and hold slot count constant, at two slots on every remaining page, and the spread is Rs 47.29 down to Rs 10.25. That is 4.6x across pages with the same slot count, template, ad account and window. Where each page's readers were is not held constant: the per-page report has no country split.
| Category | Pages | Views | RPM | Ads / view |
|---|---|---|---|---|
| Astrology | 21 | 14,603 | Rs 25.06 | 0.74 |
| Reference articles | 4 | 2,575 | Rs 15.00 | 0.59 |
| Home page | 1 | 6,359 | Rs 5.27 | 0.14 |
| Utility tools | 4 | 2,542 | Rs 4.45 | 0.28 |
Three things move page revenue
Page revenue depends on whether the slots exist at all, how many ads render per view, and what advertisers pay for the ones that do. The last two were measured as ranges across the same page set, and the ranges are worth having, but read the warning under the table before using them.
| Effect | Spread | What could move it |
|---|---|---|
| Revenue per ad impression | 3.3x | What the page is about, or where its readers are |
| Ad impressions per view | 1.8x | How far down people read, or where its readers are |
These two are separate ranges, not a decomposition of the 4.6x, and multiplying them is wrong. Each is a maximum against a minimum taken across the page set, and the extremes of one need not fall on the same pages as the extremes of the other. 3.3 times 1.8 comes to 5.9, which is larger than the 4.6x it would supposedly explain, and that arithmetic is the tell.
The missing slots are the defect, found in the source rather than in these ranges. Both ranges vary from page to page, and nothing measured here says why: what a page is about, how far people read and where its readers are could each move them. Ad click-through on the deepest page ran 2.11 percent, against 0.00 percent on a single-answer calculator in the same window.
What it does to the conclusion
After excluding that page, pages carrying the same two slots still spread 4.6x. That is not a measure of content alone: nothing here holds constant where each page's readers were, and finding 04 shows ads per page view on this property differing many times over between countries.
A second thing the check overturned: the subject we had assumed was the weak monetiser was the strongest one on the site. It had been called low value on the strength of published vertical benchmarks. On this property it held the top nine revenue slots outright. The benchmarks did not describe this site, and its own measured data was available the entire time.
How to check your own
Pull revenue, ad impressions and views per page rather than per site. Compute ads per view first, because a low figure there is either a missing slot or a page nobody scrolls, and those need opposite responses. Then read the slot count out of the source for your best and your worst page before writing any sentence that depends on it. That step takes half a minute, and it is the one that gets skipped.
Full method
GA4 publisher metrics joined to page path: revenue, ad impressions and views per page. Ad slot counts then read directly out of each page's source in version control rather than assumed, which is what found the page carrying none. Pages under 200 views excluded.