Every marketing leader is eventually asked the same blunt question: what are we getting for all this spend? Answering it well, across paid, organic, email, and everything in between, is harder than it should be, mostly because the data lives in a dozen disconnected places. This guide lays out how to track marketing ROI across every channel: the formula, the data you actually need to connect, the pitfalls that quietly distort the number, and how a blended dashboard ties spend to revenue without a weekly spreadsheet ritual.
The marketing ROI formula
Marketing ROI measures the return you earn relative to what you spent on marketing. The standard formula is:
Marketing ROI = (revenue from marketing minus marketing cost) / marketing cost
Expressed as a percentage. If marketing drove $300,000 in revenue at a cost of $100,000, ROI is ($300,000 minus $100,000) / $100,000 = 200 percent. You earned two dollars of return for every dollar spent, on top of getting your dollar back.
For an honest read, use gross profit rather than raw revenue, because revenue ignores the cost of the goods. The profit-true version is:
Marketing ROI = (gross profit from marketing minus marketing cost) / marketing cost
That keeps you from celebrating revenue that never actually became money you keep.
A worked marketing ROI example
| Input | Value |
|---|---|
| Revenue attributable to marketing | $300,000 |
| Gross margin | 50% |
| Gross profit from marketing | $150,000 |
| Total marketing cost | $100,000 |
| Profit-true ROI | ($150,000 - $100,000) / $100,000 = 50% |
The revenue-based ROI looked like 200 percent, but the profit-true ROI is 50 percent. Both are correct answers to different questions. Decide which you mean and report it consistently.
The data you need to connect
Tracking ROI across every channel means uniting three categories of data, in one place, over the same window.
- All marketing cost. Ad spend from Google Ads, Meta Ads, and TikTok Ads, plus email and SMS tools, agency retainers, affiliate payouts, and software.
- True revenue. Actual orders and payments from Shopify and Stripe, not platform-claimed revenue.
- Behavioral context. Traffic and conversion data from GA4 and Search Console, and customer and pipeline data from Klaviyo and HubSpot, to understand how channels assist one another.
The hard part is not any single source. It is lining them all up to the same time window with consistent definitions so the ROI you compute is real.
The pitfalls that distort marketing ROI
1. Trusting platform-attributed revenue
Each ad platform reports the revenue it claims credit for, on its own attribution window. Sum those and you over count, because the same sale gets claimed by several channels. Always reconcile against your true total revenue from orders and payments. Sorting out who really contributed is the work of multi-channel attribution.
2. Ignoring the assist channels
Last-click measurement gives all credit to the final touch and zero to everything that warmed the customer up. Branded search looks like a hero while the top-of-funnel social ad that created the demand looks worthless. Watching blended ROI and MER alongside channel numbers keeps you from cutting the channels that quietly feed the rest.
3. Mismatched time windows
If you compare this month's revenue to last month's spend, or count spend and revenue on different windows, ROI wanders for no real reason. Keep the numerator and denominator on the same period.
4. Counting only ad spend as cost
Leaving out retainers, tools, and salaries understates cost and overstates ROI. A complete cost figure is less flattering but far more useful.
Short-cycle versus long-cycle ROI
How you track ROI depends heavily on how long it takes a customer to convert. For ecommerce and other short-cycle businesses, a click often becomes a sale the same week, so monthly ROI is meaningful and quick to read. For B2B, considered purchases, and subscription products, the cycle can run months, and a single month's spend and revenue tell you almost nothing because the revenue has not landed yet.
For long-cycle businesses, track leading indicators alongside ROI: cost per qualified lead, pipeline created, and win rate, all of which you can measure now, then reconcile to true ROI as deals close. The data lives in your CRM rather than your cart, but the discipline is the same, connect complete cost to true revenue over a window that matches your sales cycle. Reporting a one-month ROI on a six-month cycle is one of the most common ways teams talk themselves into cutting a channel that was actually working.
Marginal ROI is more useful than average ROI
Average ROI tells you how the whole budget performed. Marginal ROI tells you what the next dollar will do, and that is the number that should drive budget decisions. A channel can have a strong average ROI and a weak marginal ROI, meaning it has already captured its best opportunities and additional spend returns little. The way to spot this is to watch ROI as you increase spend: if revenue rises proportionally, marginal ROI is healthy and you can scale; if revenue flattens while spend climbs, you have hit diminishing returns and the money is better deployed elsewhere. Average ROI hides that wall. Marginal ROI shows you exactly where it is.
Track blended ROI first, then go channel by channel
The most reliable way to track marketing ROI is top-down. Start with the blended view: total gross profit from marketing against total marketing cost. This number cannot be inflated by attribution games and matches reality. Then layer channel-level ROI and ROAS underneath it to decide where to shift budget. The blended number tells you whether the machine works. The channel numbers tell you which levers to pull. For the broader set of metrics that sit around ROI, see the marketing KPIs to track guide, and the what is ROAS explainer for the ad-spend lens specifically.
How a blended dashboard ties it together
Doing all of this by hand means exporting from every platform, pasting into a sheet, reconciling revenue against Shopify and Stripe, and rebuilding it next week. It is slow, fragile, and usually a week out of date by the time anyone reads it.
This is precisely what MixedMetrics is built for. It connects read-only to GA4, Google Ads, Meta Ads, TikTok Ads, Search Console, Shopify, Stripe, Klaviyo, and HubSpot, then blends every source into one live view of marketing ROI, blended ROAS, MER, CAC, and revenue by channel. The AI layer surfaces what changed and where money is leaking, so a falling channel or a creeping cost shows up as an alert rather than a surprise at month end. You can hand stakeholders an automated marketing report instead of rebuilding a spreadsheet every Monday.
Tracking marketing ROI well is not about a fancier formula. It is about connecting complete costs to true revenue, on the same window, across every channel, and keeping it current. Get that right and the question "what are we getting for our spend" finally has an answer you can defend.
Track marketing ROI across every channel
Connect your channels once and let MixedMetrics tie complete spend to true revenue on one live dashboard.
See how MixedMetrics works for your kind of team on the use cases page.
MIXEDMETRICS // GET STARTED
See this metric live across every channel
Connect your ad platforms, store, and billing through read-only connectors and watch blended ROAS, CAC, MER, LTV, and revenue by channel land in one live dashboard.