Hits, visits and visitors
Who this page is for
| Audience | Why it matters to you |
|---|---|
| Everyone | These are the foundational time/scope boundaries |
| Analysts | Scoping issues cause most reporting bugs |
Hits, visits and visitors
Adobe Analytics organizes data into three nested scopes: hits, visits, and visitors.
Hit — the atomic unit
A hit is one request to Adobe's servers. It happens when:
- A page loads (page view hit)
- You fire a tracking call manually (custom link hit)
- A video plays a tracked milestone (video hit)
Every hit contains:
- Timestamp (accurate to the second)
- Visitor ID (ECID or user ID)
- Props, eVars, events, page name, referrer, etc.
- All the data you sent in that one request
You cannot have a fractional hit. The hit either fires or it doesn't. Each hit is independent.
Visit — a session boundary
A visit is a group of consecutive hits from the same visitor, bounded by inactivity.
Default timeout: 30 minutes. If your visitor goes inactive for 30 minutes, the next hit starts a new visit.
Visit example:
Hit 1: User lands on homepage (Visit 1 starts)
Hit 2: User clicks to product page
Hit 3: User clicks to checkout
[15 minutes of inactivity]
Hit 4: User checks their email, comes back (Visit 2 starts)
Visit-scoped variables (like eVars with visitor scope) persist across all hits in a visit, then reset.
You can have a 1-hit visit (user bounces) or a 100-hit visit (user browses for 30 minutes straight).
Visitor — the person
A visitor is identified by their ECID (Experience Cloud ID) or a logged-in user ID. All their hits and visits are grouped under one visitor.
One visitor can have many visits. One person visiting your site on Monday is one visitor. They come back Thursday — still the same visitor, but a new visit.
Visitor-scoped variables persist across all visits for that person (60 days by default), until they expire or reset.
Scoping example: Example Super form submission
Visitor: Alice (ECID: xyz-123)
Visit 1 (Monday):
Hit 1: Lands on complaint form page
Hit 2: Fills form, submits (eVar1 = "contact-form", event1 fires)
Hit 3: Sees confirmation page
[48 hours pass]
Visit 2 (Wednesday):
Hit 1: Lands on site search page
Hit 2: Searches for "death benefits"
Hit 3: Clicks search result
[Visitor eVar1 still = "contact-form" from Monday]
eVars set at the visit level reset between visits. eVars set at the visitor level persist across visits (until expiry).
Common scoping mistakes
- Forgetting that visits have a timeout → data looks stale
- Using a visit-scoped eVar when you need visitor scope → data resets between sessions
- Mixing up metrics that are summed per hit vs. deduplicated per visit vs. per visitor