BRANDS THAT MEASURES NCAC WRONG
90%
Total spend ÷ Total Purchases
NEW CUSTOMER ACQUISITION
Your ad platforms don’t know who’s already visited your brand, unless you tell them. Without that signal, brands count returning buyers as new acquisitions and inflate nCAC. Real nCAC starts here.
BRANDS THAT MEASURES NCAC WRONG
90%
Total spend ÷ Total Purchases
RETURNING BUYERS IN "NEW CUSTOMER" DATA
40–60%
Industry Average
REAL NCAC VS REPORTED
2–3X
Higher than you think
THE CORE PROBLEM
Your "prospecting" is re-targeting last month's buyers.
Total spend ÷ first-time orders isn't acquisition cost.
Training the algorithm means telling the algorithm to find the newer audience and not somebody who knows the brand. Ideally, it should be completely new. How would you do that? Exclusion is the only way.
You exclude the entire visitors and customer database on ad platforms pretty much realtime.
Platform built-in exclusions does not actually exclude
Meta and Google don't store inactive visitors beyond that. Relying on platform-native exclusions means you're missing everyone who bought more than a month ago.
Someone buys at 2pm. Nightly upload catches them tomorrow. Tonight they see an ad, click, convert, another false signal the algorithm already learned from.
Even if exclusions run perfectly from today, the model was already trained on returning buyers. It keeps finding people who look like your existing base.
“Picking overall purchasers, splitting into new and repeat, dividing by total spend and calling it nCAC is almost the most bizarre thing human mankind has seen.”
Real nCAC = spend on new audience ÷ purchases from new audience. That’s it. Calculated per segment, not blended.
THE SOLUTION
Platform exclusions use cookies. Cookies expire. First-party IDs don’t.
CustomerLabs matches every visitor using external IDs, across sessions, emails, and ad clicks. Returning buyers get flagged before the signal ever reaches CAPI.
Event includes fbp and external_id
We save both fields and try to find a match. external_id is always favored,
since it offers improved performance.
Build your first-party data audience of your website visitors of 90 or 180 days. Feed them back to the ads and measure the exact spend for the newer audience capture and conversions. In this case, the actual nCAC is 254 at 7.20 ROAS.
Unfortunately, Meta lifecycle strategy cannot help, it is only as good as the audience you feed it.
But with CustomerLabs’ patented audience activation technology, enabling anonymous and non-purchaser audience activation beyond 180 or 300 days on ad platforms with one of the industry’s best match rates.
This helps in the right exclusions and inclusions as the cookies are intact.
Once signals are engineered server-side, every connected platform reports on them natively. No separate dashboard. No manual reconciliation. The split you’ve been trying to reverse-engineer in spreadsheets is now a column in every tool your team opens.
CLIENT RESULTS
Real results from brands using the same signal infrastructure you can deploy for your clients.
Smars ditched Shopify CAPI, 86% of their purchases are now first-time buyers — at 14% lower CPP
Read full storyHow Bartos Nutrition Cut New Customer Acquisition Cost by 19% Using First-Party Data Signals
Read full storyCustomerLabs 1PD Ops Platform made server-side tracking, offline conversions, and CAPI integration seamless, significantly improving our data quality and ad performance. Setup was incredibly fast15 minutes to get started, integrations within an hour, and just a day for data layer implementation. With strong customer support and wide integrations across CRM and ad platforms, it’s an easy 10/10 recommendation.
FAQ
Most teams already have CAPI live. The real question is whether the platform is learning from the right signal.
Isn't this what Meta's "exclude existing customers" option already does?
Only for 28 days. Anyone who bought before that is back in your prospecting audience, and the algorithm is training on them. The same applies to Google's customer match exclusions, TikTok's audience exclusions, and any other platform's native exclusion option. They all use cookies that expire and lists that go stale.
How is this different from CAPI?
CAPI is a transport layer. It sends events server-side. It doesn't tell you who is new and who isn't. Signal engineering decides what event gets tagged and sent in the first place. The same logic applies to Google's Enhanced Conversions, TikTok's Events API, LinkedIn's Conversions API, and any other server-side delivery layer.
Do I need to replace my existing pixel or CAPI setup?
No. CustomerLabs sits on top. It enriches the signal server-side before it reaches Meta, Google, TikTok, LinkedIn, or any connected platform.
How fast does the exclusion list update?
Minutes, not nightly. A purchase at 2pm is suppressed from prospecting audiences before the next ad auction across every connected platform.
Will this break my current reporting?
No. Once signals are clean, ad platforms report on new vs. returning natively, in the same Ads Manager, Google Ads UI, or TikTok Ads UI your team already uses.
How long does implementation take?
Most brands are live in under two weeks. No engineering team required on your side. Our team handles the setup, you approve the event mapping.
Isn't this what Meta's "exclude existing customers" option already does?
Only for 28 days. Anyone who bought before that is back in your prospecting audience, and the algorithm is training on them. The same applies to Google's customer match exclusions, TikTok's audience exclusions, and any other platform's native exclusion option. They all use cookies that expire and lists that go stale.
How is this different from CAPI?
CAPI is a transport layer. It sends events server-side. It doesn't tell you who is new and who isn't. Signal engineering decides what event gets tagged and sent in the first place. The same logic applies to Google's Enhanced Conversions, TikTok's Events API, LinkedIn's Conversions API, and any other server-side delivery layer.
Do I need to replace my existing pixel or CAPI setup?
No. CustomerLabs sits on top. It enriches the signal server-side before it reaches Meta, Google, TikTok, LinkedIn, or any connected platform.
How fast does the exclusion list update?
Minutes, not nightly. A purchase at 2pm is suppressed from prospecting audiences before the next ad auction across every connected platform.
Will this break my current reporting?
No. Once signals are clean, ad platforms report on new vs. returning natively, in the same Ads Manager, Google Ads UI, or TikTok Ads UI your team already uses.
How long does implementation take?
Most brands are live in under two weeks. No engineering team required on your side. Our team handles the setup, you approve the event mapping.
READY TO MOVE?
In 30 minutes, we'll map which signals apply to your business, show you what your campaigns are currently training on, and identify the gaps. No commitment required.