A channel's dashboard can go up on the same day total company revenue stands still — because the channel didn't create demand, it just caught demand that was headed there anyway.
TL;DR
- Cannibalization is a measurement failure, not a channel failure. A test can show a real, statistically valid lift on its own metric while contributing zero incremental revenue to the business.
- The tell is a channel-level win paired with a flat or declining total. If paid search clicks rise but total referral revenue doesn't move, paid search didn't create the sale — it took credit for one that was already happening.
- Three patterns cover most real cases: a paid channel capturing traffic that would have converted for free, one internal channel capturing traffic from another internal channel, and a UI change that increases volume but degrades the quality of what's being sent downstream.
- The fix isn't to stop testing channels in isolation — it's to add a pooled, incremental view (holdout groups, geo experiments, or a substitution check) before trusting any single channel's reported number.
| What the channel dashboard shows | What incremental measurement shows |
|---|---|
| Paid search clicks and conversions both up | Total referral revenue for the business is flat — paid search cannibalized direct/organic |
| App deal-alert clicks up, "app performance" looks great | Email clicks down by a similar amount — total conversions unchanged |
| Outbound clicks to advertisers up after a UI change | Advertiser conversion quality down; CPC revenue gain reverses once bids adjust |
Cannibalization, simply: a channel, feature, or test takes credit for revenue the business was already going to get through a different path. The topline metric for that one channel goes up. The metric that actually matters — total incremental revenue, or contribution margin — doesn't.
The channel metric and the business metric are answering different questions
A channel report answers "did this channel's number go up?" That's a narrow, easy question, and it's the one most dashboards are built to answer. The business question is different: "if this channel didn't exist, would the company have made less money?" Those two questions produce the same answer only when the channel is reaching people it wouldn't otherwise reach.
Most attribution systems can't tell these two questions apart, because they credit whichever touchpoint happened last or closest to the conversion — not whichever touchpoint caused it. A user who was always going to type a brand name into Google and click the top result gets counted as a "paid search conversion" if a brand ad happens to be sitting in that slot. Nothing about the ad changed the outcome. It just intercepted a conversion that was already in motion and let paid search take the credit.
This is the mechanism behind almost every cannibalization story: a metric that's real, a channel that's real, and a causal claim that isn't. The lift is measured correctly. It's just measuring the wrong thing — displacement instead of creation.
Case one: a paid channel capturing traffic that was coming anyway
Take an online travel marketplace — a hotel metasearch platform like Trivago is the textbook version of this. Paid search spend goes up, clicks on the site go up, and the paid-channel report looks like a clean win. But some meaningful share of the people who clicked the ad would have typed the brand name directly, or clicked the top organic result, and landed on the exact same page anyway. Paid search takes the attribution credit; direct and organic traffic quietly fall by a similar amount; total referral revenue for the business doesn't move.
Hotel marketing research puts rough bounds on this: if roughly 40% of a metasearch campaign's traffic would have booked organically anyway, some cannibalization is normal and tolerable; once it crosses somewhere around 50%, the business is paying for bookings it would have gotten for free (SiteMinder, *Metasearch engine: Definition and examples for hotels*). The number moves by property and by market — the diagnostic, not the exact threshold, is the point: you cannot know your real cannibalization rate from the paid channel's own dashboard. You need a comparison to what would have happened without the spend.
The canonical evidence for this comes from outside travel. In a large-scale field experiment at eBay, researchers found that for people whose search already included the brand name, turning brand-keyword paid search off cost the company almost nothing — about 99.5% of the traffic the ads would have driven showed up through organic search anyway (Blake, Nosko & Tadelis, *Consumer Heterogeneity and Paid Search Effectiveness*, Econometrica 2015). Natural search was a near-perfect substitute for paid search on branded terms. That's cannibalization at its purest: a channel with a real, positive, statistically significant metric — and almost zero incremental effect on the business.
Case two: one internal channel capturing volume from another
Cannibalization doesn't require an external advertiser. It shows up just as often between two channels the same company owns. A deal-alert push notification increases app clicks. Reported in isolation, that's a win for the app team. But if the same users would have opened the deal from an email later that day, the notification didn't create a purchase — it moved the purchase from one internal channel's ledger to another's. App engagement looks better. Email engagement looks worse. Total conversions and total revenue stay exactly where they were.
The diagnostic is the same one that catches this at the page level, just applied across channels instead of across buttons on a page: pull the metric that both channels would have claimed credit for, and check whether the pooled total moved, not just each channel's individual number. This is precisely the pattern a related diagnostic on this site walks through for CTA-level testing — CTA cannibalization is the same substitution mechanism at the scale of a single page instead of a marketing channel. If you've read that piece, this is the channel-level version of the identical failure mode.
Case three: a UI change that trades quality for volume
The third pattern is subtler because the topline metric it inflates isn't even revenue — it's an intermediate metric like clicks. A product change increases outbound clicks to advertisers. In a cost-per-click model, more clicks reads as more revenue, and short-term CPC revenue often does rise. But if the change surfaced lower-intent traffic — users who weren't close to converting, browsing rather than buying — advertiser conversion quality on those clicks falls. Advertisers notice. Bids adjust downward at the next auction cycle, or budgets shift to a competing platform. The short-term win reverses on a lag long enough that the team that shipped the change has usually moved on to the next test by the time the bid data catches up.
This is the version of cannibalization that a single-metric dashboard is worst at catching, because the metric it inflates (clicks) and the metric it damages (advertiser LTV, bid quality) live in different reports, often owned by different teams, on different reporting cadences.
The diagnostic: three questions before you trust any channel's number
A pattern that shows up after running incrementality checks across enough tests, in enough industries: the failure mode is nearly always the same shape, whether the channel is paid media, an internal notification, or a UI surface. Three questions catch most of it.
- The counterfactual question. Would this conversion likely have happened through a different path if this channel or test didn't exist? If yes for a meaningful share of the volume, the channel's reported number is overstating its causal contribution.
- The pooled-metric question. Does the total across every channel that could plausibly get credit for this conversion move — or does only the channel you're evaluating move, while a sibling channel falls by a similar amount? A win that only exists in one channel's report and disappears in the pooled total is a redistribution, not a lift.
- The margin question. Is contribution margin — not just conversions or clicks — improving? Volume gains that come with lower-intent traffic or lower advertiser quality can look identical to real growth in a conversions-only report and look like a loss the moment margin gets pulled in.
If a test fails any one of these, it doesn't automatically mean don't ship it — a genuinely additive channel expansion can still be worth the operational cost even with some overlap. It means the team is making that call with the real number, not the channel-reported one.
The only way to answer the counterfactual question with confidence is a design that has a version of "this channel didn't run" built in — a holdout group, a geo experiment, or an incrementality test rather than a before/after comparison on the channel's own metric. When I designed a geo-incrementality holdout experiment to measure offline advertising's effect on digital demand, the raw last-click number and the incremental number weren't close — a meaningful share of what last-click attribution wanted to credit to the campaign showed up in the holdout markets too, meaning it would have happened regardless. The full geo-incrementality writeup walks through the experiment design. It's the same substitution logic as the eBay study, applied with a control market instead of a control keyword.
This finding isn't unique to advertising, either — it shows up in some of the most cited incrementality research in the field. A large field experiment run through Yahoo! found that a majority of an ad campaign's true incremental lift showed up among people who never clicked the ad at all, which means click-based attribution was crediting the wrong users almost entirely (Johnson, Lewis & Reiley, *Online ads and offline sales*, Quantitative Marketing and Economics 2017). If the measurement method can be that wrong about which users convert, it can be just as wrong about which channel deserves the credit.
FAQ
Is channel cannibalization the same thing as keyword cannibalization in SEO?
No, and the shared word causes real confusion. Keyword cannibalization is when two of your own pages compete for the same search query and split its ranking signal. Channel cannibalization is a measurement problem — one channel gets credited with a conversion that another channel (or no marketing spend at all) would have produced anyway. Same root word, unrelated mechanisms.
Does finding cannibalization mean the test or channel should be killed?
Not automatically. Some redistribution is a fair price for reach, brand safety, or defending a channel against a competitor's bid on your own brand terms. The point of the diagnostic isn't to force every overlapping channel to zero — it's to make the ship/kill decision using the incremental number instead of the channel-reported one.
How much cannibalization is "normal"?
It varies by category and there's no universal threshold, but as a general anchor, hotel metasearch practitioners treat roughly 40% pass-through as tolerable overlap and treat crossing roughly 50% as a signal of overspend. The number that matters is your own, measured with a holdout or control group — industry anchors tell you when to get worried, not what your answer is.
What's the difference between cannibalization and the halo effect?
They're mirror images. Cannibalization is when a channel takes credit for revenue another channel would have produced — the total doesn't grow. The halo effect is when investment in one channel or campaign lifts a different channel's performance for reasons the second channel's own dashboard can't see — the total does grow, just not where the report says it grew. Both are attribution illusions; they point in opposite directions.
If last-click and multi-touch attribution can both hide cannibalization, what should teams use instead?
Attribution models are useful for planning and budget allocation, but neither last-click nor multi-touch was built to answer the counterfactual "would this have happened anyway" question — that requires a holdout or control group, not a better weighting scheme. A deeper look at why attribution models fall short here covers the gap between correlation-based credit assignment and causal measurement in more depth. How holdout tests prove incremental revenue covers the control-group side of the fix.
Bottom line
A channel's own metric can be accurate and still be the wrong thing to trust, because accuracy and causality are different properties. The question that actually matters isn't "did this channel's number go up," it's "would the company have made less money without it" — and answering that requires a counterfactual, not a bigger dashboard. Before scaling budget or headcount based on a channel win, run the three-question check: counterfactual, pooled metric, margin. Teams that skip it end up optimizing the metric that's easiest to move instead of the one that's actually tied to the P&L.
Tools like GrowthLayer are built around exactly this gap — turning incrementality checks into a repeatable step in the experimentation process instead of a one-off analysis someone has to remember to run. If channel-level reporting is driving budget decisions on your team right now, subscribe to Lean Experiments for the diagnostics that catch this before the budget gets reallocated on a false signal.