Skip to main content
iOS RUM SDK automatically generates events with relevant metrics and attributes. Each RUM event includes default attributes (such as view.url, device.type, geo.country) as well as event-specific metrics and attributes (such as view.time_spent, resource.method).

App Startup Metrics

During app startup, the iOS SDK automatically records app startup time and creates corresponding views.
Startup time measures the time interval from process start to the first applicationDidBecomeActive notification.
AttributeTypeDescription
view.is_start_viewBooleanIdentifies if this view is the initial view created at app startup
action.typeStringType of app startup action, value is application_start
action.loading_timeNumber (ns)Time required for app startup

View Monitoring

In iOS apps, views are automatically created when users visit different screens. Views start recording when users open a screen and stop when the view is no longer visible.
View Lifecycle Management:
  • Views don’t end immediately when stopped, but remain in inactive state for a period
  • If a new view starts during this period, the previous view will completely end
  • If no new view starts, the previous view will resume to active state
Background Behavior:
  • When app enters background, SDK retains the last active view and monitors background events
  • Background time is not counted toward the active view’s time_spent metric
  • If user returns to app immediately, SDK resumes the original time_spent measurement

Default Attributes

iOS RUM SDK automatically attaches default attributes to all events, helping you understand user devices, network status, and app context.
AttributeTypeDescription
dateIntegerEvent timestamp (milliseconds)
typeStringEvent type (e.g., session, view, resource, error, action)
serviceStringService name that generated this event
application.idStringApplication unique identifier
The following device-related attributes are automatically attached to all events:
AttributeTypeDescription
device.typeStringDevice type (e.g., Mobile, Tablet, TV, Desktop, Other)
device.brandStringDevice brand, Apple for iOS devices
device.modelStringDevice model (e.g., iPhone, iPad, iPod Touch, Apple TV)
device.nameStringDevice name
The following OS-related attributes are automatically attached to all events:
AttributeTypeDescription
os.nameStringOperating system name (e.g., iOS, iPadOS, tvOS)
os.versionStringOperating system version (e.g., 15.4.1, 16.0)
os.version_majorStringOperating system major version (e.g., 15, 16)
The following network-related attributes are automatically attached to resource and error events:
AttributeTypeDescription
connectivity.statusStringDevice network connection status (e.g., connected, not_connected)
connectivity.interfacesString ArrayAvailable network interface types (e.g., wifi, cellular, ethernet)
connectivity.cellular.technologyStringCellular network technology type (e.g., 3G, 4G, LTE, 5G)
connectivity.cellular.carrier_nameStringCellular network carrier name
The following attributes relate to IP address geo-location:
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)
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.
You can enable user tracking on all RUM events to correlate user sessions and simplify troubleshooting.
AttributeTypeDescription
usr.idStringUser unique identifier
usr.nameStringUser-friendly name, displayed by default in RUM UI
usr.emailStringUser email address, displayed if no username
User attributes are optional but we recommend providing at least one. See Track User Information.

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_crashBooleanWhether session contains crash events
session.has_replayBooleanWhether session has replay enabled
AttributeTypeDescription
view.idStringView unique identifier
view.urlStringView URL, corresponds to UIViewController class name
view.nameStringCustomizable view name
view.referrerStringPrevious view URL
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.time_spentNumber (ns)Time user spent on this view
view.network_settled_timeNumber (ns)Time for view to fully initialize at startup
view.is_activeBooleanWhether view is active
view.is_slow_renderedBooleanWhether view rendering is slow
view.crash.countNumberNumber of crashes in this view
view.frozen_frame.countNumberNumber of frozen frames in this view
view.refresh_rate_averageNumberView average refresh rate
view.refresh_rate_minNumberView minimum refresh rate
view.memory_averageNumberView average memory usage
view.memory_maxNumberView maximum memory usage
view.cpu_ticks_countNumberView CPU tick count
view.cpu_ticks_per_secondNumberView CPU ticks per second
AttributeTypeDescription
resource.idStringResource unique identifier
resource.urlStringResource URL
resource.methodStringHTTP method (e.g., GET, POST, PATCH, DELETE)
resource.typeStringResource type (e.g., xhr, image, font, css, js)
resource.status_codeNumberHTTP response status code
resource.sizeNumber (bytes)Resource size
resource.durationNumber (ns)Total time to load resource
resource.connect.durationNumber (ns)Time to establish server connection (connectEnd - connectStart)
resource.ssl.durationNumber (ns)Time for TLS handshake
resource.dns.durationNumber (ns)Time for DNS resolution (domainLookupEnd - domainLookupStart)
resource.first_byte.durationNumber (ns)Time waiting for first byte response (responseStart - requestStart)
resource.download.durationNumber (ns)Time to download response (responseEnd - responseStart)
resource.redirect.durationNumber (ns)Time for subsequent HTTP requests (redirectEnd - redirectStart)
AttributeTypeDescription
error.idStringError unique identifier
error.messageStringConcise, human-readable one-line error message
error.sourceStringError source (e.g., network, source, console, webview)
error.stackStringError stack trace or supplementary information
error.typeStringError type or error code
error.is_crashBooleanWhether this error caused app crash
AttributeTypeDescription
action.idStringUser action UUID
action.typeStringUser action type (e.g., tap, scroll, swipe, application_start)
action.nameStringUser action name
action.target.nameStringElement user interacted with
action.loading_timeNumber (ns)Action loading time
action.resource.countNumberNumber of resources triggered by this action
action.error.countNumberNumber of errors triggered by this action

Data Storage

Before data is uploaded to Flashcat, it is stored in plaintext in the app’s cache directory.
Security Protection:
  • Cache folder is protected by iOS app sandbox
  • Other apps cannot read this data
Security Notes:
  • If device is jailbroken, stored data may become readable
  • Sensitive data should not be included in RUM events, or should be obfuscated or filtered via Event Mapper before sending