Why one ROAS number doesn't work for a multi-product or multi-offer business

When your site sells more than one thing, a single blended ROAS figure can hide contamination between campaigns and mask which product lines are actually profitable.

By Melvin Salas, Director & Co-founder, Riibon · Last verified: 2026-07-24

One number, two hidden problems

If you sell one product at one price, ROAS (return on ad spend: revenue generated divided by what you spent to generate it) is a clean number. Spend $1,000, get $4,000 in tracked revenue, you're at 4x. Simple. But almost no real business is that simple for long. You add a second product, a subscription tier, a service upsell, a seasonal offer. The moment you do, a single ROAS number stops measuring what you think it measures, and two separate mechanisms are usually responsible: one is a tracking problem, the other is a math problem. Both make a healthy-looking number lie to you.

Mechanism one: shared-pixel contamination

Both Meta and Google track conversions with a small piece of tracking code (commonly called a "pixel" for Meta, or a "tag" for Google) that fires on your website when a visitor completes an action you've defined as a conversion, usually a purchase. Here's the problem: most sites set up one conversion event, often literally named "Purchase," and that single event fires for every checkout on the site, regardless of what was actually bought. If you sell a $30 product and a $300 service off the same checkout flow, both purchases fire the exact same event.

Now put a campaign in front of that setup. Say you run one campaign that markets specifically to people interested in the $300 service. Because the site only has one "Purchase" event, the ad platform will still attribute conversions to that campaign if someone who saw the ad also happened to buy the unrelated $30 product elsewhere on the site during the attribution window (the time period, e.g. 7 days after clicking, in which a purchase still gets credited to the ad). The campaign's reported ROAS goes up or down based on purchases it had nothing to do with. This isn't a rare edge case, it's the default outcome any time a business with more than one offer sets up tracking without thinking about it, which is most businesses in their first year of running ads.

The instinct is to fix this with a technical split, build separate conversion events for each product, and platforms do support that. But a full event split isn't always worth doing, especially early on, because it takes engineering time and can fragment the data the ad platform's optimization algorithm needs to work well (these algorithms perform better with more conversion volume flowing into one event, not less). Often the more practical fix is a reporting discipline instead: explicitly flag on any campaign-specific report that its standalone ROAS may include contamination from the other offer, never scale ad spend purely off that one number, and independently check the real volume of the "clean" product against a source of truth that isn't the pixel, your payment processor's transaction log or your order management system. If the pixel says a campaign drove 40 sales this week but your order system shows 22 orders for that exact product, you've just quantified the contamination instead of guessing at it.

Mechanism two: blended ROAS hides product-line profitability

The second problem shows up even when tracking is perfectly clean. Say your account-level ROAS is a comfortable 4x. That number is an average, and averages hide their inputs. If your business sells a high-margin product alongside a low-margin one, or a premium service alongside an entry-level one, a single blended ROAS can average a genuinely unprofitable line together with a highly profitable one and report back a number that looks fine.

Here's a hypothetical to make it concrete (not a real client result, just illustration of the mechanic): imagine a business with two product lines under one ad account. Product A costs the business very little to fulfill and returns 8x on ad spend. Product B has thin margins, high fulfillment costs, and returns 2x. If Product B's true breakeven point (the ROAS at which ad spend stops being profitable once you account for cost of goods, fulfillment, and overhead) is actually 3x, that product is quietly losing money on every ad-driven sale, while Product A's performance drags the blended number up to a reassuring 4x-5x average. Looking at the account total, you'd never know.

This matters because the business owner making budget decisions from that one number will do the wrong thing twice: they'll feel comfortable increasing spend on a line that's actually bleeding cash, and they won't recognize that the strongest line deserves more budget than it's getting, because it's not standing out from the blend. ROAS as a single top-line metric answers "is this working overall" and nothing else. It can't tell you where the money is actually being made.

The fix is the same instinct as the tracking problem, don't manage to one number when the business isn't structured as one number. Segment ROAS and set separate performance targets by product or offer wherever the margin structure meaningfully differs (you don't need to fragment reporting for two products with near-identical margins, only where the difference is large enough to change a decision). Once product lines have their own targets, calibrated to their own breakeven point rather than a shared average, budget decisions stop being guesses dressed up as a healthy-looking headline number.

Why both problems compound

These two mechanisms often show up in the same business at the same time, and they compound each other. Contamination distorts individual campaign numbers; blending distorts the account-level summary. If you only fix one, the other is still quietly misleading you. A business that splits reporting by product line but is still reading contaminated per-campaign numbers will set the right targets against the wrong inputs. A business that fixes tracking cleanly but still manages to one blended ROAS will make correct campaign-level decisions inside a strategy that's aimed at the wrong overall target.

Neither problem gets solved by working harder inside the ad platform's dashboard. Both require stepping outside it, toward your actual order data and your actual margin structure, and building your reporting to match how your business is genuinely structured rather than how the ad platform's default setup happens to bucket things.

← All articles