·Updated June 6, 2026·RPS / Revenue Per Session / ecommerce / marketing-metrics / ad-channel-attribution

Revenue Per Session: Compare EC Ad Channels by Revenue (2026)

Comparing ad channels by sessions misleads. RPS (Revenue Per Session) measures revenue efficiency. Formula, GA4 setup, EC examples, pitfalls.

Revenue Per Session: Compare EC Ad Channels by Revenue (2026)

"Google Ads vs. Meta Ads — which is more efficient on the same budget?" Ecommerce operators ask this almost every week. Most compare by sessions, but that leads to the wrong answer. The only metric that compares revenue efficiency across ad channels is RPS (Revenue Per Session).

This article walks through the formula, GA4 implementation, the relationship to AOV (Average Order Value) and CVR (Conversion Rate), and the operational pitfalls — from a practitioner's view.

TL;DR#

  1. RPS = Revenue ÷ Sessions

    The single metric that integrates AOV and CVR into one ad-investment decision axis

  2. Looking at AOV alone or CVR alone misjudges initiatives

    When raising the free-shipping threshold creates "AOV ↑ / CVR ↓," AOV alone reads as a win, but RPS goes down

  3. Channel-level RPS judges ad ROI

    Google Ads RPS $1.20 vs. Meta Ads RPS $0.80 means Google is 1.5× more efficient on the same budget

1. Definition and formula#

RPS represents the average revenue per visit (session).

RPS = Revenue ÷ Sessions

10,000 sessions with $12,000 in revenue → RPS = $1.20. "On average, each site visit earns $1.20."

Relationship with AOV and CVR#

RPS decomposes as the product of AOV and CVR:

RPS = AOV × CVR

For example, AOV $60 × CVR 2.0% = $1.20. This decomposition means there are only two ways to move RPS — raise AOV or raise CVR. If sessions grow but neither AOV nor CVR changes, RPS stays exactly the same — session-only growth is RPS-neutral.

Naming variations#

RPS goes by several names — Revenue Per Visit (RPV), Average Revenue Per Session (ARPS), Revenue Per User (RPU). The GA4 reference defines "Average purchase revenue per user" — close but per user, not per session[1]. The substance is the same — revenue divided by visits. This article uses the most operationally tractable unit (session) and calls it RPS.

2. The trap of single-metric thinking — three misconceptions#

The reason RPS is needed is that maximizing any single metric sacrifices another.

Misconception 1: "Increase sessions and revenue will follow"#

Doubling ad spend doubles sessions, but if RPS halves, revenue is flat. Adding a new ad channel often brings traffic of different quality, dropping CVR and RPS. Revenue = Sessions × RPS — sessions alone tell you nothing about revenue impact.

Misconception 2: "CVR is the top KPI"#

CVR matters, but alone it misleads. Pushing bundles to lift CVR can drag AOV down. CVR ↑ × AOV ↓ ends up dropping RPS. Baymard Institute's checkout usability research[2] documents many ways to lift CVR — but failing to keep CVR balanced with AOV and margin leads to whole-business misoptimization.

Misconception 3: "Just raise AOV"#

Raising the free-shipping threshold from $50 to $100 might lift AOV, but customers who were "$20 short of free shipping" will drop off, lowering CVR. AOV ↑ × CVR ↓, and RPS goes down.

The three-metric interaction — RPS as the integrated axis#

MetricHow to move itLikely side effectIntegrated axis
SessionsPaid ads / SEORPS drops if traffic quality differsRPS
CVRUX / discountsAOV drops with discountingRPS
AOVThresholds / bundlesCVR drops past thresholdsRPS

Revenue moves only when all three metrics align. RPS folds these interactions into one number.

3. How to compute RPS — GA4 / Shopify / in-house DB#

In GA4#

GA4's standard reports don't expose "Revenue Per Session." "Average purchase revenue per user" exists, but it's per user, not per session[1]. For session-level RPS, you need a custom calculation in Explorations:

RPS = Total revenue (purchase) ÷ Sessions (all sessions, not just purchasing)

GA4 standard reports make it hard to surface "purchasing sessions" and "all sessions" simultaneously, so a custom Exploration query is typically required.

In Shopify#

Shopify Analytics shows "Total sales," "Conversion rate," and "AOV" by default — but no native RPS. You compute it yourself: "Total sales ÷ Total sessions."

In an in-house DB (most flexible)#

Join sales data with session logs in a data warehouse (Postgres / BigQuery / Snowflake) — one SQL query produces channel-level RPS:

SELECT
  channel,
  SUM(revenue) / COUNT(DISTINCT session_id) AS rps
FROM
  sessions s
LEFT JOIN
  orders o ON s.session_id = o.session_id
GROUP BY
  channel

The real value of RPS comes from channel comparison — this granularity is the key to data-driven ad budget allocation.

4. Three real examples — RPS changes the verdict#

Example 1: Raising the free-shipping threshold (the AOV-only trap)#

A D2C brand raised the threshold from $50 to $80:

MetricBeforeAfterChange
AOV$62$74+19%
CVR2.4%1.8%-25%
RPS$1.49$1.33-11%

AOV alone says "+19%, big win." RPS shows -11% — the initiative loses revenue overall.

Example 2: Channel-level comparison (ad budget allocation)#

Same $10,000 budget across three channels:

ChannelSessionsRevenueRPSEfficiency
Google Ads8,000$9,600$1.20Baseline
Meta Ads12,000$9,600$0.80-33%
TikTok Ads20,000$8,000$0.40-67%

By sessions, TikTok wins handily. By RPS, Google Ads is 3× more efficient. Ad budget allocation should be judged by RPS.

Example 3: Bundle discount (AOV and CVR aligned)#

A retailer launched a 3-item, 20%-off bundle:

MetricBeforeAfterChange
AOV$48$52+8%
CVR2.0%2.6%+30%
RPS$0.96$1.35+41%

Both AOV and CVR move up, and RPS jumps. When AOV and CVR align, RPS climbs dramatically.

5. Operational notes — three things to watch#

Note 1: Session-definition drift#

GA4, Shopify, and your in-house DB define "session" slightly differently[1]. GA4 defaults to 30-minute inactivity timeout. Shopify treats same-day cookie continuity as one session. In-house DBs are designer-defined. Confirm session definitions before comparing RPS across tools.

Note 2: Multi-touch effects#

Last-click attribution inflates RPS for Brand Search and Direct traffic. When ads drive awareness and the customer returns later via Direct, ad contribution accrues to Direct's RPS. When using channel-level RPS for ad judgment, align attribution models (first-touch / last-touch / linear, etc.).

Note 3: Refund and cancellation timing#

Shopify and GA4 typically compute RPS on order-time revenue, often not reflecting later refunds and cancellations. In high-return industries (apparel, etc.), the gap between effective RPS (post-refund) and surface RPS (at order) widens. Ad ROI judgments need effective RPS.

RevenueScope solution

RPS shows its real value when you line channels up and compare them. But GA4 and each ad platform's dashboard don't align RPS on one common yardstick across channels — each uses its own basis, and session counts or absolute revenue take the spotlight.

RevenueScope uses its own tracking to remove duplicates and shows each channel's real revenue alongside RPS, AOV, and CVR on one screen. It doesn't ask you to enter ad spend. Rooted in your own sales, it lines up which channels sell efficiently on a common yardstick.

RevenueScope's revenue-efficiency-by-channel dashboard (demo data shown). It lists RPS (revenue per session), revenue, AOV, and CVR by channel, so you judge channels by efficiency rather than absolute revenue. The newsletter tops RPS while Instagram has the biggest revenue but the lowest RPS

RevenueScope's dashboard (demo data shown). It puts each channel's RPS, AOV, and CVR side by side, so you judge by efficiency, not revenue size.

Take the screen above. The biggest revenue belongs to Instagram (¥1.7M). But by RPS, Instagram sits last at ¥210 — while the newsletter, with far smaller revenue (¥276K), tops the list at ¥345. If you only watched session counts or revenue size, you'd crown Instagram the ace; line them up by RPS and the channel that sells most efficiently is clearly the newsletter.

Open the newsletter row and you see the difference even within one channel: the new-product campaign converts at 9.2%, the member-coupon one at 5.4%. You can decide which campaign to back, by RPS and conversion rate — without hand-computing RPS in GA4. Having RPS in a comparable state is the next step toward moving ad budget correctly while avoiding the session-count trap.

6. FAQ#

Q1. Can GA4 really not produce RPS?#

Not from standard reports. You can build it in Explorations as a custom calculation: "Total revenue ÷ Sessions"[1]. The non-standard nature means more operational overhead.

Q2. RPS vs. ARPU (revenue per user) — which is right?#

Depends on use case. RPS (per session) is strong for ad-channel efficiency. ARPU (per user) is strong for LTV and repeat evaluation. For ad investment decisions in ecommerce, RPS is standard.

Q3. How does RPS target vary by industry?#

Industry average is $0.50–$2.00 range; high-AOV categories (furniture, premium goods) can exceed $3, low-AOV categories (consumables) can stay under $0.50. Your own historical RPS trend is the most reliable benchmark.

Q4. Does attribution model affect RPS?#

Yes. Last-click vs. first-click vs. linear redistribute revenue across channels, which changes channel-level RPS. Use one consistent model when comparing (Last-Click Attribution Trap).

Wrap-up#

Revenue = Sessions × RPS

A simple equation, but it contains all of "budget allocation" and "initiative impact."

  • Initiatives that grow sessions (SEO, ads) → move sessions
  • Initiatives that lift unit price (bundles, thresholds) → move RPS through AOV
  • Initiatives that improve conversion (UX, LP optimization) → move RPS through CVR

According to METI's e-commerce market survey[3], Japan's BtoC e-commerce market reached ¥26.1 trillion in 2024. Even at this scale, only a small fraction of operators run integrated metrics like RPS as a primary KPI. Operators who adopt RPS early have meaningful room to differentiate.

References#

[1] Google "Analytics dimensions and metrics — Average purchase revenue per user" 2025

[2] Baymard Institute "E-Commerce Cart & Checkout Usability Research" 2024

[3] Ministry of Economy, Trade and Industry (METI) "FY2024 E-Commerce Market Survey" August 2025

See which ads actually drive revenue, at a glance

Free up to 5,000 sessions/month, AI analyst included. No credit card required. Up and running in 5 minutes.

Start measuring for free