New Kitbase MCP is live — talk to your analytics in plain English
Kitbase Kitbase
Start free
Users

From anonymous visitor to known customer

Kitbase tracks everyone from their very first pageview under an anonymous ID. The moment they sign in, one identify() call links that history to a real user — and every event they already triggered is backfilled with it.

No credit card required · Set up in under five minutes

A team meeting around a table in an office
Two kinds of user

Anonymous and identified

Most tools start measuring someone at signup. Kitbase starts at the first visit, then stitches the two together the moment you identify them.

Anonymous
Tracked from the first pageview
Identified
Linked via identify()
Identifier anonymous_id — an auto-generated UUID user_id — the identifier your own system already uses
Created Automatically, on the very first visit When you call identify() after login or signup
Scope One per device — the same person on two devices is two anonymous users One per person — activity across devices collapses into a single identity
Storage Kept in localStorage, so it survives page loads and browser restarts Held server-side, linked to every anonymous ID that resolved to it
How identity resolution works

Four moments, one person

Nothing here needs a data pipeline of your own — the link and the backfill happen server-side.

  1. 1

    First visit

    A UUID is generated and stored locally. Every event from this point is attributed to it — long before anyone signs up.

  2. 2

    They sign in

    You call identify() with your own user ID and any traits worth attaching: email, name, plan, whatever you segment on.

  3. 3

    The IDs are linked

    The SDK sends both identifiers to the server, which creates a permanent link between the anonymous ID and the user ID.

  4. 4

    History is backfilled

    Every past event under that anonymous ID is rewritten with the user ID — so the pre-signup journey isn't lost.

Traits and segments

Attach what you actually segment on

Pass any traits you like at identify time and they become properties you can filter and segment by — plan tier, signup source, company size, role. They travel with every event the user triggers from then on.

  • Per-user activity timelines, in event order
  • Jump between a user, their sessions, and the raw events
  • Segment by any trait you attached at identify time
  • Query the same data over REST when you need it elsewhere
See the users guide
Two colleagues working at laptops in an office
On your terms

Persistence is a choice

By default the anonymous ID persists in localStorage so a returning visitor is recognised. Set storage to null and it regenerates each session instead — useful when your privacy posture calls for it, or when you'd rather not persist anything at all.

  • storage: null — a fresh anonymous ID every session
  • No cookies are set for analytics either way
  • Geolocation is derived from the IP, which is then dropped unless logging is on
See session tracking
A developer working at a laptop in a meeting room

Connect the journey end to end

Install the SDK, call identify() when someone signs in, and the whole path from first anonymous visit to paying customer lines up.

No credit card required