The problem it solves
Without identity resolution, one person looks like a crowd: they browse anonymously on mobile, sign up on desktop, and return a week later on a third device (four “visitors” that are really one customer). Every funnel and retention report is distorted, because the journey is split across disconnected anonymous IDs. Identity resolution stitches those fragments back into a single person.
Anonymous to known
A visitor starts anonymous, identified only by a device or cookie ID. When they sign in, or you call
identify() with a stable user ID: the tool links the anonymous history to that known person, and
everything they did before sign-up is retroactively attributed to them. Events
from before and after the moment of identification line up on one timeline.
Deterministic vs probabilistic identity resolution
There are two broad approaches, and they ask different questions. Deterministic matching asks whether two records share a known key. Probabilistic matching asks how likely it is that they belong to the same person.
Deterministic matching
Deterministic resolution links events through a shared, known identifier: the user ID you pass to
identify(), or a matching email. A match is either true or it isn’t, so it’s exact. Its limit is reach:
it can only link activity from people who sign in somewhere.
Probabilistic matching
Probabilistic resolution infers that two devices or sessions belong to the same person without a shared login. It weighs signals that are each non-unique on their own (IP address, User-Agent and other device attributes, location, and when and how someone browses), scores each candidate pair, and links the pair when the score clears a confidence threshold. Ad-tech identity graphs and some large customer-data platforms use it to extend reach across devices.
The cost is error you can’t see. Two people behind one household or office IP can be merged into one profile, and one person on a new network can be split into two. Every report built on those matches carries that error, and no single profile tells you whether its own merge is right. It also raises the privacy bar: the inputs are personal data under GDPR, and deriving a stable cross-device identifier from device characteristics is the fingerprinting that European regulators bring under the same consent rule as cookies.
Which to use
For marketing reach, such as matching an ad impression to a later visit, a probabilistic link can be worth its error rate. For product analytics it rarely is: a funnel or retention cohort that silently merges two people answers the wrong question with full confidence. That is why product analytics tools generally resolve identity deterministically, and leave anonymous visitors anonymous until they identify themselves.
Identity resolution in a CDP vs in analytics
Customer-data platforms like Segment build a persistent identity graph to merge a person’s activity across every tool and channel, then route it onward. Product analytics tools resolve identity for a narrower purpose, so the behavioral reports are about people, not sessions. If what you actually want is the analysis on a unified profile (not a routing layer), see Pug as a Segment alternative.
A worked example
A visitor browses anonymously for a week (anonymous ID anon_88), firing page_view and
add_to_cart. They sign up and you call identify('user_42'). Deterministic resolution
aliases anon_88 → user_42, so the pre-signup cart is now attributed to the known person. Their next
session on a different device, where you call identify('user_42') again after login, joins the same
profile. One shared key does all the stitching; nothing is guessed.
How Pug resolves identity
Pug merges deterministically: anonymous events collected before sign-in are joined to a single
person when you call identify() with a stable ID, across devices and sessions. Traits like plan, email,
or company then live on that unified profile and filter every
insight: trends, funnels, retention, and flows. There’s no probabilistic guessing. See
user analytics for what the resolved profile looks like.