Last updated: June 19, 2026
Understand Web Event Types
The Dash0 Web SDK emits a defined set of event types. Each type has a fixed event.name, a specific set of attributes, and a body payload. Understanding what each type contains helps you write more precise filters and interpret query results correctly.
The Dash0 Web SDK automatically captures the following event types. The supported types include:
- browser.page_view — fired on every navigation, for both full page loads and single-page application route transitions.
- browser.navigation_timing — detailed browser loading pipeline breakdown recorded once per full page load.
- browser.web_vital — LCP, CLS, and INP measurements, updated throughout the session as the user interacts with the page.
- browser.request — every asynchronous HTTP request made by the frontend, including status code, duration, and trace correlation context.
- browser.error — unhandled JavaScript exceptions and unhandled promise rejections.
- Custom events — any named event emitted via
trackEvent()in your application code.
Also see the Web SDK Instrumentation Guide.
Details on the event types are outlined below.
browser.page_view
Fired every time the user navigates to a URL — either via a full browser reload or a client-side route change in a single-page application.
Sub-types:
| Sub-type | Description |
|---|---|
| Page Load | Full browser reload. Always accompanied by a browser.navigation_timing event at the same timestamp. |
| Page Transition | SPA route change. No navigation timing data is recorded because the browser does not reload the DOM. |
Key attributes: url.path, url.full, page.load.id, page.url.domain
browser.navigation_timing
Recorded once per full page load. Contains a detailed breakdown of the browser's loading pipeline.
Key fields in the body:
| Field | Description |
|---|---|
domContentLoadedEventEnd | When the DOM was fully parsed |
loadEventEnd | When all page resources (images, scripts) finished loading |
responseEnd | When the last byte of the HTTP response was received |
encodedBodySize | Compressed size of the response body |
This event is the primary source of data for understanding server response time and DOM construction cost.
browser.web_vital
Records a Core Web Vital measurement. Web vitals can be emitted multiple times per session — values are updated as the user interacts with the page.
Measured vitals:
| Name | Full name | What it measures |
|---|---|---|
| LCP | Largest Contentful Paint | How long it takes for the largest visible element to render |
| CLS | Cumulative Layout Shift | How much the page layout shifts unexpectedly during load |
| INP | Interaction to Next Paint | How quickly the page responds to user input |
Body format: { delta: <change since last measurement>, name: "LCP" | "CLS" | "INP", value: <current value> }
Why values change: Each time the user interacts with the page — clicking a button, navigating to a new section, loading more data — the browser recalculates the web vital and emits an updated event. The delta field tells you how much the score changed from the previous measurement.
browser.request
Recorded for every asynchronous HTTP request made by the frontend. Captures timing from the browser's perspective (not the server's).
Key attributes: http.request.method, http.response.status_code, url.full, http.request_content_length, http.response_content_length
Trace correlation: If the backend is instrumented with OpenTelemetry, the request carries a traceparent header. Dash0 uses this to link the browser.request event to the corresponding backend trace, enabling end-to-end correlation from frontend click to database query.
browser.error
Recorded when an unhandled JavaScript exception or unhandled promise rejection occurs.
Key attributes: exception.type, exception.message, exception.stacktrace, url.path
Custom events
Any event emitted via trackEvent() in your application code. The event name, body, and attributes are entirely defined by you.
Further Reading
- About Web Events. Overview of the Web Events Explorer where all event types are displayed, including descriptions of each built-in event type.
- Analyze Page Views. Shows how to investigate
browser.page_viewandbrowser.navigation_timingevents in detail. - Monitor JavaScript Errors. Explains how to use the JavaScript Errors view to investigate
browser.errorevents. - Track HTTP Requests. Covers
browser.requestevents and how they link to backend traces using trace correlation context. - Use Custom Events. Describes how to instrument and use custom events alongside the built-in browser event types.