Analytics
Applies toAlpha
Analysis answers what users did across a Project and Environment. It shares one dataset with error monitoring, which is the point: the Session that converted and the Session that threw are the same rows.
This page is the model everything else rests on. Once it makes sense, go to Custom Events to send your own, or Funnels, paths and retention to query what you have.
What Analysis sees
Section titled “What Analysis sees”Analysis reads four event kinds, derived from the stored Event rather than declared by the SDK:
| Kind | Comes from | event_name |
|---|---|---|
page_view |
A Page View whose navigation type is not route_change |
page_view |
navigation |
A Page View whose navigation type is route_change (SPA route change) |
navigation |
click |
The automatic ui.click Custom Event |
click |
custom |
Any other Custom Event | your event name |
Events flagged synthetic — the Demo seed and test Events — are excluded from every behavior
query, so a seeded Instance never reports Demo traffic as real.
Dimensions
Section titled “Dimensions”Every behavior metric can be broken down by one dimension:
| Dimension | Value | Derived from |
|---|---|---|
country |
Country code, or unknown |
The Session’s first Event |
device |
desktop, mobile, tablet, bot, unknown |
User agent |
browser |
Browser name, or unknown |
User agent |
source |
Referrer host, or direct |
Referrer domain |
property:<key> |
Your attribute value, or (not set) |
Custom Event attributes |
<key> must match ^[a-zA-Z][a-zA-Z0-9_.-]{0,63}$.
Metrics
Section titled “Metrics”| Metric | Meaning |
|---|---|
events |
Distinct Event IDs, approximate (uniqCombined64) |
estimated |
Events weighted by 1 / sampleRate, i.e. the estimated true count |
uniqueUsers |
Distinct anonymous visitor IDs, approximate |
uniqueSessions |
Distinct Session IDs, approximate |
Every count is approximate by construction, and the response carries approximate: true so the
Console can say so. Read estimated when you have lowered a sample rate and want the
real-world figure; read events when you want what was actually stored.
Query budgets
Section titled “Query budgets”Analysis queries are rejected before they run when they would scan too much. A rejection
returns 422 QUERY_TOO_EXPENSIVE.
Cost rises with the time range and with property: dimensions, which cost four times a
built-in one. It falls when you filter, so the fix is usually one of:
- shorten the range
- add an Environment filter (÷4)
- add an event kind or name filter (÷4, behavior queries only)
- switch from a
property:dimension to a built-in one
- Custom Events — the payload contract and the reserved
ui.clickschema - Instrumentation recipes — signup, checkout, feature adoption, search
- Funnels, paths and retention — the three exploration queries and their limits
- Compared with GA4 — feature-by-feature, including the gaps
Related: Investigation, Glossary and core concepts, Browser SDK.
Release Alpha · commit local