Skip to main content
Web RUM SDK automatically collects rich user behavior and performance data. Each RUM event includes default attributes (such as view.url, device.type, geo.country) as well as additional metrics and attributes specific to each event type.

Default Attributes

Web RUM SDK automatically captures the following default attributes, applicable to all RUM event types.
AttributeTypeDescription
dateIntegerEvent timestamp (in milliseconds, epoch milliseconds)
typeStringEvent type (e.g., session, view, resource, error, action)
application.idStringApplication unique identifier
serviceStringService name that generated this event
envStringApplication environment name (e.g., prod, dev, staging)
versionStringApplication version
sdk_versionStringRUM SDK version
AttributeTypeDescription
device.typeStringDevice type (e.g., Desktop, Mobile, Tablet, TV, Other)
device.brandStringDevice brand (e.g., Apple, Samsung, Huawei)
device.modelStringDevice model (e.g., iPhone, iPad)
device.nameStringDevice commercial name
AttributeTypeDescription
os.nameStringOperating system name (e.g., Mac OS, Windows, iOS)
os.versionStringOperating system version (e.g., 10.15.7, 11.0)
os.version_majorStringOperating system major version (e.g., 10, 11)
AttributeTypeDescription
browser.nameStringBrowser name (e.g., Chrome, Firefox, Safari, Edge)
browser.versionStringBrowser version (e.g., 91.0.4472.124)
browser.version_majorStringBrowser major version (e.g., 91)
browser.user_agentStringUser Agent string
browser.viewport.widthNumberBrowser viewport width (pixels)
browser.viewport.heightNumberBrowser viewport height (pixels)
AttributeTypeDescription
geo.countryStringCountry name
geo.country_iso_codeStringCountry ISO code (e.g., US, CN)
geo.country_subdivisionStringFirst-level administrative division (e.g., US states, China provinces)
geo.continent_codeStringContinent ISO code (e.g., EU, AS, NA)
geo.continentStringContinent name
geo.cityStringCity name
Geo-location information is inferred by FlashCat backend based on client IP address. Precise GPS location is not collected on the client.
AttributeTypeDescription
usr.idStringUser unique identifier
usr.nameStringUser-friendly name, displayed by default in RUM UI
usr.emailStringUser email address. Displayed if no username is set
You can also add custom user attributes such as usr.plan, usr.role, etc. To set user information, see SDK Integration Guide.

Event-Specific Attributes

Different event types have specific attributes and metrics.
AttributeTypeDescription
session.idStringSession unique identifier
session.typeStringSession type (e.g., user, synthetic)
session.is_activeBooleanWhether session is active
session.initial_view.idStringInitial view ID in session
session.initial_view.urlStringInitial view URL in session
session.initial_view.nameStringInitial view name in session
session.last_view.idStringLast view ID in session
session.last_view.urlStringLast view URL in session
session.last_view.nameStringLast view name in session
session.has_replayBooleanWhether session has replay enabled
RUM collects all performance metrics from the Navigation Timing API as well as metrics related to Core Web Vitals.Core Web Vitals
AttributeTypeDescription
view.largest_contentful_paintNumber (ns)Largest Contentful Paint (LCP), render time of the largest visible content element in viewport
view.first_input_delayNumber (ns)First Input Delay (FID), time from user’s first interaction to browser’s actual response
view.cumulative_layout_shiftNumberCumulative Layout Shift (CLS), quantifies unexpected movement of visible elements in viewport
view.interaction_to_next_paintNumber (ns)Interaction to Next Paint (INP), measures latency of all user interactions with the page
Navigation Performance Metrics
AttributeTypeDescription
view.time_spentNumber (ns)Time user spent on this view
view.loading_timeNumber (ns)Time for page to fully load (triggered at loadEventEnd)
view.first_contentful_paintNumber (ns)First Contentful Paint (FCP), time when browser first renders any text, image, non-blank canvas or SVG
view.first_byteNumber (ns)Time to First Byte (TTFB), time from user initiating page load to browser receiving first byte of HTML document
view.dom_interactiveNumber (ns)Time when parser finished working on main document (domInteractive)
view.dom_content_loadedNumber (ns)Time when initial HTML document is fully loaded and parsed
view.dom_completeNumber (ns)Time when page and all sub-resources are ready (domComplete)
view.load_eventNumber (ns)Time when load event fired (loadEventEnd), indicating page fully loaded
Network Timing Metrics
AttributeTypeDescription
view.redirect.durationNumber (ns)Time spent on redirects
view.dns.durationNumber (ns)Time spent on DNS lookup
view.connect.durationNumber (ns)Time spent establishing server connection
view.ssl.durationNumber (ns)Time spent on TLS handshake
view.request.durationNumber (ns)Time spent requesting HTML document
view.response.durationNumber (ns)Time spent downloading HTML document
view.in_foreground_periods.countNumberNumber of times view was in foreground
view.in_foreground_periods.durationNumber (ns)Total time view was in foreground
AttributeTypeDescription
view.idStringView unique identifier
view.urlStringView URL
view.nameStringCustomizable view name
view.referrerStringPrevious page URL (referrer)
view.action.countNumberNumber of user actions collected in this view
view.error.countNumberNumber of errors collected in this view
view.resource.countNumberNumber of resources collected in this view
view.long_task.countNumberNumber of long tasks collected in this view
view.is_activeBooleanWhether view is active
RUM collects detailed network timing information from the Resource Timing API for individual resource loading.
AttributeTypeDescription
resource.durationNumber (ns)Total time to load resource
resource.sizeNumber (bytes)Resource size
resource.connect.durationNumber (ns)Time to establish server connection
resource.ssl.durationNumber (ns)Time for TLS handshake (HTTPS only)
resource.dns.durationNumber (ns)Time for DNS resolution
resource.redirect.durationNumber (ns)Time for redirects
resource.first_byte.durationNumber (ns)Time waiting to receive first byte of response
resource.download.durationNumber (ns)Time to download response
resource.render_blocking_statusStringResource render blocking status (blocking, non-blocking)
resource.first_partyBooleanWhether resource is first-party (same domain as application)
AttributeTypeDescription
resource.idStringResource unique identifier
resource.typeStringResource type (e.g., xhr, fetch, css, js, image, font, media)
resource.methodStringHTTP method (e.g., GET, POST, PUT, DELETE)
resource.status_codeNumberHTTP response status code
resource.urlStringResource URL
resource.url_hostStringURL host part
resource.url_pathStringURL path part
resource.url_queryObjectURL query parameters, parsed as key-value pairs
resource.url_schemeStringURL scheme (e.g., https, http)
resource.provider.nameStringResource provider name, defaults to unknown
resource.provider.domainStringResource provider domain
resource.provider.typeStringResource provider type (e.g., first-party, cdn, ad, analytics, social)
If GraphQL request tracking is enabled, the following attributes are attached to resource events:
AttributeTypeDescription
resource.graphql.operation_typeStringGraphQL operation type (query, mutation, subscription)
resource.graphql.operation_nameStringGraphQL operation name (if provided in request)
resource.graphql.variablesStringGraphQL variables sent with request
resource.graphql.payloadStringGraphQL query (limited to 32 KB, only available when trackPayload is enabled)
resource.graphql.errors_countNumberNumber of errors returned in GraphQL response (only available when trackResponseErrors is enabled)
resource.graphql.errorsArrayGraphQL errors array, containing message, code, locations and path
Long tasks are tasks that block the main thread for 50 milliseconds or longer. These tasks cause high input delay, slow interactions, or janky animations/scrolling.
AttributeTypeDescription
long_task.durationNumber (ns)Long task duration
long_task.is_frozen_frameBooleanWhether it’s a frozen frame (duration exceeds 700ms)
Long task detection is only available in browsers that support the Long Tasks API (Chrome, Edge). Safari and Firefox don’t support this feature.
Frontend errors are collected via RUM. Error messages and stack traces (if available) are included.General Error Attributes
AttributeTypeDescription
error.idStringError unique identifier
error.sourceStringError source (e.g., console, network, source, logger, agent, webview, custom, report)
error.typeStringError type (in some cases, error code)
error.messageStringConcise, human-readable one-line error message
error.stackStringError stack trace or supplementary information
error.issue_idStringError issue unique identifier (same errors are grouped into the same issue)
error.fingerprintStringFingerprint for uniquely identifying the error
error.handlingStringError handling method (handled, unhandled)
error.handling_stackStringStack trace when error was handled
error.causesArrayInformation about other errors that caused this error
Network Error AttributesNetwork errors contain information about failed HTTP requests:
AttributeTypeDescription
error.resource.status_codeNumberHTTP response status code
error.resource.methodStringHTTP method (e.g., GET, POST)
error.resource.urlStringResource URL
error.resource.url_hostStringURL host part
error.resource.url_pathStringURL path part
error.resource.url_schemeStringURL scheme
error.resource.provider.nameStringResource provider name, defaults to unknown
error.resource.provider.domainStringResource provider domain
error.resource.provider.typeStringResource provider type (e.g., first-party, cdn, ad, analytics)
For more information about different JavaScript error types, see MDN documentation.
Action Timing Attributes
AttributeTypeDescription
action.loading_timeNumber (ns)Action loading time
action.long_task.countNumberNumber of long tasks triggered by this action
action.resource.countNumberNumber of resources triggered by this action
action.error.countNumberNumber of errors triggered by this action
Action Identification Attributes
AttributeTypeDescription
action.idStringUser action unique identifier (UUID)
action.typeStringUser action type (e.g., click, custom). Set to custom for custom user actions
action.target.nameStringElement user interacted with. Only for auto-collected actions
action.nameStringUser-friendly name (e.g., Click on #checkout). For custom user actions, the action name given in API call
RUM automatically detects user frustration signals, helping you understand problems users encounter in your application.
AttributeTypeDescription
session.frustration.countNumberTotal frustration signals in session
view.frustration.countNumberTotal frustration signals in view
action.frustration.type:dead_clickStringDead click detected by RUM SDK (click with no response)
action.frustration.type:rage_clickStringRage click detected by RUM SDK (rapid consecutive clicks)
action.frustration.type:error_clickStringError click detected by RUM SDK (click that triggered an error)
Frustration signals are important indicators for identifying user experience issues. Dead clicks and rage clicks typically indicate UI response delays or interaction design problems.
If the URL contains UTM parameters, RUM automatically captures the following attributes for tracking marketing campaigns:
AttributeTypeDescription
view.url_query.utm_sourceStringURL parameter tracking traffic source
view.url_query.utm_mediumStringURL parameter tracking which channel traffic came from
view.url_query.utm_campaignStringURL parameter identifying specific marketing campaign associated with this view
view.url_query.utm_contentStringURL parameter identifying specific element user clicked in marketing campaign
view.url_query.utm_termStringURL parameter tracking keyword user searched to trigger given campaign

Data Storage

Before uploading to FlashCat, data is temporarily stored in plaintext in the browser’s local storage (LocalStorage or SessionStorage).
1

Data Collection

SDK adds events to an in-memory batch buffer.
2

Local Caching

When network is unavailable, batches are retained in local storage.
3

Batch Upload

When network is available, data is sent to server in batches.
4

Auto Cleanup

Data exceeding certain time limits is automatically cleaned up to avoid excessive storage usage.
Sensitive data should not be included in RUM events, or should be obfuscated or filtered via the beforeSend callback before sending.

Data Upload

Web RUM SDK uploads collected events to the server in batches to optimize network performance and reduce impact on user experience.

Batch Upload Triggers

  • Event count in batch reaches threshold
  • Batch size reaches threshold
  • Periodic upload (e.g., every 10 seconds)
  • Page unload (beforeunload event)

Upload Strategy

StrategyDescription
Beacon APIPreferred, ensures data isn’t lost when page unloads
XHR/Fetch FallbackIf Beacon API unavailable, uses XMLHttpRequest or Fetch API
Failure RetryIf upload fails, batch is retained in local storage until successfully sent
Data CompressionBatch data is compressed before upload to reduce network traffic

Privacy and Compliance

IP Address Anonymization

SDK can be configured to anonymize IP addresses

Sensitive Data Filtering

Use beforeSend callback to filter or obfuscate sensitive information

Cookie and Storage Control

Configurable whether to use cookies and local storage

GDPR/CCPA Compliance

Supports user privacy opt-out mechanism
For detailed privacy configuration information, see Advanced Configuration.

More Information