Digital ad campaign ROI: the multi-channel comparison marketing teams rarely run
Calculating the ROI of an isolated campaign is elementary math. The problem starts when you need to distribute budget between Meta, Google, TikTok, YouTube, programmatic display and LinkedIn, each with its own CPC, conversion rate and attribution window. The difference between a profitable ad portfolio and one that burns cash usually sits in three elements marketers overlook: the per-channel break-even ROAS, the diminishing-returns curve, and the per-platform differentiated payback period.
ROI vs ROAS: why they are not the same
It is the most expensive confusion in digital marketing.
- ROAS (Return on Ad Spend) = Revenue generated ÷ Ad spend. Does not consider product cost, shipping, returns or operating expenses.
- Ad ROI = (Revenue − COGS − Ad spend − Operating costs) ÷ Ad spend.
A 3x ROAS sounds good until you realize that with 60% gross margin and 10% fixed cost, the real break-even ROAS is 2x. A 3x ROAS is leaving only 33% profit on ad spend — not comfortable, and if there are returns or discounts, net profit evaporates.
Break-even ROAS formula:
Break-even ROAS = 1 ÷ Contribution margin
If your contribution margin is 40%, you need ROAS ≥ 2.5x just to break even. If it is 25% (ecommerce with free shipping), you need ROAS ≥ 4x. Almost no free calculator asks you for your margin as input — that is why most marketers optimize for ROAS without knowing whether they are above or below break-even.
2024 ROAS benchmarks by industry
Aggregated data from WordStream, HubSpot Ad Benchmarks 2024 and Meta Business Insights:
- Ecommerce fashion/beauty: average ROAS 3.2x — 4.5x
- Ecommerce home: 2.5x — 3.8x
- B2B SaaS: ROAS of 1.5x — 2.5x is acceptable (long LTV compensates)
- Online education / courses: 3x — 5x
- Local professional services: 4x — 8x (low tickets, high frequency)
- Lead generation: cost-per-lead more relevant than direct ROAS
These are averages — your real break-even depends on your margin. An ecommerce with ROAS 3.5x and 20% margin is losing; with 50% margin it is winning comfortably.
CAC, LTV and per-channel payback
The multi-channel view adds a complexity layer generic calculators miss: payback period varies drastically by platform. 2024 benchmark data:
- Google Search: D7 payback (high-intent users, fast conversion)
- Meta (Facebook + Instagram): D30 average payback
- TikTok Ads: D45-D60 payback (younger audience, lower average ticket, slow recurrence)
- YouTube Ads (view-through): D45-D90 payback
- LinkedIn B2B: D60-D180 payback (long sales cycles)
This means evaluating TikTok against Google with the same 14-day attribution window is apples to oranges. The correct metric is LTV:CAC by channel, with differentiated windows:
LTV:CAC = (Average revenue × Frequency × Margin × Retention months) ÷ Channel CAC
A 3:1 ratio is a healthy standard. Below 1:1 the channel is burning money on every acquisition.
Diminishing returns curve
The most common systemic error: assuming that doubling budget doubles results. In reality each channel has a saturation curve. Example:
- Meta campaign at $1,000/day → CPC $0.80, 1,250 clicks/day, CR 3% → 37 conversions
- Same campaign at $3,000/day → CPC $1.40 (exhausted audience, Meta raises bid), CR 2.2% → 47 conversions
You tripled spend and only got 27% more conversions. The effective CPA went from $27 to $64. Modeling this curve is the difference between scaling with control and burning budget. The simulator takes your current CPA, scales budget, and estimates the point where each additional dollar earns less than the break-even benchmark.
Attribution models: same spend, three truths
Platforms report conversions under different models:
- Last click: credits the last touchpoint (Google Analytics default up to GA4). Overvalues search.
- First click: credits the first touchpoint. Overvalues awareness (YouTube, TikTok).
- Linear: distributes credit equally. Neutral.
- Data-driven (MMM / incrementality testing): gold standard — measures real incrementality running geo or holdout tests. Expensive but exact.
The same $10,000 spent on Meta can report ROAS 2.8x (last click in GA4), 4.1x (first click in Meta Ads Manager), 3.3x (linear) and 2.1x (MMM-adjusted). All are true under their frame. For budget decisions, MMM or incrementality is the reference. For daily optimization, pick a model and be consistent.
Full numeric example
30-day campaign: total budget $10,000, distributed $5,000 Google Search + $3,500 Meta + $1,500 TikTok.
- Google: 8,200 clicks × CR 4.2% = 344 leads × close rate 18% = 62 sales × average ticket $180 = $11,160 revenue, ROAS 2.23x. Payback D7.
- Meta: 11,600 clicks × CR 2.8% = 325 leads × close rate 14% = 45 sales × $180 = $8,100 revenue, ROAS 2.31x. Payback D30.
- TikTok: 9,800 clicks × CR 1.9% = 186 leads × close rate 9% = 17 sales × $180 = $3,060 revenue, ROAS 2.04x. Payback D45.
Total: 350 leads converted into 42 sales, $22,320 revenue on $10,000 spend = global ROAS 2.23x. With 45% contribution margin, break-even is 2.22x — the campaign is right at the break-even line, barely covering ad spend with no profit.
The simulator shows you this before executing: if your margin were 55%, break-even would drop to 1.82x and the campaign would leave $2,200 in profit. If it were 35%, break-even would rise to 2.86x and the campaign would lose $6,400 even with ROAS 2.23x.
How to use the simulator
Enter: (1) total budget and per-channel distribution, (2) historical CPA per channel (or your industry benchmark if first time), (3) contribution margin (to compute break-even), (4) average ticket and repurchase frequency (for LTV), (5) per-channel saturation curve (optional — applies standard elasticity by default). Output: expected ROAS per channel, net ROI, payback period, required break-even ROAS and budget reallocation recommendation toward the channel with best marginal efficiency.
Decision framework: scale, hold or cut a channel?
Each month your simulator should run this 4-question sequence per channel:
- Is the channel's ROAS above break-even? If not, cut budget immediately unless you have an incrementality test proving otherwise.
- Is the marginal CPA of the last 20% of budget above target CPA? If yes, you are in diminishing returns — stop scaling.
- Is channel LTV:CAC ≥ 3:1 adjusted for payback period? If not, the channel is bringing low-quality customers — optimize creative/targeting before maintaining.
- Does measured incrementality (geo holdout or lift study) confirm the channel contributes sales that would not have occurred in another channel? If not (e.g., TikTok cannibalizes Meta on 70%+ of conversions), reallocate budget.
This framework is what separates senior operators from teams that only optimize platform ROAS. HubSpot's calculator and most free tools only answer question 1. The multi-channel simulator integrates all 4.
Creative as a ROAS multiplier
Meta and TikTok agree on a key finding in their 2024 Creative Best Practices: the top quintile of creatives yields 2-4x the ROAS of median creative in the same account. It is the highest multiplier available inside the same bidding structure. This means before reallocating budget it pays to ask whether the problem is the channel or the creative inside the channel. Signals that the creative is exhausted: Meta frequency > 3.5, CTR in decline over 3 consecutive weeks, CPC rising without market explanation. The simulator includes an optional creative refresh cadence field that adjusts the saturation curve — teams with weekly refresh can scale 30%-40% more before hitting diminishing returns than teams with static creative.
Payback period and its impact on cash flow
Many marketers confuse ROAS with cash flow. A Meta campaign with 3x ROAS and D30 payback means every $10,000 spent becomes $30,000... 30 days later. If the company scales spend from $50K to $100K/month, it needs $150K of extra cash to cover the lag between spend and recovery. Many healthy ecommerce brands go under scaling ads without modeling this effect. The simulator includes a per-channel cash flow projection that sums spend and expected revenue with the appropriate payback windows, especially useful for bootstrapped brands without a credit line.
Applying the framework platform by platform
The same multi-channel simulator covers Meta, Google and TikTok with the right inputs. Three calibrations make a real difference:
Meta (Facebook + Instagram). Since iOS 14.5 (ATT, App Tracking Transparency), 40-70% of iOS users decline cross-app tracking, so reported ROAS in Ads Manager underestimates real performance by 20-35%. Set up the Conversions API (CAPI) server-side so the simulator reads de-duplicated conversions; if you do not, raise your target ROAS by ~25% to compensate for the gap and use a 7-day click + 1-day view attribution window. Median saturation curve in DTC: each $1k beyond your historical baseline grows volume by 22-28% (decreasing). Refresh creatives weekly when the Meta frequency exceeds 3.5.
Google Ads. Differentiate between Search, Shopping and Performance Max because each one has its own break-even ROAS. Search bids on intent (target ROAS works after 30 days of data); Shopping depends on the product feed (margin, image, title); Performance Max blends placements and asks for conversion value goals (the simulator's contribution-margin field maps to that goal). Quality Score below 6 increases CPC 30-100%: feed it back into the simulator before deciding whether the channel is genuinely saturated. Default payback D7-D14 for high intent.
TikTok Ads. Payback is 45-60 days in DTC and 60-90 in B2B because the audience is younger and recurrence kicks in slowly. Run incrementality tests (geo holdout) before scaling — TikTok cannibalizes 60-78% of conversions that would have happened on Meta or Google. Use Spark Ads (boost organic creators) when the cost per acquisition exceeds the median, and rotate creatives every 7-10 days so the saturation curve stays usable. Vertical 9:16 video with hook in the first 3 seconds outperforms produced creative by 2-3x.
The simulator's framework does not change between platforms — what changes is the attribution window, the recommended target ROAS and the saturation curve. Update those three knobs before reading the result.