The three companies in this article are illustrative cases built from interviews with ecommerce operators and public data. Improvement varies widely by business, industry, and tactics, but each case (+15% / +8% / +22%) is set within the +5-20% range commonly observed in the field.
"Where should the ad budget go, and how much?" Try to answer this question starting from CVR or ROAS and your decision axis never settles — performance plateaus. In this article we walk through three companies that reallocated budget and tactics around RPS (revenue per session). Why RPS? Because a reversal happens: the channel with the highest CVR can finish last on RPS.
Table of contents
TL;DR#
-
Allocate ad budget by RPS, not CVR
RPS = revenue per session = AOV × CVR. Even the channel with the highest CVR can finish last on RPS if its AOV is low
-
The three reallocations landed at apparel +15%, general goods +8%, food +22%
Company A rebalanced channels, Company B worked the AOV lever when channel gaps were small, Company C fixed its measurement. Different industries, same decision axis
-
When measurement drifts, RPS itself becomes a false signal
UTM naming drift, missed conversion counts, and last-touch-only evaluation had Company C pushing budget to the wrong channel for three months
-
The idea is simple; the grind is the manual repetition
The RPS breakdown is a single multiplication. But lining it up across channels the same way every time is heavy work, and that's where decisions stall
1. The three cases and how to read RPS and CVR together#
Bottom line: Allocate ad budget by RPS, not by CVR or ROAS alone. RPS is revenue per session, and it breaks down into AOV (average order value) × CVR (purchase rate). Push budget by CVR alone and it piles into low-ticket channels, capping your revenue efficiency (the fundamentals are covered in The Complete Guide to RPS).
Here are the three companies. Case A is an apparel ecommerce store: Meta ads looked like the CVR winner, so budget was concentrated there. Case B is a general-goods store: RPS was nearly identical across channels, and the team was stuck on what to do next. Case C is a D2C food store: measurement gaps had skewed the RPS numbers themselves, and the first moves went the wrong way. All three reallocated budget and tactics around RPS, and RPS improved +15%, +8%, and +22% respectively.

Why does CVR alone lead you astray? Because CVR only tells you "what share bought" — it says nothing about "how much they bought." The full comparison of the two metrics is in RPS vs. CVR, but the key point is this: plot each channel on the two axes of RPS and CVR, and the CVR ranking and the RPS ranking can flip. Case A, up next, is exactly that reversal.
2. Case A, apparel: the top-CVR channel finished last on RPS#
Bottom line: The channel with the highest CVR finished last on RPS. At an apparel store doing ¥25M in monthly revenue, Meta ads posted a CVR of 2.1% — the best of any channel — and held 70% of the budget. But on RPS, Meta traffic came in at ¥72, below Google Search ads at ¥110 and organic search at ¥95. Dead last.
The trick was AOV. Average order value via Meta was ¥3,400 — less than half of Google Search ads at ¥7,800. Low-ticket items dominated Meta's sales, so even though "the share who bought" was high, "the revenue one visit generates" was small. A high CVR does not guarantee high ad efficiency. Plot the channels on the two axes of RPS and CVR and this positioning becomes obvious at a glance.

Company A cut Meta's budget share from 70% to 40% and shifted the difference into Google Search ads and organic search investment. On the Meta side, the ad setup was reworked to prioritize higher-ticket items. Three months later, sitewide RPS improved from ¥85 to ¥98 — +15%. The apparel-industry RPS median is roughly ¥90, so this brought the company back above the median. For where your own industry's bar sits, see the RPS Benchmarks by Industry.
3. Case B, general goods: when channel gaps are small, work the AOV lever#
Bottom line: When RPS barely differs across channels, the lever is AOV — not budget reallocation. At a household-goods store doing ¥12M in monthly revenue, per-channel RPS was tightly clustered: Meta ¥68, Google Search ¥82, Yahoo! ¥71, organic ¥78. No matter how the budget moved, nothing meaningful changed.
The structural problem was on the site, not in the channels. AOV was low at ¥3,200, and most orders ended with a single item. Company B left the channel split untouched and instead raised the free-shipping threshold and strengthened "frequently bought together" recommendations, lifting AOV to ¥4,100. CVR dipped slightly from 1.6% to 1.55%, but RPS — the product of the two — improved from ¥75 to ¥81, +8%.
Since RPS is the multiplication AOV × CVR, there are two variables to work with. If the gaps between channels are small, the one to move may be AOV, not CVR. The playbook for lifting AOV is in the Guide to Improving AOV.
4. Case C, food: fixing measurement gaps lifted RPS +22%#
Bottom line: Deciding by RPS presupposes accurate measurement. A D2C food store doing ¥48M in monthly revenue adopted RPS-first budget allocation — yet for the first three months, RPS barely moved, from ¥125 to ¥128. The cause wasn't the tactics. The decision inputs themselves were skewed.
Three distortions were at work. UTM naming drift split the same channel into separate buckets. Browser cookie limits caused missed conversion counts on Meta traffic. And revenue was credited to the last touch only, hiding the contribution of assisting channels. Comparing RPS in that state, the team cut budget from Meta — which was actually earning — and pushed it the wrong way.
In month four, Company C pivoted to rebuilding its measurement: normalizing the naming drift, re-pulling revenue data, and re-reading the numbers under multiple attribution models (the calculation rules for which touchpoint gets credit for a sale). The idea itself is simple. But lining this up across channels every time, switching models and comparing — done by hand, it's heavy work, and running it monthly is heavier still. In the three months after the fix, RPS climbed from ¥128 to ¥152, reaching +22% cumulative from the start.

What the three companies share is a single pattern: break RPS and AOV down by channel, and compare them on top of accurate measurement. How to build that pattern into a dashboard is covered in Revenue Dashboard Design. And the grind of running that pattern by hand, every time, is exactly where the following solution comes in.
RevenueScope Solution
Bottom line: RevenueScope puts the per-channel RPS and AOV breakdown, plus attribution-model switching, on one screen. When ad spend is connected (Path B), measured ROAS, saturation, and a budget allocation suggestion appear alongside them. The "line it up and compare" repetition that Company C struggled through by hand is carried by the screen, so you can focus on the decision: which channel gets the budget next.
Let's look at actual numbers from the screen — a sample ecommerce store used for the demo, 90 days of data.
| Channel | RPS | ROAS | Saturation |
|---|---|---|---|
| Meta ads | ¥132 | 1.86 | 67% |
| Google Ads | ¥116 | 3.18 | 49% |
| ChatGPT (non-ad, reference) | ¥622 | — | — |
| Direct (non-ad, reference) | ¥570 | — | — |
(Fictional ecommerce store on sample data [RevenueScope demo], ad spend connected [Path B])
The two ad channels ran 419 sessions on Meta and 302 on Google Ads, with RPS at ¥132 and ¥116 — low next to ChatGPT traffic at ¥622, direct at ¥570, and Google Search at ¥304. Staring at CVR or ROAS alone gets you no answer here. Meta sits at 67% saturation: territory where stacking more budget yields little. Google Ads, meanwhile, shows ROAS 3.18 at 49% saturation — room left to grow. Only when RPS and saturation sit side by side does the next move become clear: push Google Ads.
What RevenueScope does is line up revenue-based RPS, ROAS, and saturation on one screen and put the inputs for your budget decision in front of you. Rather than tracking gross margin or LTV, it specializes in revenue-per-session metrics, carrying the line-it-up-and-compare repetition on the screen side. That's what frees you to focus on the next move: which channel gets the budget.
FAQ#
Q. Is it wrong to push budget to the channel with the highest CVR?
A. Not necessarily wrong — but CVR alone can't make the call. As in Case A, the CVR winner can finish last on RPS if its AOV is low. The safe move is to break each channel down to RPS (= AOV × CVR) before deciding.
Q. How do I know whether my RPS is good or bad?
A. Compare it to your industry's median. Apparel sits around ¥90, food and D2C around ¥135 — RPS levels differ by 2-3× across industries. Your absolute number alone can't tell you whether there's headroom to improve.
Q. Can I see ROAS and saturation without connecting ad spend?
A. No. Measured ROAS, saturation, and the budget allocation suggestion appear only on Path B, with ad spend connected. Before connecting, you can still use the per-channel RPS and AOV breakdown and attribution-model switching.
Wrap-up: one pattern behind all three cases#
Ad budget allocation never settles on CVR or ROAS alone. Break it down to RPS = AOV × CVR and the reversal comes into view: the top-CVR channel finishing last on RPS. Company A rebalanced channels for +15%, Company B worked the AOV lever when channel gaps were small for +8%, and Company C fixed its measurement for +22%. What all three share is one pattern: compare RPS by channel, on top of accurate measurement. The idea is simple, but the manual repetition of lining it up, over and over, is heavy. Hand that repetition to the screen and keep only the decision. That's the shortest way past the plateau.
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.






