Two sites with identical traffic can differ tenfold in ad revenue. Audience location and subject matter explain almost all of that gap.
How the numbers work
RPM is revenue per thousand pageviews, and it is the only figure worth tracking because it folds together everything else — fill rate, click-through, cost per click and the number of ad units.
The arithmetic is simply pageviews divided by a thousand, multiplied by RPM. A site with 50,000 monthly pageviews at a $5 RPM earns around $250 a month.
| Factor | Effect on RPM |
|---|---|
| Audience country | Very large — several times over |
| Subject matter | Very large — finance vs hobby |
| Device | Desktop usually above mobile |
| Season | Q4 peaks; January drops sharply |
| Ad placement | Moderate — viewability matters |
| Traffic volume | Almost none directly |
That last row surprises people who expect scale to improve rates. It does not, materially — a site ten times larger earns roughly ten times as much at a similar RPM. What raises RPM is who is reading and what they are reading about.
Why geography dominates
Advertisers bid for audiences they can sell to, and the value of a reader tracks the purchasing power and advertising market of the country they are in.
The practical result is a wide spread. Readers in the United States, United Kingdom, Canada, Australia and parts of Western Europe command several times the rates of the global average, and the gap against the lowest-value markets can be an order of magnitude.
This is worth knowing before drawing conclusions from a revenue report. A month where traffic rose and revenue fell usually means the traffic mix shifted, not that anything broke. Look at revenue by country before looking for a technical explanation.
Subject matter, and the seasonal pattern
Advertiser competition varies enormously by topic. Insurance, legal services, finance, business software and health carry high rates because the value of a converted customer is high. General interest, entertainment and hobby content sit at the bottom.
Seasonality then moves everything together: rates climb through the final quarter as retail budgets are spent, peak in the run-up to Christmas, and fall sharply in January when those budgets reset.
The January drop catches every new publisher. Revenue can halve with no change in traffic and no fault of yours. It recovers through the year, and reading a January report as evidence of a problem leads to changes that fix nothing.
Being realistic
Most sites earn less from display advertising than the case studies suggest, and the reason is selection: people write up the outcomes worth writing up.
A useful sanity check is that a site needs substantial traffic before display income is meaningful. At a $5 RPM, 100,000 monthly pageviews is around $500 a month — a decent supplement, and not a salary.
AdSense Earnings Calculator lets you run the arithmetic for your own numbers rather than someone else's. Enter a realistic RPM for your audience rather than an aspirational one, and the answer is usually sobering and useful.
Tracking where traffic came from
Ad revenue by source is only knowable if the sources are tagged, which is what UTM parameters do — they attach campaign information to a link that analytics reads on arrival.
Five parameters exist and three matter.
- utm_source — where it came from: newsletter, twitter, partner-site.
- utm_medium — the channel type: email, social, cpc, referral.
- utm_campaign — which campaign: spring-launch, weekly-2026-08.
- utm_term — paid search keyword. Rarely needed otherwise.
- utm_content — distinguishes variants: header-link against footer-link.
Source and medium are the pair that analytics groups by, so getting those consistent matters more than anything clever in the campaign name.
The mistakes that corrupt the data
- Inconsistent case. UTM values are case-sensitive: Facebook and facebook become two separate rows that never recombine. Use lowercase for everything, always.
- Tagging internal links. A UTM on a link between your own pages starts a new session and overwrites the original source, so the visitor who arrived from a newsletter is recorded as arriving from your own footer.
- Inconsistent medium values. email, e-mail and Email fragment the same channel into three.
- Spaces in values, which get encoded as %20 and appear as such in reports. Use hyphens.
- Personal data in parameters. Email addresses or names in a URL end up in analytics, server logs and referrer headers. Never do this.
The second is the most damaging and the least obvious, because everything appears to work. Attribution quietly collapses onto your own site, and the channel that actually brought people in shows as producing nothing. UTM Builder assembles and encodes the parameters correctly; the discipline of keeping values lowercase and consistent is the part that has to come from you.
Frequently asked questions
How much do display ads pay per 1000 views?
Typically $1 to $10 RPM for content sites, driven mainly by audience country and subject matter. Readers in the US, UK, Canada and Australia are worth several times the global average, and finance or legal topics pay far more than general interest.
Does more traffic mean a higher RPM?
No. Volume raises total revenue roughly proportionally but has little direct effect on the rate. What raises RPM is who is reading and what the page is about.
Why did my revenue drop in January?
Seasonality. Advertising rates peak in the fourth quarter as retail budgets are spent and fall sharply when those budgets reset in January. Revenue can halve with no change in traffic, and it recovers through the year.
How much traffic do I need to earn meaningfully?
More than most guides imply. At a $5 RPM, 100,000 monthly pageviews is around $500 a month. Run your own numbers with a realistic RPM for your audience rather than a figure from a case study.
What are UTM parameters for?
Tagging links so analytics can attribute visits to a source. utm_source, utm_medium and utm_campaign are the three that matter; utm_term and utm_content are for paid search keywords and distinguishing link variants.
Why is my UTM data split across duplicate rows?
Values are case-sensitive, so Facebook and facebook are recorded as different sources and never recombine. Use lowercase consistently for every value.
Should I put UTM parameters on internal links?
No. A UTM on a link between your own pages starts a new session and overwrites the original source, so someone who arrived from a newsletter gets recorded as arriving from your own footer. It looks like it works while quietly destroying attribution.