The measurement mental model
Who this page is for
| Audience | Why it matters to you |
|---|---|
| Everyone | This unlocks everything else |
| Non-technical people | Understand analytics without SQL |
The measurement mental model
If you understand one thing about Adobe Analytics, understand this mental model. Everything else is details on top of it.
The core idea: database + schema
Think of Adobe Analytics like a database:
| Concept | Database | Analytics |
|---|---|---|
| Table | A table (users, orders) | A report suite (your analytics data) |
| Row | One record | One hit (one user action) |
| Column | Column schema (id, name, age) | Props, eVars, dimensions |
| Value | "John", 42 | "homepage", "contact-form-submitted" |
A report suite is a database. Every time someone uses your website, one row (hit) is inserted. Your measurement plan defines the schema: which columns (props/eVars) you collect, what each means.
The three levels of aggregation
Analytics summarizes data at three levels:
Level 1: Hits (atomic)
A hit is one action: one page load, one button click, one form submission.
Hit 1: Alice loads homepage
Hit 2: Alice clicks to product page
Hit 3: Alice adds item to cart (event fires)
Level 2: Visits (sessions)
A visit groups consecutive hits from one user, timed out by 30 minutes of inactivity.
Visit 1 (Monday):
Hit 1: Homepage
Hit 2: Product
Hit 3: Cart
[48 hours pass]
Visit 2 (Wednesday):
Hit 1: Search results
Same person, two visits.
Level 3: Visitors (people)
All a person's visits and hits are grouped under one visitor ID (ECID or user ID).
Visitor: Alice
Visit 1: 3 hits
Visit 2: 1 hit
Visit 3: 5 hits
Variables as function parameters
Think of props and eVars like function parameters in code:
def track_user_action(page, form_type, visitor_segment):
# page = prop (hit-scoped)
# form_type = eVar with visit scope
# visitor_segment = eVar with visitor scope
pass
Props = request fields (hit-level)
Every hit can have different prop values. They're not remembered for the next hit.
Hit 1: prop5 = "homepage"
Hit 2: prop5 = "product-page"
Hit 3: prop5 = "cart"
Props answer: "What page are we on right now?"
eVars = session variables (visit or visitor scope)
Set once, persists for the lifetime of a visit or visitor.
eVar1 = "marketing_campaign_xyz" // set on hit 1
Hit 1: eVar1 = "marketing_campaign_xyz"
Hit 2: eVar1 = "marketing_campaign_xyz" (remembered)
Hit 3: eVar1 = "marketing_campaign_xyz" (still remembered)
[30 minutes pass, visit times out]
Hit 4 (new visit): eVar1 = empty (reset)
eVars answer: "What was the context for this session?"
Events = counters
Fires when something happens. Think of it like counting.
// Contact form submitted
sendEvent({ events: "event1" })
// Later, in reporting:
// "event1 fired 1,247 times"
Events answer: "How many times did X happen?"
Reporting = dimension + metric
Every report is: "[what you count] by [what you group by]"
Page Views by Page Name
| Page Name | Page Views |
|-------------|-----------|
| Homepage | 5,200 |
| Product | 3,100 |
| Checkout | 1,800 |
- Dimension (left): Page Name (what you group by)
- Metric (column): Page Views (what you count)
Segments = WHERE clauses
A segment is a filter. In SQL:
SELECT * FROM analytics
WHERE page_name = 'checkout'
AND device_type = 'mobile'
In Adobe Analytics:
Segment: "Mobile checkout visitors"
- Page Name = Checkout
- Device Type = Mobile
Segments let you slice and compare.
Example Super mapping
Example Super (our running example) is a superannuation website:
| Concept | Example Super |
|---|---|
| Report suite | "Example Super Analytics" database |
| Hits | Each page load, form submit, search |
| Visit | One browsing session (30 min) |
| Visitor | One member (ECID or login ID) |
| Props | Page name, form type, search term |
| eVars | Member segment, campaign source |
| Events | Form submissions, page views |
| Segments | "Mobile visitors", "Contacted us last 7 days" |
---
The mental model: Report suite = database. Hits = rows. Props/eVars = columns. Events = counters. Segments = filters.
Once you get this, everything else is just detail on top. Next: Analytics Fundamentals