Identity Resolution
SegOps reconciles a visitor's **anonymous** activity with their **identified** profile automatically, on the server. You never have to stitch sessions together yourself — track events with whatever id you have, and SegOps collapses them onto a single canonical user.
The model#
Every event carries a user_id and, when available, an anonymous_id (the SDK
mints and persists one for you). When SegOps sees both ids together — on a
track call, an identify, or a session mint after login — it records a
deterministic alias edge: anon_<anonymous_id> → user_id.
Resolution is read-time. Events are never rewritten; instead, segment computation, the User Explorer, and MTU counting resolve each id through the alias map at query time. So a visitor who browsed anonymously and then logged in is one profile, and segments include their pre-login activity.
Rules that keep identities clean#
- First-identify-wins. Once
anon_Xmaps to user A, a later claim thatanon_Xis user B is logged and ignored. This prevents the identity "explosions" that opaque last-write-wins stitching causes. - Never auto-merge two known users. Implicit reconciliation only ever maps
an anonymous id onto a user. Merging two real
user_ids is a deliberate, destructive operation available only through the Admin API. - Logout rotates the anonymous id.
useUser().reset()(or the mobile equivalent) issues a fresh anonymous id so the next person on a shared device never inherits the previous user's trail.
Explicit control (Admin SDK)#
For server-side cases the event stream can't see — CRM backfills, deliberate account merges — use the Admin SDK:
alias() is first-identify-wins like the implicit path; merge() is
authoritative and is the only sanctioned way to fold one user into another.
Bot & agent classification#
Each event is also stamped with a bot_class: human, known_bot, ai_agent,
or suspicious. Known crawlers (Googlebot, Bingbot, GPTBot, ClaudeBot,
PerplexityBot, …) are classified — never dropped — so AI crawler traffic stays
visible in Discovery Intelligence while being excluded from billing. See
How we count MTU.
See also#
- How anonymous users are reconciled — plain-language walkthrough
- MTU Billing — how resolved identities drive what you pay
- Public Keys & Handshake