Study
It wasn't the niche
We expected advertiser demand to explain why one of our sites out-earns another per impression. The cost per click was nearly the same. The real gap was whether the ads got seen.
"My niche just doesn't pay" is the most common explanation we hear for a low RPM, and it is not crazy. Cost per click really does vary across verticals. So we set out to prove it on our own network, expecting the business-audience site to out-earn the consumer one on advertiser demand. We pulled the numbers. They said something else.
What we expected
Two sites, same owner, same calm method, same month. Site A is a broad consumer-interest site; Site B serves a business audience. The going assumption, ours included, was that Site B earns more per impression because business clicks are worth more, so its cost per click would be the thing that set it apart.
What the data said
| Site A | Site B | |
|---|---|---|
| Audience | Broad consumer | Business buyers |
| Cost per click | $0.16 | $0.19 |
| Click-through rate | 0.84% | 1.96% |
| Viewable impressions | 44% | 64% |
| RPM per 1,000 impressions | $1.35 | $3.64 2.7x |
AdSense, trailing 30 days. Cost per click differed by 19%. RPM per impression differed by 170%.
The price of a click was close, $0.16 against $0.19. If advertiser demand were the whole story, the RPM should have been close too. Instead Site B earned 2.7 times as much per thousand impressions. The niche explains a sliver of that gap. Almost all of it is somewhere else.
Where the gap actually lives
It is in the click-through rate: 1.96% against 0.84%, more than double. What an ad impression earns is roughly its click-through times its cost per click, so when the cost per click is nearly equal, the click-through is the whole game. And click-through tracks the number right above it, viewability. Site B's ads were viewable 64% of the time against Site A's 44%. Ads that are in view get clicked. Ads that load below the fold and wait for a scroll do not, no matter how good the niche.
Click-through is not purely a layout number, an engaged audience clicks more too, so we are not claiming every point of the gap is placement. But the largest, most measurable, most fixable piece of it is: the ads on the lower-earning site were seen 20 points less often. That is not a topic problem. That is a layout problem.
What it means for you
Before you decide your niche has capped your RPM, check your viewability. Niche sets part of the ceiling, cost per click is real and it varies, but most sites sit far below their own ceiling for a reason they can fix. "My topic doesn't pay" is often a viewability problem wearing a costume. The two sites here pull the same price per click. One just gets its ads seen, and earns nearly triple for it.
How we measured it
AdSense cost per click, impression click-through, Active View viewability, and impression RPM, trailing 30 days, on two sites in our network, anonymized. Two sites is an illustration, not a proof, and cost per click genuinely does vary by vertical, so this is not a claim that niche never matters. The narrow point is the one the numbers make cleanly: when the cost per click is nearly equal and the RPM is not, the difference is whether the ads were seen. The numbers are real and our own.