HomeDocumentationAPI Reference
Getting StartedAPI ReferenceBug ReportingCrash ReportingAPMHelp Center

Session Replay for Android

This page contains an overview of the information available in the Session Replay sections of the Instabug Docs for Android apps.

If you're already using Instabug, but Session Replay isn't included in your current plan, please reach out to us at [email protected]. We would love to enable a custom trial for you and help you set it up.

🚧

Min Required SDK Version

Session Replay is supported starting Android SDK version 12.0.

Session Replay Footprint

We're taking several measures to make sure Instabug Session Replay is resource-friendly. To minimize its impact on the device's battery and data consumption:

  • The SDK collects your performance data and sends it in batches, at most, once every 6 hours.
  • The SDK doesn't perform any network operations while the app is in the background.
    • This means data collected is sent to the server at the beginning of a session if the last server communication took place more than 6 hours ago.

📘

Data Retention

Data retention period changes from plan to plan and can be checked here. This is customizable on the Enterprise plan.

Enabling/Disabling Session Replay

Instabug's Session Replay can be disabled with the following method. This will completely prevent any session replay data from being sent to your dashboard. By default, Session Replay is enabled if it is available in your current plan.

SessionReplay.setEnabled(true); //Enabled
SessionReplay.setEnabled(false); //Disabled
SessionReplay.setEnabled(true) //Enabled
SessionReplay.setEnabled(false) //Disabled

Logs

All logs are enabled by default, but can be manually disabled/enabled using the below APIs. More details about each log type can be found here.

Network

SessionReplay.setNetworkLogsEnabled(true); //Enabled
SessionReplay.setNetworkLogsEnabled(false); //Disabled
SessionReplay.setNetworkLogsEnabled(true) //Enabled
SessionReplay.setNetworkLogsEnabled(false) //Disabled

Instabug Logs

SessionReplay.setIBGLogsEnabled(true); //Enabled
SessionReplay.setIBGLogsEnabled(false); //Disabled
SessionReplay.setIBGLogsEnabled(true) //Enabled
SessionReplay.setIBGLogsEnabled(false) //Enabled

User Steps

SessionReplay.setUserStepsEnabled(true); //Enabled
SessionReplay.setUserStepsEnabled(false); //Disabled
SessionReplay.setUserStepsEnabled(true) //Enabled
SessionReplay.setUserStepsEnabled(false) //Disabled

Screenshots

📘

Screenshots are enabled by default; however, you can change the level of masking using the Auto Masking feature.

ReproConfigurations reproConfig = new ReproConfigurations.Builder()
         .setIssueMode(IssueType.SessionReplay, {ReproMode})
         .build();
// For Screenshots replace {ReproMode} with ReproMode.EnableWithScreenshots
// For metadata only replace {ReproMode} with ReproMode.EnableWithNoScreenshots
// For disabling screenshots & metadata replace {ReproMode} with ReproMode.Disable

// Setting config on Builder
new Instabug.Builder(this, {Application_token})
         .setReproConfigurations(reproConfig)
         .build();

// Setting config RT
Instabug.setReproConfigurations(reproConfig);
val reproConfig = ReproConfigurations.Builder()
        .setIssueMode(IssueType.SessionReplay, {ReproMode})
        .build()
// For Screenshots replace {ReproMode} with ReproMode.EnableWithScreenshots
// For metadata only replace {ReproMode} with ReproMode.EnableWithNoScreenshots
// For disabling screenshots & metadata replace {ReproMode} with ReproMode.Disable

// Setting config on Builder
Instabug.Builder(this, {Application_token})
        .setReproConfigurations(reproConfig)
        .build()

// Setting config RT
Instabug.setReproConfigurations(reproConfig)

Limits

  • Each session contains up to 2MB of compressed logs and 2MB of compressed screenshots.
  • Instabug saves sessions up to 50MB worth of data. (for multiple sessions)

Privacy options

Auto-Masking

Enable auto-masking with different levels like masking all text, masking images, or masking everything. You can find more details about auto-masking here.

Private Views

Set certain screens as private and any private view will automatically appear with a black overlay covering it in any screenshot. You can find more details about private views here.

Network Logs Masking

To obfuscate parts of a network request prior to sending it to the dashboard, you can follow the below steps found here.

Features

Sessions List

Sessions are sorted chronologically by default. You’ll see the following information for each session:

  1. Session Type: Any session that ends with a fatal crash or OOM is flagged as a crashing session. Any session that is affected by an App hang or a Force Restart is flagged as a frustrating session. Otherwise, a bucket is defined based on all the other metrics and occurrences (app launch, app traces, network, and UI hangs) that happened within the session. More examples can be found here.
  2. Duration: The length of the replay.
  3. App Version: The app version the user was on during the session.
  4. OS: The OS version the device was on during the session.
  5. Date: of when the session has occurred.
  6. Session Issues: The issues that happened during the session. These include crashes, app hangs, slow app launches, screen loadings, or execution traces as well as Force Restarts. This can help you identify sessions that require your attention.

Session Details

With each session, Instabug captures detailed information about the session itself. Below is the list of session related details that Instabug captures:

  1. Date
  2. Session duration
  3. App version
  4. Device
  5. OS version
  6. User ID (if provided)
  7. Username (if provided)
  8. Locale
  9. Bundle ID
  10. Device location

Timeline

A timeline from the beginning to the end of the session which visually highlights performance and stability issues that happen over the course of the replay. Users can easily move to the point on the timeline where they want to start debugging. It also visually shows the duration of the session.

Screenshots

Whenever a change in the UI occurs throughout the session, a screenshot is taken and can be found in this section.

Logs

A whole host of logs are sent with every session. These logs include:

  1. Instabug Logs: Logs with different verbosity levels that you can add manually.
  2. User Steps: Every step the user has taken in the form of log entries.
  3. Network Logs: A log of each network request.
  4. Crashes: If you have Instabug’s Crash Reporting enabled, you'll be able to see all the crash metrics that happen within the session including fatal crashes, ANRs, non-fatals

Session Definition

A session starts when the app is brought into the foreground and ends when it moves to the background or when it's terminated either by the OS or the user.

📘

Foreground Only

We currently support session replay for foreground sessions only.

User Identification

In order to find sessions by searching for specific users, make sure you use our user identification API. More details about the user identification API can be found here.