Identity

Every visitor resolved into a real person.

Weeks of anonymous history collapse into one profile the moment someone signs up. Cookies die. Our identity doesn't.

21 days

of anonymous history stitched by one identify() call

profile · sarah@gmail.com
First touch
/blog · via Twitter
21d ago
Pricing
3 visits, still anonymous
12d ago
oak.identify()
anon_8f3a2c becomes sarah@gmail.com
9d ago
Signed up
Pro · $49/mo
9d ago

What you get

Identity stitching

One identify() call merges a visitor's entire anonymous history into their profile: every session, click, and pageview.

Durable fingerprint

Hardware-derived identity that survives incognito, cleared storage, and browser swaps. No cookie required.

Complete profiles

Email, plan, lifetime value, location, devices, and every session a person has ever had, in one place.

Company reveal

Reverse-IP resolution turns anonymous traffic into named companies. See who's on your pricing page.

Cross-device journeys

First touch on a phone, conversion on a laptop, stitched into one journey from first visit to forever.

Server-side identify

Backend events land on the same identity as the browser session via the Node SDK's distinctId.

Why aggregate analytics isn't enough

Most web analytics shows you traffic: how many visits, which pages, what sources. It can't answer the questions that actually drive revenue. Which person visited pricing three times before signing up? What did the journey from first blog visit to paid plan look like? Which of your trial users is about to churn?

OakData is built person-first. Every event belongs to an identity from the moment it's captured, so when a visitor eventually signs up, their whole anonymous past is already there, attached: the Twitter click three weeks ago, the docs session, the pricing revisits.

Identity that survives everything

Cookie-based identity breaks constantly. Safari caps cookies at seven days, users clear storage, and incognito starts everyone from zero. OakData layers a hardware-derived fingerprint under the usual identifiers, measured rather than stored, so returning visitors are recognized even after their cookies are long gone.

The result is a returning-visitor count you can trust and journeys that don't restart every week. When the visitor identifies, oak.identify() stitches everything to the real user, and server-side events join the same profile through the Node SDK.

See the companies behind anonymous traffic

For B2B, most of your future pipeline never fills out a form. Company reveal resolves anonymous visitors to their employer via reverse IP, with a confidence grade, so sales knows which companies spent last week reading your docs and pricing.

Questions

OakData assigns every visitor a durable identity from their first pageview, built from first-party identifiers plus a hardware-derived fingerprint. When the visitor signs up or logs in, a single identify() call links that identity, and all of its anonymous history, to the real user.

It's kept and stitched. All anonymous sessions, pageviews, and events merge into the person's profile the moment they identify, so you see the full journey from first touch onward, not just from signup.

Yes. The fingerprint layer is measured from hardware signals rather than stored in the browser, so it persists through cleared storage, incognito windows, and even browser swaps on the same machine.

Yes. Company reveal uses reverse-IP resolution to attribute anonymous traffic to named companies with a confidence grade, so you can see which organizations are reading your pricing and docs.

Related

Try it

Visitor identification is five minutes away.

One snippet, every feature, at every tier. Free for the first 14 days.

14-day free trial