Analytics reference
Understand TraceKit analytics attribution, formulas, privacy, limits, and diagnostics.
Attribution
Attribution needs valid tracekit_visitor_id and tracekit_session_id metadata.
TraceKit selects the earliest retained event with the exact pair.
The event must belong to the same organization and project.
No payment-time cutoff applies to the selected event.
TraceKit copies source, referrer, campaign, page, and related first-touch fields.
Trace and user metadata do not determine attribution.
Unmatched payments use these reason groups:
- Missing visitor or session ID.
- Invalid visitor or session ID.
- Visitor or session not found.
- Visitor and session mismatch.
- Session outside retention.
Metrics and time boundaries
| KPI | Definition |
|---|---|
| Visitors | Distinct non-empty visitor IDs across accepted analytics events. |
| Goals | Accepted event count excluding the reserved $pageview event. |
| Revenue | Sum of attributed revenue in configured-currency minor units. |
| Conversion rate | Distinct attributed paying visitors divided by Visitors, multiplied by 100. |
| Revenue per visitor | Attributed revenue minor units divided by Visitors, rounded to the nearest minor unit. |
Conversion rate and revenue per visitor are unavailable when Visitors is zero.
Revenue uses int64 minor units.
TraceKit performs no foreign-exchange conversion.
The dashboard supports 24-hour, 7-day, 30-day, and 90-day ranges.
UTC is the only reporting timezone.
Revenue states
| State | Meaning |
|---|---|
| Disabled | Stripe is not connected. Traffic and goals continue to work. |
| Syncing | Stripe sync is running. Prior settled revenue can remain visible. |
| Error | The latest sync failed. Prior settled revenue can remain visible. |
| Empty | Stripe is connected, but the selected view has no eligible imported payments. |
| Populated | The selected view has one or more eligible imported payments, including unmatched payments. |
Privacy and retention
Do not send personal data
Do not send credentials, emails, payment data, or personal data. This prohibition applies to properties, identifiers, URLs, and UTM values.
Sensitive property values become [REDACTED].
The scrubbing applies only to the properties object.
Scrubbing does not protect identifiers, URLs, referrers, or UTM values.
Use opaque internal user IDs.
Analytics retention defaults to 30 days. Analytics retention and usage metering are separate from trace retention and metering. Expired analytics events are removed. Imported Stripe payments do not age-delete with normal analytics retention. Project deletion removes associated analytics data and stored Stripe credentials.
Limits and delivery behavior
| Area | Limit or behavior |
|---|---|
| Browser queue | 100 events. The transport drops the newest event when 100 events already wait. track() still returns its ID. |
| Browser batch | 20 events per request with a 100ms batching delay. |
| Browser body | 65,536 bytes maximum. |
| Browser attempts | Four total attempts for network errors, 408, 425, 429, and 5xx. |
| Browser delay | Starts at 250ms and caps at 2,000ms. Retry-After also caps at 2,000ms. |
| Stripe schedule | Poll every five minutes and reconcile the prior 24 hours. |
| Stripe page | Read 25 Checkout Sessions per page. |
| Stripe attempts | Four total attempts with 250ms, 500ms, and 1,000ms base delays. |
| Stripe retry cap | 2,000ms, including Retry-After. |
Browser transport flushes on pagehide and hidden-page transitions.
Analytics transport does not block page work.
Private-beta performance measurements are not customer limits.
Diagnostic links
| Record | Action | Condition |
|---|---|---|
| Event trace | View trace | A tenant-scoped trace exists. |
| Event span | View span | The trace and span exist. |
| Event replay | View replay | The replay exists. |
| Event errors | View errors | The trace has errors. |
| Event release | View release | The release exists. |
| Payment trace | View checkout trace | Stripe trace metadata resolves to a trace. |
| Payment replay | View session replay | The visitor and session resolve to a replay. |
The dashboard shows at most five matching events and five matching payments. A missing target hides its action only. A missing target never hides the analytics record.
Continue
- Return to Analytics setup for browser installation.
- Track goals with browser or server events.
- Connect Stripe for revenue attribution.
- Open Analytics to inspect results.