User action events capture user-initiated actions within the application, providing insights into user behavior and interaction patterns.
A mobile user action represents a significant mobile frontend operation and its downstream effects. Dynatrace RUM groups the triggering interaction together with the resulting requests and navigations into a single user action event. Only supported by OneAgent for Mobile.
This query searches for all OneAgent for Mobile user actions.
fetch user.events| filter characteristics.has_user_action| filter dt.rum.agent.type == "android" OR dt.rum.agent.type == "ios"
| Attribute | Type | Description | Examples |
|---|---|---|---|
characteristics.has_user_action | boolean | stable Fixed value true. | true |
characteristics.is_api_reported | boolean | stable Additional characteristic: If set to true, the user event was sent using the Dynatrace API. | true |
| Attribute | Type | Description | Examples |
|---|---|---|---|
user_action.instance_id | uid | experimental A random ID that is generated for every user action. The user_action.instance_id is an 8-byte ID and hex-encoded if shown as a string. | f76281848bd8288c |
user_action.custom_name | string | deprecated The attribute user_action.custom_name will be replaced with user_action.name soon.The user action name reported via the Dynatrace API. | FooBar - Title |
user_action.id | uid | experimental A unique identifier for user action grouping. The user_action.id is a 8-byte ID and hex-encoded if shown as a string. | f76281848bd8288c |
user_action.name | string | experimental A human-readable version of user_action.id. The value can be reported via the Dynatrace API. If not reported via the Dynatrace API, the value is automatically calculated. | click on checkout on #dashboard;id=<uuid>; Loading of /; Reported user action name |
user_action.interrupted_by_instance_id | uid | experimental The user_action.instance_id of the user action that interrupted this user action. | f76281848bd8288c |
user_action.interrupted_instance_id | uid | experimental The user_action.instance_id of the user action that was interrupted by this user action. | f76281848bd8288c |
user_action.hard_navigation_count | long | experimental The number of hard navigations that happened during the lifespan of the user action. | 0 |
user_action.soft_navigation_count | long | experimental The number of soft navigations that happened during the lifespan of the user action. | 2 |
user_action.navigation_count | long | experimental The number of navigations that happened during the lifespan of the user action. Includes all detected navigations, regardless of whether the corresponding event may be canceled via the modify event API later. Only supported by OneAgent for Mobile. | 1 |
user_action.mutation_count | long | experimental The number of DOM mutations during the lifespan of the user action. | 3 |
user_action.requests.pending_request_count | long | experimental The number of requests that were pending when the user action finished. | 2 |
user_action.requests.data_url_request_count | long | experimental The number of requests to a data URL during the lifespan of the user action. | 2 |
user_action.requests.count | long | experimental The number of requests during the lifespan of the user action. | 10 |
user_action.resources.count | long | experimental The number of resources loaded during the lifespan of the user action. | 9 |
user_action.resources.__initiator_type__.count | long | experimental The number of resources loaded during the lifespan of the user action split by initiator type, for example, user_action.resources.xmlhttprequest.count. Known initiator types are xmlhttprequest, fetch, navigation, css, script, beacon, video, audio, track, img, image, input, a, iframe, frame, link, icon, internal, violationreport and other. | 9 |
user_action.complete_reason | string | experimental The reason why the user action was completed. | timeout |
user_action.type | string | experimental The user action type. | same_view |
user_action.complete_reason MUST be one of the following:
| Value | Description |
|---|---|
background | The user action was closed because the app was moved to the background. Only supported by OneAgent for Mobile. |
completed | The user action was normally completed. |
completed_by_api | The user action was completed using the Dynatrace API. |
interrupted_by_api | The user action was interrupted by a new user action started with the Dynatrace API. |
interrupted_by_automatic | The user action was interrupted by a new auto-captured user action. |
page_hide | The user action was closed because the page was left. Only supported by RUM JavaScript. |
timeout | The user action timed out. |
user_action.type MUST be one of the following:
| Value | Description |
|---|---|
api | The user action was reported via the Dynatrace API. |
app_start | The user action was triggered by an app start. Only supported by OneAgent for Mobile. |
hard_navigation | The user action was triggered by a hard navigation (full page load). Only supported by RUM JavaScript. |
navigation | The user action was triggered by a mobile navigation. Only supported by OneAgent for Mobile. |
same_view | The user action was triggered by a user interaction, followed by an XHR or fetch request. |
soft_navigation | The user action was triggered by a soft navigation that led to a view change. Only supported by RUM JavaScript. |
xhr | Replaced with same_view starting with RUM JavaScript version 1.339. |
User interaction fields are only present if the user action was triggered by a user interaction.
| Attribute | Type | Description | Examples |
|---|---|---|---|
interaction.type | string | experimental Type of action performed by the user. Mobile is limited to touch, gesture, and rotation; all other values are web only. | click |
ui_element.custom_name | string | experimental Custom name of the element. Filled by the data-dt-name or the data-dt-children-name DOM attribute. | Add to cart; Homepage logo |
ui_element.detected_name | string | experimental User interface element name. Captured by precedence of aria-label > title > name > data-testid > placeholder > content > id. In case it is masked, precedence is aria-label > title > name > data-testid > placeholder > id > "masked". | Add to cart; Homepage logo |
ui_element.name_origin | string | experimental Field used to fill ui_element.name. | title; name; id; content; value |
ui_element.tag_name | string | experimental User interface element type. For web, it's the tag name. For mobile, it's the name of, for example, the controller or fragment | div; CartFragment |
App start fields are only present if the user action was triggered by an app start (user_action.type is set to app_start).
| Attribute | Type | Description | Examples |
|---|---|---|---|
app_start.type | string | stable The type of app start. | cold; warm; hot |
app_start.type MUST be one of the following:
| Value | Description |
|---|---|
cold | A cold app start means that the app started from scratch. For example, this happens in case the app launched for the first time since the device booted. |
hot | A hot app start has lower overhead than a cold or warm start. If the app state still resided in memory, operations such as object initialization, layout inflation, and rendering may be avoided. |
warm | A warm app start encompasses a subset of the operations that take place during a cold start. For example, this can happen if the user backs out of the app but then re-launches it. This may differ significantly depending on the platform. |
| Attribute | Type | Description | Examples |
|---|---|---|---|
error.count | long | experimental Display name: Error countThe total number of errors that are observed. | 1 |
error.exception_count | long | experimental Display name: Error exception countThe total number of exceptions that are observed, including exceptions that are not captured. | 1 |
error.has_crash | boolean | experimental If set to true, a crash occurred during the lifetime of this event. | true |
error.http_4xx_count | long | experimental Display name: Error HTTP 4xx countThe number of HTTP request errors with an http.response.status_code of 400-499. | 1 |
error.http_5xx_count | long | experimental Display name: Error HTTP 5xx countThe number of HTTP request errors with an http.response.status_code of 500-599. | 1 |
error.http_other_count | long | experimental Display name: Error HTTP other countThe number of HTTP request errors with an http.response.status_code of 0-99 or 600+ (undefined errors). | 1 |
error.request_other_count | long | experimental Display name: Error request other countThe number of errors not related to HTTP status codes—for example, timeout or connectivity errors (Android) or other failed-request errors such as WebSocket failures (iOS). | 1 |
| Attribute | Type | Description | Examples |
|---|---|---|---|
experience.level | string | experimental The user experience level of an event. By default, Dynatrace sets this field on user actions based on user action duration using a predefined OpenPipeline processor. The processor can be duplicated, modified, or replaced to adjust thresholds, apply custom logic, or extend coverage to other event types. Events without this field are excluded from the Experience Score calculation. | satisfied; tolerating; frustrated |
experience.weight | long | experimental A positive integer weight applied when computing the weighted Experience Score. The predefined processor sets this to 1 for all action events. Custom processors may assign higher weights to more impactful event types such as crashes or errors. | 1; 5 |
experience.level MUST be one of the following:
| Value | Description | Display name |
|---|---|---|
frustrated | frustrated | Frustrated |
satisfied | satisfied | Satisfied |
tolerating | tolerating | Tolerating |
The basic attributes for all user events are defined in the user event base model.
A user action represents a significant frontend operation and its downstream effects. Dynatrace RUM groups the triggering event, for example the user interaction, together with the resulting requests and DOM mutations into a single user action event. Only supported by RUM JavaScript.
This query searches for all RUM JavaScript user actions.
fetch user.events| filter characteristics.has_user_action| filter dt.rum.agent.type == "javascript"
| Attribute | Type | Description | Examples |
|---|---|---|---|
characteristics.has_user_action | boolean | stable Fixed value true. | true |
characteristics.is_api_reported | boolean | stable Additional characteristic: If set to true, the user event was sent using the Dynatrace API. | true |
| Attribute | Type | Description | Examples |
|---|---|---|---|
user_action.instance_id | uid | experimental A random ID that is generated for every user action. The user_action.instance_id is an 8-byte ID and hex-encoded if shown as a string. | f76281848bd8288c |
user_action.custom_name | string | deprecated The attribute user_action.custom_name will be replaced with user_action.name soon.The user action name reported via the Dynatrace API. | FooBar - Title |
user_action.id | uid | experimental A unique identifier for user action grouping. The user_action.id is a 8-byte ID and hex-encoded if shown as a string. | f76281848bd8288c |
user_action.name | string | experimental A human-readable version of user_action.id. The value can be reported via the Dynatrace API. If not reported via the Dynatrace API, the value is automatically calculated. | click on checkout on #dashboard;id=<uuid>; Loading of /; Reported user action name |
user_action.interrupted_by_instance_id | uid | experimental The user_action.instance_id of the user action that interrupted this user action. | f76281848bd8288c |
user_action.interrupted_instance_id | uid | experimental The user_action.instance_id of the user action that was interrupted by this user action. | f76281848bd8288c |
user_action.hard_navigation_count | long | experimental The number of hard navigations that happened during the lifespan of the user action. | 0 |
user_action.soft_navigation_count | long | experimental The number of soft navigations that happened during the lifespan of the user action. | 2 |
user_action.navigation_count | long | experimental The number of navigations that happened during the lifespan of the user action. Includes all detected navigations, regardless of whether the corresponding event may be canceled via the modify event API later. Only supported by OneAgent for Mobile. | 1 |
user_action.mutation_count | long | experimental The number of DOM mutations during the lifespan of the user action. | 3 |
user_action.requests.pending_request_count | long | experimental The number of requests that were pending when the user action finished. | 2 |
user_action.requests.data_url_request_count | long | experimental The number of requests to a data URL during the lifespan of the user action. | 2 |
user_action.requests.count | long | experimental The number of requests during the lifespan of the user action. | 10 |
user_action.resources.count | long | experimental The number of resources loaded during the lifespan of the user action. | 9 |
user_action.resources.__initiator_type__.count | long | experimental The number of resources loaded during the lifespan of the user action split by initiator type, for example, user_action.resources.xmlhttprequest.count. Known initiator types are xmlhttprequest, fetch, navigation, css, script, beacon, video, audio, track, img, image, input, a, iframe, frame, link, icon, internal, violationreport and other. | 9 |
user_action.complete_reason | string | experimental The reason why the user action was completed. | timeout |
user_action.type | string | experimental The user action type. | same_view |
user_action.complete_reason MUST be one of the following:
| Value | Description |
|---|---|
background | The user action was closed because the app was moved to the background. Only supported by OneAgent for Mobile. |
completed | The user action was normally completed. |
completed_by_api | The user action was completed using the Dynatrace API. |
interrupted_by_api | The user action was interrupted by a new user action started with the Dynatrace API. |
interrupted_by_automatic | The user action was interrupted by a new auto-captured user action. |
page_hide | The user action was closed because the page was left. Only supported by RUM JavaScript. |
timeout | The user action timed out. |
user_action.type MUST be one of the following:
| Value | Description |
|---|---|
api | The user action was reported via the Dynatrace API. |
app_start | The user action was triggered by an app start. Only supported by OneAgent for Mobile. |
hard_navigation | The user action was triggered by a hard navigation (full page load). Only supported by RUM JavaScript. |
navigation | The user action was triggered by a mobile navigation. Only supported by OneAgent for Mobile. |
same_view | The user action was triggered by a user interaction, followed by an XHR or fetch request. |
soft_navigation | The user action was triggered by a soft navigation that led to a view change. Only supported by RUM JavaScript. |
xhr | Replaced with same_view starting with RUM JavaScript version 1.339. |
| Attribute | Type | Description | Examples |
|---|---|---|---|
dom_event.is_trusted | boolean | experimental Interaction is genuine from real user and not a synthetic event. | true |
interaction.name | string | deprecated Replaced with interaction.type.Type of action performed by the user. | click |
interaction.type | string | experimental Type of action performed by the user. Mobile is limited to touch, gesture, and rotation; all other values are web only. | click |
ui_element.custom_name | string | experimental Custom name of the element. Filled by the data-dt-name or the data-dt-children-name DOM attribute. | Add to cart; Homepage logo |
ui_element.name | string | experimental Name of the element taken from the following fields by priority: ui_element.custom_name, ui_element.name, ui_element.ancestor.custom_name, ui_element.ancestor.name | Add to cart; Homepage logo |
ui_element.name_origin | string | experimental Field used to fill ui_element.name. | title; name; id; content; value |
ui_element.tag_name | string | experimental User interface element type. For web, it's the tag name. For mobile, it's the name of, for example, the controller or fragment | div; CartFragment |
| Attribute | Type | Description | Examples |
|---|---|---|---|
performance.type | string | experimental The navigation type according to the W3C navigation timing. Only available for hard navigations. | navigate |
User action source fields describe the element the user interacted with on the previous page to trigger this hard navigation. Only present for hard navigation actions when source context was stored and successfully consumed on load.
| Attribute | Type | Description | Examples |
|---|---|---|---|
user_action.source.start_time | timestamp | experimental Timestamp of the source event that triggered the navigation. The value is a UNIX Epoch time in nanoseconds. Time correction is applied. | 1700000000000000000 |
user_action.source.client_start_time | timestamp | experimental Timestamp of the source event that triggered the navigation in client time. The value is a UNIX Epoch time in nanoseconds. | 1700000000000000000 |
user_action.source.action.instance_id | uid | experimentaluser_action.instance_id of the user action that is the source for this hard navigation. The user_action.source.action.instance_id is an 8-byte ID and hex-encoded if shown as a string. | f76281848bd8288c |
user_action.source.action.type | string | experimentaluser_action.type of the user action that is the source for this hard navigation. Uses the same enum values as user_action.type. | hard_navigation |
user_action.source.view.detected_name | string | experimental View name where the source event occurred as detected by RUM JavaScript. Dynatrace can mask this field. To learn more, go to masking personal data in URIs. | ShoppingCartView |
user_action.source.view.instance_id | uid | experimental ID of the view where the source event occurred. The user_action.source.view.instance_id is an 8-byte ID and hex-encoded if shown as a string. | f76281848bd8288c |
user_action.source.view.url.full | string | experimental Full URL of the view where the source event occurred. Dynatrace can mask this field. To learn more, go to masking personal data in URIs. | https://example.com/#cart |
user_action.source.interaction.type | string | experimental Type of the triggering interaction on the source page. Uses the same enum values as interaction.type. | click |
user_action.source.ui_element.detected_name | string | experimental Detected name of the source element. | Checkout |
user_action.source.ui_element.name_origin | string | experimental The origin of the source element name. | text_content |
user_action.source.ui_element.tag_name | string | experimental HTML tag of the source element. | button |
user_action.source.ui_element.custom_name | string | experimental Name of the source element provided via the data-dt-name or data-dt-children-name DOM attribute. | Add to cart |
user_action.source.dom_event.is_trusted | boolean | experimental Indicates whether the source interaction was genuine from a real user and not a synthetic event. | true |
user_action.source.is_referrer_mismatch | boolean | experimental Set to true if the stored source view URL did not match document.referrer but the source attribution was kept despite the mismatch. | true |
| Attribute | Type | Description | Examples |
|---|---|---|---|
network.protocol.name | string | stable Display name: Network protocolOSI Application Layer or non-OSI equivalent. This is a mandatory field for request user events. | amqp; http; mqtt |
| Attribute | Type | Description | Examples |
|---|---|---|---|
url.domain | string | experimental Display name: URL domainThe URI domain component. This is extracted from url.full. | www.foo.bar; google.com; wikipedia.org |
url.fragment | string | stable Display name: URL fragmentThe URI fragment component. This is extracted from url.full. | SemConv |
url.full | string | stable Display name: Full URLAbsolute URL describing a network resource according to RFC3986. OneAgent for Mobile removes the optional user information subcomponent. This is a mandatory field for request user events. Dynatrace can mask this field. To learn more, go to masking personal data in URIs. Tags: sensitive-spans | https://www.foo.bar/docs/search?q=OpenTelemetry#SemConv |
url.path | string | stable Display name: URL pathThe URI path component. This is extracted from url.full. | /docs/search |
url.provider | string | experimental Display name: URL providerThe provider type for the host name of url.full. This information is determined by Dynatrace RUM resource detection. | third_party |
url.query | string | stable Display name: URL queryThe URI query component. This is extracted from url.full.Tags: sensitive-spans | q=OpenTelemetry |
url.scheme | string | stable Display name: URL schemeThe URI scheme component identifying the used protocol. This is extracted from url.full. | https; ftp; telnet |
| Attribute | Type | Description | Examples |
|---|---|---|---|
error.csp_violation_count | long | experimental Display name: Error CSP violation countThe number of CSP rule violations. | 1 |
error.dropped_exception_count | long | experimental Display name: Error dropped exception countThe number of exceptions that are observed, but which are not captured due to error capture limits. | 1 |
error.exception_count | long | experimental Display name: Error exception countThe total number of exceptions that are observed, including exceptions that are not captured. | 1 |
error.http_4xx_count | long | experimental Display name: Error HTTP 4xx countThe number of HTTP request errors with an http.response.status_code of 400-499. | 1 |
error.http_5xx_count | long | experimental Display name: Error HTTP 5xx countThe number of HTTP request errors with an http.response.status_code of 500-599. | 1 |
error.http_other_count | long | experimental Display name: Error HTTP other countThe number of HTTP request errors with an http.response.status_code of 0-99 or 600+ (undefined errors). | 1 |
| Attribute | Type | Description | Examples |
|---|---|---|---|
web_vitals.cumulative_layout_shift | double | stable The Cumulative Layout Shift (CLS) value. | 0.1279 |
web_vitals.first_input | duration | stable The First Input value. | 6000000 |
web_vitals.first_input_delay | duration | stable The First Input Delay (FID) value. | 6000000 |
web_vitals.interaction_to_next_paint | duration | stable The Interaction to Next Paint (INP) value. | 190000000 |
web_vitals.largest_contentful_paint | duration | stable The Largest Contentful Paint (LCP) value. | 880000000 |
| Attribute | Type | Description | Examples |
|---|---|---|---|
experience.level | string | experimental The user experience level of an event. By default, Dynatrace sets this field on user actions based on user action duration using a predefined OpenPipeline processor. The processor can be duplicated, modified, or replaced to adjust thresholds, apply custom logic, or extend coverage to other event types. Events without this field are excluded from the Experience Score calculation. | satisfied; tolerating; frustrated |
experience.weight | long | experimental A positive integer weight applied when computing the weighted Experience Score. The predefined processor sets this to 1 for all action events. Custom processors may assign higher weights to more impactful event types such as crashes or errors. | 1; 5 |
experience.level MUST be one of the following:
| Value | Description | Display name |
|---|---|---|
frustrated | frustrated | Frustrated |
satisfied | satisfied | Satisfied |
tolerating | tolerating | Tolerating |
The Largest Contentful Paint (LCP) attributes contain additional information about the captured web_vitals.largest_contentful_paint.
| Attribute | Type | Description | Examples |
|---|---|---|---|
lcp.status | string | experimental The status information for LCP. | reported |
lcp.update_count | long | experimental The number of LCP updates during the entire lifespan. | 0 |
lcp.start_time | double | experimental The value of the LCP object's startTime property. The unit is milliseconds. | 880.0 |
lcp.url | string | experimental If the element is an image, the request URL of the image. | https://www.foo.bar/images/image.png |
lcp.load_time | double | experimental The value of the LCP object's loadTime property (the time the element was loaded). The unit is milliseconds. In case the element finished to load but the browser did not render it yet, a negative value is reported. | 874.0 |
lcp.render_time | double | experimental The value of the LCP object's renderTime property (the time that the element was rendered). The unit is milliseconds. | 880.0 |
lcp.size | long | experimental The intrinsic size of the element representing its area on the screen. The value is equal to the element's width multiplied by its height, in pixels. | 53640 |
lcp.id | string | experimental The element's ID. | productLogo |
lcp.ui_element.xpath | string[] | experimental The element's xpath. Might be missing, for example, for element's that are inside a shadow DOM. | ['html[1]', 'body[1]', 'div[@id="elementId"]', 'section[1]', 'form[1]', 'div[5]', 'button[1]'] |
lcp.ui_element.tag_name | string | experimental The element's tag name. Might be missing, for example, for element's that are inside a shadow DOM. | BUTTON |
lcp.ui_element.render_delay | double | experimental The element's render delay, that is the time between when the element finishes loading and when it is fully rendered. The unit is milliseconds. Only available if a resource timing is available for the element. | 100.0 |
lcp.resource.load_delay | double | experimental The resource's load delay, that is the time between Time to First Byte and when the browser starts loading the resource. The unit is milliseconds. Only available if a resource timing is available for the resource. | 400.0 |
lcp.resource.load_duration | double | experimental The resource's load duration, that is the total time it takes to load the resource. The unit is milliseconds. Only available if a resource timing is available for the resource. | 300.0 |
lcp.status MUST be one of the following:
| Value | Description |
|---|---|
backgrounded | LCP is not reported because the browser tab was loaded in the background. |
disabled | LCP is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_reported | LCP is not reported because the page has no content. |
not_supported | LCP is not supported by the browser. |
reported | LCP is reported. |
The First Input Delay (FID) attributes contain additional information about the captured web_vitals.first_input_delay.
| Attribute | Type | Description | Examples |
|---|---|---|---|
fid.status | string | experimental The status information for FID. | not_reported |
fid.loading_state | string | experimental The document's loading state recorded at the point in time when the FID was captured. | complete |
fid.start_time | double | experimental The value of the FID object's startTime property. The unit is milliseconds. | 13427.0 |
fid.duration | double | experimental The value of the FID object's duration property. The unit is milliseconds. | 24.0 |
fid.name | string | experimental The value of the FID object's name property (the user interaction event). | click |
fid.processing_start | double | experimental The value of the FID object's processingStart property. The unit is milliseconds. | 13433.0 |
fid.processing_end | double | experimental The value of the FID object's processingEnd property. The unit is milliseconds. | 13433.0 |
fid.processing_duration | double | experimental How long it took for the event handler to execute. This is calculated as fid.processing_end minus fid.processing_start. | 0.0 |
fid.cancelable | boolean | experimental The value of the FID object's cancelable property. | true |
fid.ui_element.xpath | string[] | experimental The element's xpath. Might be missing, for example, for element's that are inside a shadow DOM. | ['html[1]', 'body[1]', 'div[@id="elementId"]', 'section[1]', 'form[1]', 'div[5]', 'button[1]'] |
fid.ui_element.tag_name | string | experimental The element's tag name. Might be missing, for example, for element's that are inside a shadow DOM. | BUTTON |
fid.status MUST be one of the following:
| Value | Description |
|---|---|
disabled | FID is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_reported | FID is not reported because there was no user interaction. |
not_supported | FID is not supported by the browser. |
reported | FID is reported. |
fid.loading_state MUST be one of the following:
| Value | Description |
|---|---|
complete | The document and all sub-resources have finished loading. |
dom_content_loaded | The document has been parsed and deferred scripts have finished loading but other sub-resources such as async scripts, images, stylesheets, and frames are still loading. |
dom_interactive | The document has finished loading and the document has been parsed but sub-resources such as scripts, images, stylesheets, and frames are still loading. |
loading | The document is still loading. |
The Interaction to Next Paint (INP) attributes contain additional information about the captured web_vitals.interaction_to_next_paint.
| Attribute | Type | Description | Examples |
|---|---|---|---|
inp.status | string | experimental The status information for INP. | reported |
inp.update_count | long | experimental The number of INP updates during the entire lifespan. | 0 |
inp.interaction_count | long | experimental The number of interactions, during the entire lifespan, that exceed 40 milliseconds. | 0 |
inp.loading_state | string | experimental The document's loading state recorded at the point in time when the INP was captured. | complete |
inp.start_time | double | experimental The value of the INP object's startTime property. The unit is milliseconds. | 13427.0 |
inp.duration | double | experimental The value of the INP object's duration property. The unit is milliseconds. | 24.0 |
inp.name | string | experimental The value of the INP object's name property (the user interaction event). | click |
inp.processing_start | double | experimental The value of the INP object's processingStart property. The unit is milliseconds. | 13433.0 |
inp.processing_end | double | experimental The value of the INP object's processingEnd property. The unit is milliseconds. | 13433.0 |
inp.processing_duration | double | experimental How long it took for the event handler to execute. This is calculated as inp.processing_end minus inp.processing_start. | 0.0 |
inp.cancelable | boolean | experimental The value of the INP object's cancelable property. | true |
inp.ui_element.xpath | string[] | experimental The element's xpath. Might be missing, for example, for element's that are inside a shadow DOM. | ['html[1]', 'body[1]', 'div[@id="elementId"]', 'section[1]', 'form[1]', 'div[5]', 'button[1]'] |
inp.ui_element.tag_name | string | experimental The element's tag name. Might be missing, for example, for element's that are inside a shadow DOM. | BUTTON |
inp.status MUST be one of the following:
| Value | Description |
|---|---|
below_threshold | INP is not reported because the value is below the threshold of 40 milliseconds. |
disabled | INP is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_reported | INP is not reported because no relevant user interaction happened. |
not_supported | INP is not supported by the browser. |
reported | INP is reported. |
inp.loading_state MUST be one of the following:
| Value | Description |
|---|---|
complete | The document and all sub-resources have finished loading. |
dom_content_loaded | The document has been parsed and deferred scripts have finished loading but other sub-resources such as async scripts, images, stylesheets, and frames are still loading. |
dom_interactive | The document has finished loading and the document has been parsed but sub-resources such as scripts, images, stylesheets, and frames are still loading. |
loading | The document is still loading. |
The Cumulative Layout Shift (CLS) attributes contain additional information about the captured web_vitals.cumulative_layout_shift.
| Attribute | Type | Description | Examples |
|---|---|---|---|
cls.status | string | experimental The status information for CLS. | not_supported |
cls.update_count | long | experimental The number of CLS updates during the entire lifespan. | 0 |
cls.loading_state | string | experimental The document's loading state recorded at the point in time when the CLS was captured. | complete |
cls.value | double | experimental The final CLS value. | 0.1279 |
cls.ui_element.xpath | string[] | experimental The xpath of the element causing the largest layout shift. Might be missing, for example, for elements that are inside a shadow DOM. | ['html[1]', 'body[1]', 'div[@id="elementId"]', 'section[1]', 'form[1]', 'div[5]', 'button[1]'] |
cls.ui_element.tag_name | string | experimental The tag name of the element causing the largest layout shift. Might be missing, for example, for elements that are inside a shadow DOM. | BUTTON |
cls.ui_element.shift_time | double | experimental The time when the largest layout shift occurred. The value is relative to start_time. The unit is milliseconds. | 2066.9 |
cls.ui_element.shift_value | double | experimental The layout shift score of the element causing the largest layout shift. | 0.11 |
cls.status MUST be one of the following:
| Value | Description |
|---|---|
backgrounded | CLS is not reported because the page was loaded in the background or backgrounded before the browser painted any content. |
disabled | CLS is not reported because capturing of page and view summaries is disabled (only used for activity events). |
not_supported | CLS is not supported by the browser. |
reported | CLS is reported. |
cls.loading_state MUST be one of the following:
| Value | Description |
|---|---|
complete | The document and all sub-resources have finished loading. |
dom_content_loaded | The document has been parsed and deferred scripts have finished loading but other sub-resources such as async scripts, images, stylesheets, and frames are still loading. |
dom_interactive | The document has finished loading and the document has been parsed but sub-resources such as scripts, images, stylesheets, and frames are still loading. |
loading | The document is still loading. |
| Attribute | Type | Description | Examples |
|---|---|---|---|
long_task.status | string | experimental The status information for long task information. | not_supported |
long_task.all.count | long | experimental The number of all long tasks observed during the entire lifespan. | 2 |
long_task.all.avg_duration | long | experimental The average duration of all observed long tasks in milliseconds. | 60 |
long_task.all.slowest_occurrences | record[] | experimental The start time and the duration of the slowest observed long tasks in milliseconds. The start time is relative to the user event's start_time. | {'duration': 60, 'start_time': 1234}; {'duration': 58, 'start_time': 2999} |
long_task.self.count | long | experimental The number of long tasks from the same browser context or frame observed during the entire lifespan. Only long tasks with long_task.name set to self are considered. | 2 |
long_task.self.avg_duration | long | experimental The average duration of the observed long tasks from the same browser context or frame in milliseconds. Only long tasks with long_task.name set to self are considered. | 60 |
long_task.self.slowest_occurrences | record[] | experimental The start time and the duration of the slowest observed long tasks from the same browser context or frame in milliseconds. The start time is relative to the user event's start_time. Only long tasks with long_task.name set to self are considered. | {'duration': 60, 'start_time': 1234}; {'duration': 58, 'start_time': 2999} |
long_task.status MUST be one of the following:
| Value | Description |
|---|---|
disabled | Long task information is not reported because capturing of long task summary metrics is disabled. |
not_reported | Long task information is not reported because no long task was observed. |
not_supported | Long tasks API is not supported by the browser. |
reported | Long task information is reported. |
| Attribute | Type | Description | Examples |
|---|---|---|---|
loaf.status | string | experimental The status of long animation frame summary information. | not_supported |
loaf.count | long | experimental The number of long animation frames observed during the entire lifespan. | 2 |
loaf.avg_duration | double | experimental The average duration of all observed long animation frames in milliseconds. | 75.5 |
loaf.total_blocking_duration | double | experimental The total blocking duration across all observed long animation frames in milliseconds. | 120.3 |
loaf.max_blocking_duration | double | experimental The maximum blocking duration of a single observed long animation frame in milliseconds. | 80.1 |
loaf.slowest_occurrences | record[] | experimental The start time, duration, and blocking duration of the slowest observed long animation frames in milliseconds, including optional attribution details such as render_start, style_and_layout_start, presentation_time, script_count, has_interaction, and longest_script. The start time is relative to the user event's start_time. | {'start_time': 1234.0, 'duration': 75.5, 'blocking_duration': 45.6}; {'start_time': 1234.0, 'duration': 75.5, 'blocking_duration': None} |
loaf.status MUST be one of the following:
| Value | Description |
|---|---|
disabled | Long animation frame information is not reported because capturing of long animation frame summary metrics is disabled. |
not_reported | Long animation frame information is not reported because no long animation frame was observed. |
not_supported | Long Animation Frames API is not supported by the browser. |
reported | Long animation frame information is reported. |
The basic attributes for all user events are defined in the user event base model.