Skip to main content
About Dependencies and Package NamesFlashduty iOS SDK is fully compatible with the Datadog open-source protocol. When adding dependencies via Swift Package Manager or CocoaPods, use names like FlashcatCore and FlashcatRUM, but in code, import modules like DatadogCore and DatadogRUM. You can seamlessly leverage Datadog ecosystem documentation, examples, and best practices while enjoying Flashduty platform services.
Flashduty iOS RUM SDK provides rich advanced configuration options to help you customize data collection and context information based on business needs.
Supported Configuration Scenarios:
  • Enrich user sessions - Add custom views, actions, resources, and error information
  • Protect sensitive data - Mask personally identifiable information and sensitive data
  • Associate user sessions - Link user sessions with internal user identifiers
  • Control data volume - Optimize data collection through sampling and event filtering
  • Enhance context - Add custom attributes to data

Enrich User Sessions

Custom Views

In addition to auto-tracked views, you can manually track custom views:
Parameter Description:
  • key (String) - Unique identifier for the view, same key used for startView and stopView
  • name (String) - Name of the view
  • attributes (Dictionary) - Attributes attached to the view (optional)

Custom Actions

Track specific custom user actions:

Custom Resources

Manually track specific custom resources:

Custom Errors

Record specific errors:

Set User Information

Set user information for the current session:
Only standard user fields are supported: id, name, email, and anonymous_id. Other user attributes are not supported. If needed, configure them under context.

Event and Data Management

Clear All Data

Clear all unsent data currently stored in the SDK:

Sampling

Control the percentage of sessions that collect RUM data:
Sampled-out sessions will not collect any page views or related telemetry data.

App Hang Detection

An App Hang is a period during which the main thread is blocked and the UI cannot respond to user input. On iOS it is the only data source behind the Unresponsive Time Rate metric in the analytics dashboard.
appHangThreshold defaults to nil, which means App Hang detection is off. Unless you set it explicitly, your iOS app reports no App Hang data and the “Unresponsive Time Rate” card stays empty.
Notes:
  • The minimum allowed value is 0.1 seconds; lower values are raised to 0.1 automatically. For production, 0.25–0.5 seconds is recommended, as a lower threshold produces a lot of noise.
  • The SDK detects hangs with a 2.5% tolerance, so hangs lasting very close to the threshold may not be reported.
  • Enable crash reporting as well, otherwise App Hang errors are reported without a stack trace.
  • An App Hang that never recovers, and ends with the system terminating the app, is recorded as a fatal error: it counts toward the crash count and lowers the crash-free rate. Non-fatal hangs are recorded as errors with error.category = App Hang.
  • Android has no equivalent option: its main-thread freeze threshold is fixed at 5 seconds.
To comply with privacy regulations like GDPR and CCPA, you can set user tracking consent state:

Global Context

Add global context attributes that will be attached to all RUM events:

Event Mappers

Use Event Mappers to modify or filter events before they are sent:
View events cannot be discarded (returning nil has no effect).

SDK Integration

Learn how to quickly integrate the RUM SDK

Data Collection

Learn about data types and attributes collected by the SDK

Compatibility

Learn about SDK compatibility requirements