Unique visitors (a.k.a. unique users, UUs) is the count of distinct people who visited your site or app within a defined time window (day, week, month). Unlike sessions, which can stack when the same person comes back, unique visitors de-duplicate repeat activity so each person is counted once per period. It’s a reach metric, not a volume metric like pageviews or events.
In practice, “person” is approximated using an identifier such as a first-party cookie, device ID, or login. Accuracy depends on your identity strategy and consent (see First-Party Cookie / Third-Party Cookie). Cross-device and cross-browser visits can inflate the count if one human appears as multiple IDs; logins or server-side stitching reduce that bias.
How to calculate unique visitors
Definition:
Unique visitors over period P = COUNT_DISTINCT(user_id) where events fall inside P.
Mini example (daily vs monthly dedupe):
Day | Raw hits | Distinct users/day | Notes |
---|---|---|---|
1 | 120 | 2 (Alice, Bob) | Alice has 3 sessions → still 1 user |
2 | 95 | 2 (Alice, Carol) | Alice returns → still 1 user/day |
3 | 60 | 1 (Bob) | Bob on mobile and desktop → 2 devices, 1 user if stitched |
- Daily UUs: 2, 2, 1 (reported per day)
- Monthly UUs (days 1–3): 3 (Alice, Bob, Carol), because we dedupe across the entire period.
Why it matters
- Audience reach & growth: Track topline scale and stickiness alongside DAU/WAU/MAU.
- Capacity planning: Unique visitors inform caching, bandwidth, and auth limits better than session counts.
- Marketing mix: Useful denominator for conversion and engagement rates when you care about people, not visits.
Common pitfalls
- Period confusion: Daily uniques don’t sum to monthly uniques; dedupe scope differs.
- ID instability: Cookie resets, ITP, and privacy prompts can fragment identities; expect variance.
- Bot traffic: Filter systematically or your “unique” will include non-humans.
- Over-interpreting differences vs sessions: Sessions show activity intensity; uniques show reach. Use both.