Are Your Meta Ads Actually Driving Sales, or Just Taking Credit for Them?

Your ROAS dashboard rarely matches the revenue in your bank account. How to run a holdout test that shows which ad spend drives sales on Meta and TikTok.

By Yannis Spanenburg · · 7 min read

Your Meta Ads Manager says your prospecting campaign returned 4.2x ROAS last month. The revenue in your bank account falls short of what that figure implies. Somewhere between those two numbers sits the spend that never caused a sale.

What is incrementality testing?

Incrementality testing is a controlled experiment that measures how many conversions an ad channel causes, rather than how many the platform's reporting credits to it. You deliberately hold back a portion of your audience from seeing the ads, then compare their conversion rate against the group that saw them. The gap between the two groups is your real, causal lift.

How to run an incrementality test in 6 steps

  1. Pick your single largest prospecting ad set, the one your budget decisions hinge on.
  2. Set up a Meta Conversion Lift study in Ads Manager, or a geo holdout if your audience is too small or the channel has no lift tool.
  3. Hold back between 5 and 20 percent of the audience, toward the larger end if your revenue is volatile.
  4. Run the test for three to four weeks and leave that campaign's budget untouched until the read is in.
  5. Compare the incremental ROAS with the ROAS the platform reports, and split next quarter's budget on the incremental figure.
  6. Re-run the test every one to two quarters, or sooner after a big change in creative, market or budget.

Why does last-click attribution overstate what your ads are doing?

Last-click attribution hands 100 percent of the credit to whichever touchpoint happened last, regardless of what caused the purchase. A shopper sees your product on a friend's Instagram, forgets about it, gets served a retargeting ad three days later, clicks it, and buys. Meta's dashboard logs that as an ad-driven conversion. The sale came from word of mouth, and the retargeting ad was the last thing the shopper clicked.

The same distortion hits branded search, email flows, and any campaign aimed at people who already know your brand. If someone is already deep in your abandoned cart sequence, a retargeting ad that reaches them the same week adds no new demand and competes with your own email flow for credit on the same sale.

Proof of Pixel is a marketing and consulting agency for businesses that live on enquiries and orders, building the website, the tracking and the follow-up as one system, with offices in Dubai, New York, London, Antwerp and Malaysia.

Proof of Pixel's position: ad budgets belong on holdout test results instead of platform-reported ROAS, because the channel that touched a sale last is rarely the channel that caused it.

How do you run a holdout test without an enterprise budget?

Start with the tool you already have access to. Meta's own Conversion Lift study, built into Ads Manager, randomly splits your audience into an exposed group and a holdout group at no extra cost beyond your normal ad spend, and Meta's documentation walks through the setup directly.

If your audience is too small for a clean user-level split, or you are testing a channel without a built-in lift tool, run a geo holdout instead. Turn ads off in a handful of comparable regions or postcodes for the test window, keep spending as normal everywhere else, and compare the revenue trend in the dark regions against a pre-campaign baseline. It is blunter than a platform-native test, but it works on any channel, including channels whose only performance figures are the ones they report themselves.

How long should the test run, and how big should the holdout be?

Meta's own conversion lift tests typically run three to four weeks, long enough to smooth out day-of-week noise without letting the test drag past the point where seasonality starts contaminating the read. For a DTC brand with a longer consideration cycle, lean toward the four-week end rather than three.

Holdout size is a trade-off. Too small and you cannot detect a real effect against normal revenue noise. For a user-level test to have statistical power, the holdout typically needs to sit somewhere in the 5 to 20 percent range. Too large and you are deliberately turning away sales for a month to get a cleaner read, and those lost sales are a real cost. Pick the larger end if your baseline revenue is volatile or you want a tighter confidence interval from a single test, since noisier revenue needs a bigger control group to show the same lift, and the smaller end if revenue is steady and every lost sale hurts.

Does this work for TikTok ads too, or only Meta?

It works for any channel, but Meta is the one with a mature self-serve lift tool built into the ad manager. TikTok does not offer the same one-click holdout test, so a geo split is your most practical option there. TikTok has instead been pushing marketing mix modeling as its preferred measurement path for advertisers who cannot run clean user-level experiments.

What is marketing mix modeling, and do you need it too?

Marketing mix modeling is a regression-based approach that looks at aggregate spend against revenue across every channel over time, instead of tracking individual users. It does not need cookies, a pixel, or clean user-level data, which makes it resistant to iOS tracking limits and cookie deprecation in a way holdout tests are not.

It also needs twelve months or more of clean, consistent spend and revenue data to produce a reliable model, which puts it out of reach for most brands under a few million in revenue. Run holdout tests first. They are faster, need no data history, and answer the question that changes next month's budget: whether this specific campaign creates demand or captures demand that already exists.

What do you actually do with the number once you have it?

Compare the true incremental ROAS against what the platform reports, and look at the size of the gap rather than the exact figure, since a single test always carries some noise. A campaign showing 4x reported ROAS but 1.3x incremental ROAS is mostly capturing demand that already existed. Retargeting still closes real sales, so the campaign can stay on, with next quarter's budget split based on its incremental ROAS instead of its reported number.

Route the freed-up budget toward the channels and audiences your test showed create new demand, usually broader prospecting and less-saturated top-of-funnel placements, and re-test every couple of quarters, since incrementality shifts as your brand awareness and the competition change. If your team has no bandwidth for this kind of measurement work, we build it for clients on the marketing side.

Run this test before you lock Q4 budget

Pick your single largest prospecting ad set, the one budget decisions hinge on, and run a four-week Meta Conversion Lift or geo holdout on it this week. Do not touch that campaign's budget until the read is in. If you want a second pair of eyes on the setup or the result, that is a fast conversation.

Frequently asked questions

What is a good incrementality test result for Meta ads?

There is no universal benchmark, since it depends on your category, average order value, and how much of your traffic is already branded. As a rough gut check, an incremental ROAS below half of what the platform reports usually means a meaningful share of that budget is capturing existing demand rather than creating it. Compare the direction and size of the gap over repeated tests rather than chasing one perfect number.

How much does a Meta Conversion Lift test cost to run?

There is no separate fee, it is built into Meta Ads Manager and only costs your normal ad spend during the test window. The real cost sits in the sales you deliberately forgo from the holdout group, which is why sizing that group correctly matters.

Can you run incrementality testing on a small ad budget?

Yes, but a small budget limits how quickly you can detect a real effect, since low conversion volume adds noise to the result. Geo-based holdouts often work better than user-level splits for smaller brands, because you compare regional revenue trends rather than needing enough individual conversions per group to reach statistical power.

Does incrementality testing replace attribution tracking?

No, they answer different questions and work best together. Attribution tells you which touchpoints a customer interacted with before buying, while incrementality tells you whether the campaign caused the sale at all, and most brands keep attribution for day-to-day optimisation while running periodic incrementality tests to sanity check the bigger budget calls.

How often should you re-run an incrementality test?

Every one to two quarters is a reasonable cadence for a brand spending meaningfully on paid social, since incrementality shifts as your brand awareness, competitive spend, and audience saturation change. Re-test sooner after a big change, such as a new creative strategy, a new market, or a large jump in budget.

Keep reading

Where this fits