Visitor Profiles

Track individual visitors, identify them by name or email, and view their full event timeline.

Visitor Profiles

EngageTrack can track individual visitors over time, letting you see their full journey across sessions.

Anonymous Tracking

By default, every visitor is tracked anonymously. No personal data is stored unless you explicitly identify visitors.

Identifying Visitors

Use the JavaScript SDK to link a visitor to a known user identity:

engagetrack.identify("user_123", {
	name: "John Doe",
	email: "[email protected]",
	avatar: "https://example.com/avatar.jpg",
	custom: {
		plan: "pro",
		company: "Acme Inc",
	},
});

The first argument is your application's user ID. The second argument is an optional traits object with name, email, avatar, and custom fields.

Viewing Visitors

Browse identified visitors from Dashboard → Visitors. Search by name or email. Each profile shows:

  • Name, email, and avatar
  • Total pageviews and sessions — lifetime activity
  • Total revenue — if revenue tracking is connected
  • First seen / last seen — when they first visited and when they were last active
  • Last location, browser, OS, and device
  • Last referrer source — how they most recently found your site

Visitor Timeline

Click on any visitor to see their complete event history in reverse chronological order. The timeline shows every pageview, custom event, purchase, click, form submission, download, and outbound link click.

Privacy & Persistence Modes

EngageTrack supports two persistence modes controlled by the data-persistence script attribute:

  • Memory mode (default): No device storage. Session IDs live in a JS variable and are lost when the tab closes. No consent banner required. Visitor identification relies on the server-side daily-rotating hash. identify() is not available in this mode.
  • Storage mode (data-persistence="storage"): Visitor ID persisted in localStorage, session in sessionStorage. Enables multi-day visitor tracking and identify(). Requires a consent banner in the EU.

In storage mode:

  • Visitor identification is opt-in — it only happens when you call engagetrack.identify()
  • Access the visitor ID via window.engagetrack.getVisitorId() (returns null in memory mode)
  • Access the session ID via window.engagetrack.getSessionId()
  • Custom attributes can contain any key-value pairs
  • Visitor data follows the same retention policy as other analytics data