Core Concepts
The five things Produl tracks — and what's captured for each.
Pageviews
A pageview is recorded every time a user loads a page (initial load or client-side route change). The tracker sends the full URL, path, page title, referrer, screen dimensions, and browser language. On visibility change or navigation, it backfills the time spent on the page and scroll depth.
Each pageview is attributed to a session and a visitor (see below), and the path is normalized for dashboards — query strings and fragments are stripped.
Sessions
A session groups related pageviews, events, and pings for a single browsing burst. Sessions include UTM parameters, referrer details, geo, device/browser/OS info, and screen dimensions — all captured on the first pageview so they stay consistent across the session.
The session key is stored in sessionStorage— so it's cleared when the tab or browser closes. Reopening your site starts a new session, even for the same visitor. Sessions that only see one pageview are marked as bounces.
Visitors
Produl identifies visitors without cookies. A stable visitor_id is derived from a browser fingerprint (canvas rendering hash combined with language, timezone, screen color depth, and hardware concurrency), then persisted in localStorage.
No cross-site tracking
If a visitor clears their storage — or uses private browsing — they'll count as a new visitor on their next visit. This is an intentional privacy trade-off.
Events
Events are arbitrary named actions you track with track(name, properties). Common examples: signup, purchase, cta_click, form_submit. Properties are a free-form JSON object — use them to attach context like { plan: "pro", amount: 4900 }.
Events are attributed to the session that was active when they fired. If no session is open (rare), the event is stored without a session reference but still counts toward totals.
Keep event names stable
signup to user_signup later will split your historical data into two series. Pick a convention (we recommend snake_case) and stick with it.Web Vitals
When the tracker detects Core Web Vitalsvalues via the browser's performance API, it submits them to Produl. We collect LCP, FCP, INP, CLS, and TTFB. In the dashboard, values are aggregated as p75 (the 75th-percentile experience) over your selected date range.
If your p75 lands in the amber or red zone, Produl surfaces a remediation panel on the site card with tips tailored to the specific metric that regressed.