Sessions
Session-level aggregated data. One row per visitor session. Use for traffic analysis, channel comparison, and engagement metrics.
Pages
Per-page view data with duration tracking. One row per page viewed. Use for content performance and exit analysis.
Metrics
Session Metrics
About TimeScore (median_duration)
About TimeScore (median_duration)
The primary engagement metric in Staminads. Represents the median time users spend actively engaged in a session.Why median? Medians are resistant to outliers. A single visitor leaving a tab open for hours won’t skew your data.Example: If sessions have durations
[10, 20, 30, 120, 300], the median is 30s (not 96s average).About Bounce Rate
About Bounce Rate
Sessions shorter than the bounce threshold (default: 10 seconds) are considered “bounces.”The threshold is configurable in workspace settings. Lower bounce rate is generally better.
About median_page_duration
About median_page_duration
Session-weighted: Each session contributes equally regardless of page count.Useful for comparing engagement quality across traffic sources. Different from
page_duration (pages table) which is page-weighted.Page Metrics
Dimensions
Traffic Source
UTM Parameters
Channel
Channels are set via Traffic Categorization filters.
Common channel values:
Direct— No referrer, typed URLOrganic Search— Google, Bing, etc. without adsPaid Search— Google Ads, Bing AdsSocial— Facebook, Twitter, LinkedIn, etc.Referral— Links from other websitesEmail— Email campaignsDisplay— Display advertising
Landing & Exit Pages
Page (Pages Table)
Device
Geographic
Time
Session
Custom Dimensions
10 custom dimension slots are available for your own data. Set via filters or the SDK.
Setting via SDK:
Quick Reference
Which metric for which question?
Metrics We Don’t Support
Staminads is built on a fundamental principle: we won’t show you data we can’t measure accurately. Some metrics that other analytics tools display are technically impossible to track reliably in a cookieless, privacy-first world. Rather than showing you misleading numbers, we don’t include them at all.Users / Unique Visitors
Users / Unique Visitors
Why we don’t support it: Counting unique users requires identifying the same person across multiple sessions. Without cookies or persistent identifiers, this is technically impossible.A person visiting from their phone, then their laptop, then their work computer appears as three separate visitors. There’s no privacy-respecting way to link these sessions.What to use instead:
sessions — the number of sessions is accurate and meaningful. Focus on session quality (TimeScore) rather than trying to count people you can’t identify.Returning Visitors
Returning Visitors
Why we don’t support it: Identifying returning visitors requires recognizing someone who visited before. Without cookies, we can’t know if a session is from a new or returning visitor.What to use instead: Focus on engagement metrics. A highly engaged session (high TimeScore) often indicates familiarity with your content, regardless of whether we can technically label it as “returning.”
ROAS / ROI / Conversion Attribution
ROAS / ROI / Conversion Attribution
Why we don’t support it: Return on Ad Spend requires tracking conversions back to the ad click that caused them. This is broken for multiple reasons:
- Cross-device journeys — Someone clicks an ad on mobile, converts on desktop
- Multi-touch attribution — Multiple channels contribute to a conversion
- Cookie restrictions — Safari limits cookies to 7 days, adblockers delete them
- Consent requirements — Users who decline tracking can’t be attributed
This isn’t a limitation of Staminads — it’s a limitation of the modern web. Any tool claiming to accurately count unique users or attribute conversions without cookies is either using fingerprinting (privacy-invasive) or showing you incomplete data. We choose transparency over false precision.