Product analytics,
without the cookies.
Count visitors, page views, and custom events, see where they come from, and find where they drop off. Monocle sets no cookies, uses no browser storage, and never receives the identity of your users.
No storage, no user identity
Referrers and campaigns
See where visits drop off
Every page and event of a visit
One line in the SDK you already have
Analytics comes from the browser SDK, so it lives next to your traces and errors. Add analytics() and page views are recorded on their own, including client-side navigation.
- Single-page apps need no router hook
- Pages grouped by route, like /blog/:slug, guessed or taken from your router
- Custom events with up to 20 properties. Identity keys like email are rejected
import {
analytics,
errors,
initMonocle,
network,
} from '@monocle.sh/browser-sdk'
export const monocle = initMonocle({
dsn,
environment: 'production',
integrations: [network(), errors(), analytics()],
})
monocle.track({
name: 'plan_selected',
properties: { plan: 'pro', seats: 3, annual: true },
})See where visits drop off
Build a funnel from page views, routes, and custom events, and see how many visits reach each step. Click the drop-off to list the visits that stopped there.
- 2 to 8 steps, in order, within one visit
- Share of visits that continued, and median time from the previous step
- Conversion split by source, entry page, country, device, browser, or OS
Anonymous by design
Monocle cannot recognize a returning visitor, on purpose. Each visitor ID is a keyed hash, and the key changes every day at midnight UTC. After that, nothing links the two.
- The IP address and User-Agent are used in memory, then dropped
- Sessions list each visit and its journey, never the user behind it
- Data kept for 90 days. During the beta, it does not count toward your usage
visitorId = keyedHash(dailySecret, site, ip, userAgent)
dailySecret random, rotates at 00:00 UTC, never written to disk
ip, userAgent used in memory for the ID, location, and device
stored visitorId, country, region, city, browser, OS, devicePlugs into your stack
Browser SDK
The analytics() integration
TanStack Router
Page views grouped by route
Vue Router
Page views grouped by route
UTM parameters
Source, medium, campaign, term, content
Custom events
monocle.track() with properties
Traces & errors
In the same project
See what your apps
are really doing.
Traces, logs, errors and metrics for every app you ship. Bring it all into focus.
