A customer signs up on Tuesday after browsing the pricing page on and off for a week. In the CDP, that week lives under one profile, the signup under another, and nothing connects them. The person is the same; the record is split in two.
Why the handoff from anonymous to known breaks
Every CDP tracks activity before someone has an account under a temporary anonymous ID tied to the browser or device. The moment that person signs up or hands over an email, the tool is supposed to merge that anonymous history into the real profile. That merge does not happen just because the person exists in both records: it has to be told, explicitly, that the anonymous ID and the new identified ID belong to the same human. If the signup call passes the new user ID but never carries along the anonymous ID tracking that visitor a second earlier, the CDP has no way to know they are the same person. It opens a second, brand-new profile instead of completing the first one.
Where it usually slips through
The most common place this breaks is a signup or checkout flow built by a team that never read the identity-resolution spec the marketing stack depends on. Someone wires up the account-creation call, it works, and nobody checks whether the pre-signup anonymous ID rode along. The product funnel looks fine; the split only shows up later, inside the CDP, as a “duplicate profile.”
What a split profile costs
The anonymous profile keeps every page view, email click, and ad interaction from before the signup. The identified profile starts with zero history, even though a specific campaign is the reason that person signed up. Any journey that triggers off “time since first seen” or “pages viewed before purchase” reads that customer as brand new, so a welcome series built for a cold lead runs on someone who already knew the product, and attribution credits acquisition channels for signups they had nothing to do with.
Three places to check if you suspect this is happening:
- Pull the profile for a recent signup and look for an anonymous ID field. If it is empty, the merge never ran.
- Compare the account creation date in your product database against “first seen” in the CDP. A match means no pre-signup history ever attached.
- Check what the identify call actually sends: the visitor’s new user ID alone, or that ID together with the anonymous ID they had a second before.
This is the same mechanic behind what a CDP actually does with identity: the tool is only as good as what gets reconciled into one record. The fix is rarely a new tool, it is making sure every entry point into a United States funnel, signup, checkout, app login, carries the visitor’s existing anonymous ID forward instead of starting fresh. The same failure, data that never makes it back to the record that needed it, is what breaks a shipment in a failed delivery with no address update.