Short answer

Page RPM is ad revenue divided by pageviews, times 1,000. Session RPM is ad revenue divided by sessions, times 1,000. Session RPM is the better health metric because it rewards pages that keep readers on the site, while page RPM can be raised artificially by splitting content into more pages.

RPM — revenue per mille — is the number every ad-funded publisher watches. But there are several RPMs, and choosing the wrong one leads to the wrong decisions.

The formulas

MetricFormulaAnswers
Page RPMrevenue ÷ pageviews × 1,000how much 1,000 pages earn
Session RPMrevenue ÷ sessions × 1,000how much 1,000 visits earn
Impression RPM (eCPM)revenue ÷ impressions × 1,000how much 1,000 ad impressions earn

Example: €400 of revenue, 100,000 pageviews, 60,000 sessions and 350,000 impressions give a page RPM of €4.00, a session RPM of €6.67 and an eCPM of €1.14.

Why session RPM is the better health metric

Page RPM goes up if you split an article into three pages, but readers may leave. Session RPM only goes up if a visit really earns more: more pages read, better ad viewability, better demand. It also lines up with how you buy traffic: you pay per click, which is per session.

Where the numbers come from

Revenue comes from your ad platform. Pageviews and sessions come from your analytics. Use one analytics source consistently and the same time zone in both. Cookieless analytics like PubPulse counts visitors who reject consent, which makes your denominators more complete; see why GA4 and AdSense pageviews differ.

Raising session RPM without hurting readers

  1. More pages per session: related articles, clear next-step links, series.
  2. Better viewability: ads where readers actually look, not stacked at the bottom.
  3. Right traffic: sources with long sessions (search, newsletters) usually beat sources with one-page visits.
  4. Page speed: slow pages lose readers before the first ad loads.
  5. Geography: the same content earns very differently by country; check RPM per country.

Track it by source

The most useful view is session RPM per traffic source: Discover, search, social, AI assistants. In PubPulse, take sessions per source from any report and export them to a sheet next to your ad revenue per source (UTM-tagged campaigns make this precise).

Try PubPulse free for 30 days

Every feature, no pageview limit, no credit card. Paste one line of code and your first visits show up within seconds.

Start your free trial

or click around the live demo first, no sign-up needed