Website ad RPM is revenue per 1,000 units of ad inventory, but it is 3 numbers, not 1. AdSense reports page RPM and ad RPM, while session RPM has to be built from AdSense earnings and GA4 sessions. This guide works 1 month of data into all 3 figures and lists 6 levers that raise RPM without new traffic.
In This Article
Most publishers watch sessions climb and wait for earnings to follow. They often don’t, because website ad RPM measures what sessions cannot: the revenue each 1,000 units of ad inventory returns. The trap is that RPM is not 1 number. It is 3, and Google’s dashboards divide by different things.
This guide sets out what AdSense reports, how GA4 counts sessions and views, and how to turn 1 month of data into page RPM, ad RPM and session RPM. Every formula comes from Google’s help pages.
Sessions count visits. RPM counts what those visits are worth. AdSense defines RPM as estimated earnings divided by a denominator, multiplied by 1,000, and it reports page RPM and ad RPM, not session RPM. A site can double sessions, watch ad RPM fall, and finish the month with identical revenue.

The denominator is the whole argument. Divide by page views for page RPM, by ad impressions for ad RPM, by GA4 sessions for session RPM, which no Google product hands you. Quote an RPM without saying which one and the number means nothing.
Publishers usually optimise the wrong one. A 4th ad unit lifts impressions, so ad RPM drops even as revenue rises. Readers opening a 2nd article lift session RPM while page RPM stays flat.
AdSense gives the formula as RPM = (Estimated earnings / Number of page views) x 1,000, and calls RPM “the estimated earnings you’d accrue for every 1000 impressions you receive”. It also warns that RPM “doesn’t represent how much you’ve actually earned”. It is a rate, not a payout.
Google AdSense Help publishes 2 worked examples. Earn $0.15 from 25 page views and page RPM is ($0.15 / 25) x 1,000, or $6.00. Earn $180 from 45,000 ad impressions and ad RPM is ($180 / 45,000) x 1,000, or $4.00. Both were recomputed here and both hold.
Page RPM divides earnings by AdSense page views, and a page view registers once per page however many units load on it. That makes it the cleanest way to rank content: what is 1 article worth when someone opens it? A finance explainer at $12.00 page RPM against a news round-up at $1.40 tells you where to write next, whatever the traffic split.
Ad RPM divides the same earnings by impressions. AdSense counts an impression for each ad request where at least 1 ad has begun to download to the user’s device, so ad RPM moves with your layout as much as with advertiser demand. Add slots and impressions rise faster than revenue, so ad RPM sinks while the bank balance grows. Read it as a price signal for inventory quality, not a verdict on the site.
Session RPM is not an AdSense metric. No column exists to switch on, because AdSense counts page views and impressions while sessions live in Analytics. You divide AdSense earnings by GA4 sessions for the same date range and multiply by 1,000. It is still the most honest figure for a publisher, because it prices a visitor rather than a page load. Session RPM equals page RPM multiplied by page views per session.
| RPM type | What sits under the line | Where the number comes from | What it tells you |
|---|---|---|---|
| Page RPM | 1,000 AdSense page views | Reported directly in AdSense | What a page that carries ads is worth, whatever number of slots it holds |
| Ad RPM (impression RPM) | 1,000 ad impressions | Reported directly in AdSense | What 1 ad slot returns, so it falls when you add slots per page |
| Session RPM | 1,000 GA4 sessions | Not an AdSense metric. You divide AdSense earnings by GA4 sessions yourself | What a visit is worth, so it rises when people read more pages per visit |
For the wider metric family, including eCPM, see CPC, CTR, RPM and eCPM compared. For the earnings side, see calculating Google AdSense earnings in India.
GA4 defines a session as “a period of time during which a user interacts with your website or app”, ending after 30 minutes of inactivity by default. Its Views metric is the “Total number of app screens and/or web pages your users saw”. Neither is measured the way AdSense measures page views, so the 2 reports always disagree.

Per Google Analytics Help, a session starts when someone opens your site with no active session running and expires after 30 minutes of inactivity, with no maximum duration. GA4 does not restart sessions at midnight or when new campaign parameters appear, which Universal Analytics did.
Google also states that Analytics properties “use a statistical estimate of the number of sessions” by estimating unique session IDs. Your session count is modelled, so treat session RPM as directional, not audited.
Views replaced pageviews in GA4 and combines pageviews and screenviews into 1 metric. AdSense page views count something narrower: pages where an ad request was made. Cached pages, ad-blocked sessions and unmonetised pages sit in GA4 and never reach AdSense.
GA4 fires on your tag, AdSense fires on the ad request. A 2% to 5% gap between GA4 views and AdSense page views is normal on a healthy site (upGrowth estimate, September 2026); a wider one points at tagging gaps, ad blockers or pages without ad code. Pick 1 source per denominator and date range.
A publisher earned $900 last month. GA4 reports 120,000 sessions and 210,000 views. AdSense reports 205,000 page views and 480,000 ad impressions. That single revenue figure produces a session RPM of $7.50, a page RPM of $4.39 and an ad RPM of $1.88. The highest is 4.0x the lowest.

Each is the AdSense formula with a different denominator. Session RPM is $900 / 120,000 x 1,000 = $7.50. Page RPM is $900 / 205,000 x 1,000 = $4.39. Ad RPM is $900 / 480,000 x 1,000 = $1.88. The site runs 2.34 ad impressions per page view and 1.71 page views per session.
The cross-check holds: $4.39 page RPM times 1.71 returns $7.50, and $1.88 ad RPM times 2.34 returns $4.39. AdSense page views sit 2.4% below GA4 views here.
Site A gets 200,000 monthly sessions at a session RPM of Rs 150 and earns 200,000 / 1,000 x 150 = Rs 30,000. Site B gets 100,000 sessions at Rs 350 and earns Rs 35,000, or Rs 5,000 more from half the traffic (upGrowth estimate, September 2026). That is 1.17x the revenue.
A popular claim says lifting RPM 10% beats lifting traffic 10%. Arithmetically it does not. Revenue is sessions divided by 1,000, multiplied by session RPM, so on the $900 month above, +10% sessions gives $990 and +10% session RPM also gives $990. Both together give $1,089, a 21% gain.
The real case for RPM work is cost. You already own the sessions. Lifting page views per session from 1.71 to 2.05 at the same page RPM moves session RPM from $7.50 to $9.00 and revenue from $900 to $1,080, a 20% gain with no new visitors.
Work the denominator you control. AdSense says earnings “are dependent on many factors such as how much traffic you get, what type of content you provide, where your users are located, how you set up your ads”. 3 of those 4 are levers you can pull without buying a session.

Session RPM is page RPM multiplied by page views per session, so internal links, topic clusters and fast mobile pages convert straight into revenue. Moving from 1.71 to 2.05 page views per session was worth 20% above.
Adding units raises impressions and drags ad RPM down. Improving where existing units sit, and whether they are seen, raises what each impression sells for. Test position and sticky behaviour first, then judge on page RPM, not ad RPM.
AdSense confirms that content type and user location both affect earnings. Finance, software, insurance and education topics typically clear higher rates than general interest content, and readers in the US, UK, Canada and Australia price above the global average (upGrowth estimate, September 2026). Find high-value sub-topics inside the niche you own.
More bidders on the same impression push the clearing price up. Publishers at scale add exchanges through header bidding. Smaller sites get most of the effect by enabling every eligible ad type and size on each unit.
AdSense states that “seasonality and currency exchange rates can also affect your earnings”. Push your highest-intent content into Q4 and other peak windows, and set softer expectations for January and February instead of blaming your layout.
RPM is gross. Google’s revenue share page states that publishers receive 80% of the revenue after the advertiser platform takes its fee, and that when advertisers buy display inventory through Google Ads, publishers keep about 68%. On a $1,000 gross month that is $800, or roughly $680.
Model that before you commit to a hosting bill or a writer. Our guide to the AdSense break-even point and the walkthrough on back-solving ad revenue from 1 lakh monthly visits run the same arithmetic. For video, YouTube CPM and RPM work the same way.
Website ad RPM is revenue per 1,000 units of ad inventory. Google AdSense defines RPM as estimated earnings divided by the number of page views, impressions or queries, multiplied by 1,000. AdSense stresses that RPM is not what you actually earned. It is a rate for comparing pages, sites and periods once you fix the denominator.
They share a formula and differ only in what sits under the line. Page RPM divides earnings by 1,000 AdSense page views. Ad RPM divides by 1,000 ad impressions, so it falls when you add ad units. Session RPM divides by 1,000 GA4 sessions and is not an AdSense metric, so you calculate it yourself.
Sessions and pageviews measure volume. RPM measures value. A site with 100,000 monthly sessions at a session RPM of Rs 350 earns Rs 35,000, while a site with 200,000 sessions at Rs 150 earns Rs 30,000 (upGrowth estimate, September 2026). Half the traffic, more money. Volume sizes the audience, RPM prices it.
They measure different events. GA4 fires on your analytics tag and counts a session as user interaction that expires after 30 minutes of inactivity. AdSense counts a page view only where an ad request was made. Google notes that Analytics uses a statistical estimate of session counts. A 2% to 5% gap is normal (upGrowth estimate, September 2026).
Raise page views per session, because session RPM equals page RPM multiplied by page views per session. In the example above, moving from 1.71 to 2.05 page views per session lifts session RPM from $7.50 to $9.00 and revenue from $900 to $1,080, a 20% gain with the same visitors.
Google states that AdSense publishers receive 80% of the revenue after the advertiser platform takes its fee, and that when advertisers buy display inventory through Google Ads, publishers keep about 68%. On a gross month of $1,000 that is $800, or roughly $680. RPM figures are gross, so apply the share before you plan costs.
Pull last month’s AdSense earnings and GA4 sessions and calculate all 3 RPMs before you change anything. Low session RPM with healthy page RPM is an engagement problem. Low page RPM everywhere is demand or placement.
Run the scenarios with the business calculators on upGrowth, including the website ad revenue calculator, to see what a shift in traffic, engagement or RPM does to a year.
Want a second opinion on where your ad revenue leaks? Book a strategy call with upGrowth and bring page RPM by category.
In This Article