Skip to main content

Identify Users - Track Logged-In Visitors on Your App

Written by Frencheska Peren

If you have a product or app where users log in, you can identify those visitors in Snitcher using the identify() method.

This links their browsing sessions to their email address, giving you a complete picture of their journey from your marketing website all the way through to your app.

The best part? This method of revealing someone's email doesn't consume any contact credits 👇. It's included with your subscription 👇


What Does It Actually Show You?

Without identification, a logged-in user on your app shows up as an anonymous visitor ID in Snitcher, even though you know exactly who they are on your side.

With identify(), that same visitor shows up with their email address. You can see their full session history, which pages they visited, and link it all back to the company they belong to.


How It Works

Your dev team adds a small JavaScript call - Snitcher.identify() - that fires whenever a user logs in, signs up or otherwise provides their email. It looks like this:

Snitcher.identify("sarah@acme.com", {
name: "Sarah Chen",
company: "Acme Corp"
});

Once called, Snitcher links that email to the current session and retroactively connects any previous anonymous sessions from that same visitor.

Note: The retroactive connection, only works if the user had previously accepted cookies when visiting on the previous sessions. See our Cookie Consent guide for more information.


When Should You Use It?

Call identify() whenever you know who the visitor is. This can include things like:

  • A user logging in to your product

  • A user signing up for a trial

  • OAuth or SSO login (Google Sign-In, GitHub, SAML, etc.)

  • A visitor providing their email in a chat widget

  • Magic link / passwordless authentication

💡 For OAuth and SSO flows, automatic form tracking won't capture the email, so identify() is the way to go here.


Install the Tracker on Your App - Not Just Your Website

This is a big one. Most users install the Snitcher tracker on their marketing website, but not on their app (e.g., app.yoursite.com). If the tracker isn't on your app, identify() can't fire there.

We do this ourselves, Snitcher runs on snitcher.com and app.snitcher.com. This is how we connect the full journey from website visit to product usage.

🚨 Make sure the Snitcher tracker is installed on your logged-in application pages, and have your dev team call identify() on every page load for authenticated users.

This ensures sessions are always linked to the correct user.


Retroactive Session Linking

Here's what makes this really powerful 👇

Session

Status

What happened

Week 1

Anonymous

Visited your blog, read 3 articles

Week 2

Anonymous

Came back, viewed pricing

Week 3

Identified

Logged in to your app

Week 4

Identified

Returned, viewed case studies

Once identified in Week 3, all four sessions are linked to that person's profile. You get the full picture.


What It Doesn't Do

  • identify() links an email to a session. It doesn't reveal additional contacts or company data on its own. For that, you'd use Contact Credits (email reveals and phone reveals).

  • If someone shares a device and another person logs in, the sessions will be attributed to whoever is currently identified. This is rare in practice but worth knowing.

  • If cookie consent is required and the visitor hasn't accepted, identity won't persist across sessions. See our Cookie Consent guide for more information.


Privacy & Consent

If you use a cookie consent management tool, make sure identify() is only called after consent is granted:

if (hasUserConsent()) {
Snitcher.identify(user.email, { name: user.name });
}


For more details, check out our GDPR compliance guide.

For the full technical implementation guide, including code examples for Google Sign-In, GitHub OAuth, Auth0, Firebase, Next.js and more, check out our developer docs.


As always, feel free to drop us a message if you'd like to talk ideas, need some help or would just like to say hello. Team Snitcher signing off 👋

Did this answer your question?