Download Instabug
Author: p | 2025-04-24
Instabug vs Firebase; Instabug vs Bugsnag; Instabug vs New Relic; Instabug vs AppDynamics Instabug empowers mobile teams to maintain industry-leading apps with Download: instabug-survey.aar (com.instabug.library) - Instabug Surveys Library AAR file - Latest All Versions
instabug-instabug-app-1.0.0 : Free Download, Borrow, and
.build();User Events🚧Best PracticesCurrently the limit of the number of user events sent with each report is 1,000. If you're planning on logging a large amount of unique data, the best practice here would be to use Instabug Logging instead. The reason for this is that having a very large amount of user events will negatively impact the performance of the dashboard. Having a large amount of user events will not affect dashboard performance if the user events are not unique.You can log custom user events throughout your application and they will automatically be included with each report. Note that the maximum number of user events sent with each report is 1,000.KotlinJavaInstabug.logUserEvent("Logged in")Instabug.logUserEvent("Logged in");" data-testid="RDMD">🚧Privacy PolicyIt is highly recommended to mention in your privacy policy that you may be collecting logging data in order to assist troubleshooting bugs.A variety of log types are sent with each crash or bug report. They appear within each report in your Instabug dashboard, as shown below. Log collection stops when Instabug is shown. We support the following types of logs:User StepsNetwork LogsInstabug LogsConsole LogsUser EventsAn example of the expanded logs view from your dashboard.Instabug can help you reproduce issues by tracking each step a user has taken until a report is sent. Note that the maximum number of user steps sent with each report is 100.User Steps are formatted as follows: Event in text/viewID of type class in parentView.The type of events captured are tap, double tap, long press, swipe, scroll and pinch.text/viewID refers to the text or the ID of the object that contains the event.Class refers to the class of the object that contains the event.ParentView refers to the view that contained the event.An example of the expanded logs view filtered by User Steps.User steps collection can be disabled by using the following API:Instabug.setTrackingUserStepsState(Feature.State.DISABLED)Instabug.setTrackingUserStepsState(Feature.State.DISABLED);Instabug automatically logs all network requests performed by your app from the start of the session. Requests details, along with their responses, are sent with each report. Instabug will also show you an alert at the top of the bug report in your dashboard when network requests have timed-out or taken too long to complete. Note that the maximum number of network logs sent with each report is 1,000.An example of network request logs in the Instabug dashboard.To log network requests, use InstabugNetworkLog then use the following method at the HttpUrlConnection, requestBody and responseBody.InstabugNetworkLog networkLog = new InstabugNetworkLog() networkLog.Log(urlConnection, requestBody,
instabug-instabug-app-1.0.1 : Free Download, Borrow, and
CaptureSet Verbosity LevelEnable or Disable APMIn-App RepliesShow Replies ListPush NotificationsRegister Push TokenShow NotificationSet Channel IDEnable or Disable Push NotificationsSet Notification IconIn-App NotificationsManaging SoundsEnable or Disable In-App NotificationsCheck for Existing ChatsGet Unread CountEnable or Disable RepliesUser Identification/DataIdentify UserUser AttributesUser DataLog OutRetrieve UUIDReport DataLoggingInstabug LoggingNetwork Logging - iOSNetwork Logging - AndroidNetwork Logging - React NativeNetwork Logging - FlutterUser StepsUser EventsInstabug Debug LogsRepro StepsAttachmentsSet Attachment TypesAdd Extra AttachmentClear AttachmentsAuto Screen Recording [Beta]Session ProfilerView HierarchyTagsAdd TagsGet TagsReset TagsIn-App SurveysManually Show SurveyCheck if RespondedGet Available SurveysShow Available SurveyShow Survey Welcome MessageEnable or Disable Auto-ShowingEnable or Disable SurveysIn-App Feature RequestsShow Feature RequestsSetting Email RequirementEnable or Disable Feature RequestsUser Interface/DesignSet ThemeSet Primary ColorSet Floating Button PositionSet Video Recording Button PositionManipulating the Welcome MessageSet Welcome Message ModeManually Show Welcome MessageSet LocaleChange String ValuesSDK Event HandlersSet Pre-Invocation HandlerSet Pre-Sending HandlerSet Did-Dismiss HandlerSet Received-Reply HandlerSet Will-Show-Survey HandlerSet Dismissed-Survey HandlerOtherEncrypt User DefaultsPowered by Instabug can be invoked either through the normal event set or manually as shown in this API. You can show the Instabug invocation or immediately show an Instabug related view rather than the invocation.instabug-instabug-app-1.0.1-source : Free Download, Borrow, and
Is sent to the server at the beginning of a session if the last server communication took place more than 6 hours ago.📘Data RetentionData retention period changes from plan to plan and can be checked here. This is customizable on the Enterprise plan.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.enabled = true //EnabledSessionReplay.enabled = false //DisabledIBGSessionReplay.enabled = YES; //EnabledIBGSessionReplay.enabled = NO; //DisabledAll 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.SessionReplay.networkLogsEnabled = true //EnabledSessionReplay.networkLogsEnabled = false //DisabledIBGSessionReplay.networkLogsEnabled = YES; //EnabledIBGSessionReplay.networkLogsEnabled = NO; //DisabledSessionReplay.IBGLogsEnabled = true //EnabledSessionReplay.IBGLogsEnabled = false //DisabledIBGSessionReplay.IBGLogsEnabled = YES; //EnabledIBGSessionReplay.IBGLogsEnabled = NO; //DisabledSessionReplay.userStepsEnabled = true //EnabledSessionReplay.userStepsEnabled = false //DisabledIBGSessionReplay.userStepsEnabled = YES; //EnabledIBGSessionReplay.userStepsEnabled = NO; //Disabled📘Screenshots are enabled by default; however, you can change the level of masking using the Auto Masking feature.Instabug.setReproStepsFor(.all, with: .enable)[Instabug setReproStepsFor:IBGIssueTypeAll withMode:IBGUserStepsModeEnable];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)Data is sent through requests with a maximum of 1MB per request.Enable auto-masking with different levels like masking all text, masking images, or masking everything. You can find more details about auto-masking here.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.To obfuscate parts of a network request prior to sending it to the dashboard, you can follow the below steps found here.Sessions are sorted chronologically by default. You’ll see the following information for each session: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.Duration: The length of the replay.App Version: The app version the user was on during the session.OS: The OS version the device was on during the session.Date: of when the session has occurred.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.With each session, Instabug captures detailed information about the session itself. Below is the list of session related details that Instabug captures:DateSession durationApp. Instabug vs Firebase; Instabug vs Bugsnag; Instabug vs New Relic; Instabug vs AppDynamics Instabug empowers mobile teams to maintain industry-leading apps with Download: instabug-survey.aar (com.instabug.library) - Instabug Surveys Library AAR file - Latest All Versionsinstabug-instabug-app-1.0.0-source : Free Download, Borrow
This section covers how Instabug automatically attaches console logs, verbose logs, and all steps made by your users before a bug report is sent for Android apps.🚧Privacy PolicyIt is highly recommended to mention in your privacy policy that you may be collecting logging data in order to assist troubleshooting bugs.A variety of log types are sent with each crash or bug report. They appear within each report in your Instabug dashboard, as shown below. Log collection stops when Instabug is shown. We support the following types of logs:User StepsNetwork LogsInstabug LogsConsole LogsUser EventsAn example of the expanded logs view from your dashboard.User StepsInstabug can help you reproduce issues by tracking each step a user has taken until a report is sent. Note that the maximum number of user steps sent with each report is 100.User Steps are formatted as follows: Event in text/viewID of type class in parentView.The type of events captured are tap, double tap, long press, swipe, scroll and pinch.text/viewID refers to the text or the ID of the object that contains the event.Class refers to the class of the object that contains the event.ParentView refers to the view that contained the event.An example of the expanded logs view filtered by User Steps.User steps collection can be disabled by using the following API:KotlinJavaInstabug.setTrackingUserStepsState(Feature.State.DISABLED)Instabug.setTrackingUserStepsState(Feature.State.DISABLED);Network LogsInstabug automatically logs all network requests performed by your app from the start of the session. Requests details, along with their responses, are sent with each report. Instabug will also show you an alert at the top of the bug report in your dashboard when network requests have timed-out or taken too long to complete. Note that the maximum number of network logs sent with each report is 1,000.An example of network request logs in the Instabug dashboard.Logging HttpUrlConnection requestsTo log network requests, use InstabugNetworkLog then use the following method at the HttpUrlConnection, requestBody and responseBody.KotlinJavaInstabugNetworkLog networkLog = new InstabugNetworkLog() networkLog.Log(urlConnection, requestBody, responseBody)InstabugNetworkLog networkLog = new InstabugNetworkLog(); networkLog.Log(urlConnection, requestBody, responseBody);For a more detailed example, see the following network request.Java@Overrideprotected String doInBackground(Void... params) { HttpURLConnection urlConnection = null; BufferedReader reader = null; String moviesJsonStr = null; try { URL url = new URL("<YOUR_URL>"); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setDoOutput(true); urlConnection.setRequestMethod("POST"); urlConnection.setUseCaches(false); urlConnection.setConnectTimeout(10000); urlConnection.setReadTimeout(10000); urlConnection.setRequestProperty("Content-Type", "application/json"); urlConnection.connect(); JSONObject jsonParam = new JSONObject(); try { jsonParam.put("PARAM_1", "one"); jsonParam.put("PARAM_2", "two"); } catch (JSONException e) { e.printStackTrace(); } OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream()); out.write(jsonParam.toString()); out.close(); InputStream inputStream = urlConnection.getInputStream(); StringBuffer bufferGitHub - Instabug/Instabug-Android: In-app feedback
Instabug logs sent with each report is 1,000.InstabugLog.d("Message to log")InstabugLog.v("Message to log")InstabugLog.i("Message to log")InstabugLog.e("Message to log")InstabugLog.w("Message to log")InstabugLog.wtf("Message to log")InstabugLog.d("Message to log");InstabugLog.v("Message to log");InstabugLog.i("Message to log");InstabugLog.e("Message to log");InstabugLog.w("Message to log");InstabugLog.wtf("Message to log");Instabug captures all console logs and displays them on your dashboard with each report. Note that the maximum number of console logs sent with each report is 1,000 statements with a limit of 5,000 characters for each statement.To disable console logs.Instabug.Builder(this, "token") .setConsoleLogState(Feature.State.DISABLED) .build()new Instabug.Builder(this, "token") .setConsoleLogState(Feature.State.DISABLED) .build();🚧Best PracticesCurrently the limit of the number of user events sent with each report is 1,000. If you're planning on logging a large amount of unique data, the best practice here would be to use Instabug Logging instead. The reason for this is that having a very large amount of user events will negatively impact the performance of the dashboard. Having a large amount of user events will not affect dashboard performance if the user events are not unique.You can log custom user events throughout your application and they will automatically be included with each report. Note that the maximum number of user events sent with each report is 1,000.Instabug.logUserEvent("Logged in")Instabug.logUserEvent("Logged in");Updated 4 months ago Table of ContentsUser StepsNetwork LogsLogging HttpUrlConnection requestsLogging Okhttp requestsModifying RequestsInstabug LogsConsole LogsUser EventsDownload instabug-plugin.jar - @com.instabug.library
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.Duration: The length of the replay.App Version: The app version the user was on during the session.OS: The OS version the device was on during the session.Date: of when the session has occurred.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 DetailsWith each session, Instabug captures detailed information about the session itself. Below is the list of session related details that Instabug captures:DateSession durationApp versionDeviceOS version User ID (if provided)Username (if provided)LocaleBundle ID Device locationTimelineA 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.ScreenshotsScreenshots taken throughout the session whenever there is a change in the UI.LogsA whole host of logs are sent with every session. These logs include:Instabug Logs: Logs with different verbosity levels that you can add manually.User Steps: Every step the user has taken in the form of log entries.Network Logs: A log of each network request. 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 DefinitionA 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 OnlyWe currently support session replay for foreground sessions only.User IdentificationIn 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." data-testid="RDMD">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 VersionSession Replay is supported starting iOS SDK version 12.0.Session Replay FootprintWe'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 collectedDownload instabug-survey.aar - @com.instabug.library
= new StringBuffer(); if (inputStream == null) { return null; } reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { buffer.append(line + "\n"); } if (buffer.length() == 0) { // Stream was empty. No point in parsing. return null; } moviesJsonStr = buffer.toString(); //logging network request to instabug InstabugNetworkLog networkLog = new InstabugNetworkLog(); networkLog.Log(urlConnection, jsonParam.toString(), moviesJsonStr); } catch(Exception e) { e.printStackTrace(); } return moviesJsonStr;}Logging Okhttp requestsFirst, you will need to compile Instabug with a network interceptor.Gradleimplementation 'com.instabug.library:instabug-with-okhttp-interceptor:14.0.0'To log Oktthp requests, use the InstabugOkhttpInterceptor as shown in the following example. KotlinJavaval instabugOkhttpInterceptor = InstabugOkhttpInterceptor()val client = OkHttpClient.Builder() .addInterceptor(interceptor) .addInterceptor(instabugOkhttpInterceptor) .build()InstabugOkhttpInterceptor instabugOkhttpInterceptor = new InstabugOkhttpInterceptor();OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .addInterceptor(instabugOkhttpInterceptor) .build();Modifying RequestsIn the event that you need to modify a network request prior to sending it to the dashboard, you can follow the below steps:1- Create a NetworkLogListener object and modify the captured network log as shown below.KotlinJavaval networkLogListener = NetworkLogListener { networkLog: NetworkLogSnapshot -> //Modify the received networkLog parameter return@NetworkLogListener networkLog}NetworkLogListener networkLogListener = new NetworkLogListener() { @Override public NetworkLogSnapshot onNetworkLogCaptured(NetworkLogSnapshot networkLog) { //Modify the received networkLog parameter return networkLog; // To exclude the network trace from being captured return null // return null; }};2- Register the created NetworkLogListener to your InstabugOkHttpInterceptor object. This can be done through two different methods:a. Pass it in the constructor. val instabugOkhttpInterceptor = InstabugOkhttpInterceptor(networkLogListener)b. Call registerNetworkLogsListener method on InstabugOkhttpInterceptor object.val instabugOkhttpInterceptor = InstabugOkhttpInterceptor()instabugOkhttpInterceptor.registerNetworkLogsListener(networkLogListener)// For the modifications to reflect in APM as well, you can use the below network logs listenerAPM.registerNetworkLogsListener(networkLogListener);In case you need to remove the network listener, you can use the below method:KotlinJavainstabugOkhttpInterceptor.removeNetworkLogsListener()// Use the below API to remove APM's network logs listenerAPM.registerNetworkLogsListener(null)instabugOkhttpInterceptor.removeNetworkLogsListener();// Use the below API to remove APM's network logs listenerAPM.registerNetworkLogsListener(null)Instabug LogsYou can log messages throughout your application's lifecycle to be sent with each report. InstabugLog works just like the regular Log class you use to show colorful logs in your logcat. Note that the maximum number of Instabug logs sent with each report is 1,000.KotlinJavaInstabugLog.d("Message to log")InstabugLog.v("Message to log")InstabugLog.i("Message to log")InstabugLog.e("Message to log")InstabugLog.w("Message to log")InstabugLog.wtf("Message to log")InstabugLog.d("Message to log");InstabugLog.v("Message to log");InstabugLog.i("Message to log");InstabugLog.e("Message to log");InstabugLog.w("Message to log");InstabugLog.wtf("Message to log");Console LogsInstabug captures all console logs and displays them on your dashboard with each report. Note that the maximum number of console logs sent with each report is 1,000 statements with a limit of 5,000 characters for each statement.To disable console logs.KotlinJavaInstabug.Builder(this, "token") .setConsoleLogState(Feature.State.DISABLED) .build()new Instabug.Builder(this, "token") .setConsoleLogState(Feature.State.DISABLED). Instabug vs Firebase; Instabug vs Bugsnag; Instabug vs New Relic; Instabug vs AppDynamics Instabug empowers mobile teams to maintain industry-leading apps with
GitHub - Instabug/Instabug-Unity: Receive comprehensive bug
This page contains an overview of the information available in the Session Replay sections of the Instabug Docs for iOS 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 VersionSession Replay is supported starting iOS SDK version 12.0.Session Replay FootprintWe'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 RetentionData retention period changes from plan to plan and can be checked here. This is customizable on the Enterprise plan.Enabling/Disabling Session ReplayInstabug'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.SwiftObjective-CSessionReplay.enabled = true //EnabledSessionReplay.enabled = false //DisabledIBGSessionReplay.enabled = YES; //EnabledIBGSessionReplay.enabled = NO; //DisabledLogsAll 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.NetworkSwiftObjective-CSessionReplay.networkLogsEnabled = true //EnabledSessionReplay.networkLogsEnabled = false //DisabledIBGSessionReplay.networkLogsEnabled = YES; //EnabledIBGSessionReplay.networkLogsEnabled = NO; //DisabledInstabug LogsSwiftObjective-CSessionReplay.IBGLogsEnabled = true //EnabledSessionReplay.IBGLogsEnabled = false //DisabledIBGSessionReplay.IBGLogsEnabled = YES; //EnabledIBGSessionReplay.IBGLogsEnabled = NO; //DisabledUser StepsSwiftObjective-CSessionReplay.userStepsEnabled = true //EnabledSessionReplay.userStepsEnabled = false //DisabledIBGSessionReplay.userStepsEnabled = YES; //EnabledIBGSessionReplay.userStepsEnabled = NO; //DisabledScreenshots📘Screenshots are enabled by default; however, you can change the level of masking using the Auto Masking feature.SwiftObjective-CInstabug.setReproStepsFor(.all, with: .enable)[Instabug setReproStepsFor:IBGIssueTypeAll withMode:IBGUserStepsModeEnable];LimitsEach 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)Data is sent through requests with a maximum of 1MB per request.Privacy optionsAuto-MaskingEnable auto-masking with different levels like masking all text, masking images, or masking everything. You can find more details about auto-masking here.Private ViewsSet 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 MaskingTo obfuscate parts of a network request prior to sending it to the dashboard, you can follow the below steps found here.FeaturesSessions ListSessions are sorted chronologically by default. You’ll see the following information for each session: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 AppGitHub - Instabug/Instabug-iOS: In-app feedback and bug
ResponseBody)InstabugNetworkLog networkLog = new InstabugNetworkLog(); networkLog.Log(urlConnection, requestBody, responseBody);For a more detailed example, see the following network request.@Overrideprotected String doInBackground(Void... params) { HttpURLConnection urlConnection = null; BufferedReader reader = null; String moviesJsonStr = null; try { URL url = new URL(""); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setDoOutput(true); urlConnection.setRequestMethod("POST"); urlConnection.setUseCaches(false); urlConnection.setConnectTimeout(10000); urlConnection.setReadTimeout(10000); urlConnection.setRequestProperty("Content-Type", "application/json"); urlConnection.connect(); JSONObject jsonParam = new JSONObject(); try { jsonParam.put("PARAM_1", "one"); jsonParam.put("PARAM_2", "two"); } catch (JSONException e) { e.printStackTrace(); } OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream()); out.write(jsonParam.toString()); out.close(); InputStream inputStream = urlConnection.getInputStream(); StringBuffer buffer = new StringBuffer(); if (inputStream == null) { return null; } reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { buffer.append(line + "\n"); } if (buffer.length() == 0) { // Stream was empty. No point in parsing. return null; } moviesJsonStr = buffer.toString(); //logging network request to instabug InstabugNetworkLog networkLog = new InstabugNetworkLog(); networkLog.Log(urlConnection, jsonParam.toString(), moviesJsonStr); } catch(Exception e) { e.printStackTrace(); } return moviesJsonStr;}First, you will need to compile Instabug with a network interceptor.implementation 'com.instabug.library:instabug-with-okhttp-interceptor:14.0.0'To log Oktthp requests, use the InstabugOkhttpInterceptor as shown in the following example. val instabugOkhttpInterceptor = InstabugOkhttpInterceptor()val client = OkHttpClient.Builder() .addInterceptor(interceptor) .addInterceptor(instabugOkhttpInterceptor) .build()InstabugOkhttpInterceptor instabugOkhttpInterceptor = new InstabugOkhttpInterceptor();OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .addInterceptor(instabugOkhttpInterceptor) .build();In the event that you need to modify a network request prior to sending it to the dashboard, you can follow the below steps:1- Create a NetworkLogListener object and modify the captured network log as shown below.val networkLogListener = NetworkLogListener { networkLog: NetworkLogSnapshot -> //Modify the received networkLog parameter return@NetworkLogListener networkLog}NetworkLogListener networkLogListener = new NetworkLogListener() { @Override public NetworkLogSnapshot onNetworkLogCaptured(NetworkLogSnapshot networkLog) { //Modify the received networkLog parameter return networkLog; // To exclude the network trace from being captured return null // return null; }};2- Register the created NetworkLogListener to your InstabugOkHttpInterceptor object. This can be done through two different methods:a. Pass it in the constructor. val instabugOkhttpInterceptor = InstabugOkhttpInterceptor(networkLogListener)b. Call registerNetworkLogsListener method on InstabugOkhttpInterceptor object.val instabugOkhttpInterceptor = InstabugOkhttpInterceptor()instabugOkhttpInterceptor.registerNetworkLogsListener(networkLogListener)// For the modifications to reflect in APM as well, you can use the below network logs listenerAPM.registerNetworkLogsListener(networkLogListener);In case you need to remove the network listener, you can use the below method:instabugOkhttpInterceptor.removeNetworkLogsListener()// Use the below API to remove APM's network logs listenerAPM.registerNetworkLogsListener(null)instabugOkhttpInterceptor.removeNetworkLogsListener();// Use the below API to remove APM's network logs listenerAPM.registerNetworkLogsListener(null)You can log messages throughout your application's lifecycle to be sent with each report. InstabugLog works just like the regular Log class you use to show colorful logs in your logcat. Note that the maximum number of. Instabug vs Firebase; Instabug vs Bugsnag; Instabug vs New Relic; Instabug vs AppDynamics Instabug empowers mobile teams to maintain industry-leading apps with Download: instabug-survey.aar (com.instabug.library) - Instabug Surveys Library AAR file - Latest All VersionsGitHub - Instabug/Instabug-Android: In-app feedback and bug
Why sometimes it’s better to look at results for your 95th percentile rather than overall averages. If you’re using Instabug, your P95 values will be displayed in a column next to the attribute you’re exploring.ThroughputThroughput is a basic and crucial metric to measure. How many people are using your app and how has that changed over time? Usage spikes can impact wait times and app performance in general. If you’re experiencing performance issues, throughput should be one of the first metrics you check to see if traffic is impacting performance.App stabilityOne of the biggest indicators of an unusable app is how often it crashes. Users who encounter crashes are much more likely to uninstall an app than any other reason. Using a crash reporting tool will alert you to any uptick in errors and also help you catch issues early after a release before they become widespread and catastrophic. App stability is measured in crashes per session or user. According to our app stability data for 2025, the crash-free rates to target are:Crash-free users > 99%Crash-free sessions > 99.95%App loading timesAn app doesn’t have to be completely unusable for it to be considered of poor quality and worthy of being uninstalled. A huge part of an app’s performance is assessing how long a user has to wait at launch, between screen transitions, and after performing any requests. Let's look at the different kinds of wait times:App launch timeSpeed is an essential part of app performance monitoring. Users don't like toComments
.build();User Events🚧Best PracticesCurrently the limit of the number of user events sent with each report is 1,000. If you're planning on logging a large amount of unique data, the best practice here would be to use Instabug Logging instead. The reason for this is that having a very large amount of user events will negatively impact the performance of the dashboard. Having a large amount of user events will not affect dashboard performance if the user events are not unique.You can log custom user events throughout your application and they will automatically be included with each report. Note that the maximum number of user events sent with each report is 1,000.KotlinJavaInstabug.logUserEvent("Logged in")Instabug.logUserEvent("Logged in");" data-testid="RDMD">🚧Privacy PolicyIt is highly recommended to mention in your privacy policy that you may be collecting logging data in order to assist troubleshooting bugs.A variety of log types are sent with each crash or bug report. They appear within each report in your Instabug dashboard, as shown below. Log collection stops when Instabug is shown. We support the following types of logs:User StepsNetwork LogsInstabug LogsConsole LogsUser EventsAn example of the expanded logs view from your dashboard.Instabug can help you reproduce issues by tracking each step a user has taken until a report is sent. Note that the maximum number of user steps sent with each report is 100.User Steps are formatted as follows: Event in text/viewID of type class in parentView.The type of events captured are tap, double tap, long press, swipe, scroll and pinch.text/viewID refers to the text or the ID of the object that contains the event.Class refers to the class of the object that contains the event.ParentView refers to the view that contained the event.An example of the expanded logs view filtered by User Steps.User steps collection can be disabled by using the following API:Instabug.setTrackingUserStepsState(Feature.State.DISABLED)Instabug.setTrackingUserStepsState(Feature.State.DISABLED);Instabug automatically logs all network requests performed by your app from the start of the session. Requests details, along with their responses, are sent with each report. Instabug will also show you an alert at the top of the bug report in your dashboard when network requests have timed-out or taken too long to complete. Note that the maximum number of network logs sent with each report is 1,000.An example of network request logs in the Instabug dashboard.To log network requests, use InstabugNetworkLog then use the following method at the HttpUrlConnection, requestBody and responseBody.InstabugNetworkLog networkLog = new InstabugNetworkLog() networkLog.Log(urlConnection, requestBody,
2025-03-31CaptureSet Verbosity LevelEnable or Disable APMIn-App RepliesShow Replies ListPush NotificationsRegister Push TokenShow NotificationSet Channel IDEnable or Disable Push NotificationsSet Notification IconIn-App NotificationsManaging SoundsEnable or Disable In-App NotificationsCheck for Existing ChatsGet Unread CountEnable or Disable RepliesUser Identification/DataIdentify UserUser AttributesUser DataLog OutRetrieve UUIDReport DataLoggingInstabug LoggingNetwork Logging - iOSNetwork Logging - AndroidNetwork Logging - React NativeNetwork Logging - FlutterUser StepsUser EventsInstabug Debug LogsRepro StepsAttachmentsSet Attachment TypesAdd Extra AttachmentClear AttachmentsAuto Screen Recording [Beta]Session ProfilerView HierarchyTagsAdd TagsGet TagsReset TagsIn-App SurveysManually Show SurveyCheck if RespondedGet Available SurveysShow Available SurveyShow Survey Welcome MessageEnable or Disable Auto-ShowingEnable or Disable SurveysIn-App Feature RequestsShow Feature RequestsSetting Email RequirementEnable or Disable Feature RequestsUser Interface/DesignSet ThemeSet Primary ColorSet Floating Button PositionSet Video Recording Button PositionManipulating the Welcome MessageSet Welcome Message ModeManually Show Welcome MessageSet LocaleChange String ValuesSDK Event HandlersSet Pre-Invocation HandlerSet Pre-Sending HandlerSet Did-Dismiss HandlerSet Received-Reply HandlerSet Will-Show-Survey HandlerSet Dismissed-Survey HandlerOtherEncrypt User DefaultsPowered by Instabug can be invoked either through the normal event set or manually as shown in this API. You can show the Instabug invocation or immediately show an Instabug related view rather than the invocation.
2025-04-13This section covers how Instabug automatically attaches console logs, verbose logs, and all steps made by your users before a bug report is sent for Android apps.🚧Privacy PolicyIt is highly recommended to mention in your privacy policy that you may be collecting logging data in order to assist troubleshooting bugs.A variety of log types are sent with each crash or bug report. They appear within each report in your Instabug dashboard, as shown below. Log collection stops when Instabug is shown. We support the following types of logs:User StepsNetwork LogsInstabug LogsConsole LogsUser EventsAn example of the expanded logs view from your dashboard.User StepsInstabug can help you reproduce issues by tracking each step a user has taken until a report is sent. Note that the maximum number of user steps sent with each report is 100.User Steps are formatted as follows: Event in text/viewID of type class in parentView.The type of events captured are tap, double tap, long press, swipe, scroll and pinch.text/viewID refers to the text or the ID of the object that contains the event.Class refers to the class of the object that contains the event.ParentView refers to the view that contained the event.An example of the expanded logs view filtered by User Steps.User steps collection can be disabled by using the following API:KotlinJavaInstabug.setTrackingUserStepsState(Feature.State.DISABLED)Instabug.setTrackingUserStepsState(Feature.State.DISABLED);Network LogsInstabug automatically logs all network requests performed by your app from the start of the session. Requests details, along with their responses, are sent with each report. Instabug will also show you an alert at the top of the bug report in your dashboard when network requests have timed-out or taken too long to complete. Note that the maximum number of network logs sent with each report is 1,000.An example of network request logs in the Instabug dashboard.Logging HttpUrlConnection requestsTo log network requests, use InstabugNetworkLog then use the following method at the HttpUrlConnection, requestBody and responseBody.KotlinJavaInstabugNetworkLog networkLog = new InstabugNetworkLog() networkLog.Log(urlConnection, requestBody, responseBody)InstabugNetworkLog networkLog = new InstabugNetworkLog(); networkLog.Log(urlConnection, requestBody, responseBody);For a more detailed example, see the following network request.Java@Overrideprotected String doInBackground(Void... params) { HttpURLConnection urlConnection = null; BufferedReader reader = null; String moviesJsonStr = null; try { URL url = new URL("<YOUR_URL>"); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setDoOutput(true); urlConnection.setRequestMethod("POST"); urlConnection.setUseCaches(false); urlConnection.setConnectTimeout(10000); urlConnection.setReadTimeout(10000); urlConnection.setRequestProperty("Content-Type", "application/json"); urlConnection.connect(); JSONObject jsonParam = new JSONObject(); try { jsonParam.put("PARAM_1", "one"); jsonParam.put("PARAM_2", "two"); } catch (JSONException e) { e.printStackTrace(); } OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream()); out.write(jsonParam.toString()); out.close(); InputStream inputStream = urlConnection.getInputStream(); StringBuffer buffer
2025-03-28Instabug logs sent with each report is 1,000.InstabugLog.d("Message to log")InstabugLog.v("Message to log")InstabugLog.i("Message to log")InstabugLog.e("Message to log")InstabugLog.w("Message to log")InstabugLog.wtf("Message to log")InstabugLog.d("Message to log");InstabugLog.v("Message to log");InstabugLog.i("Message to log");InstabugLog.e("Message to log");InstabugLog.w("Message to log");InstabugLog.wtf("Message to log");Instabug captures all console logs and displays them on your dashboard with each report. Note that the maximum number of console logs sent with each report is 1,000 statements with a limit of 5,000 characters for each statement.To disable console logs.Instabug.Builder(this, "token") .setConsoleLogState(Feature.State.DISABLED) .build()new Instabug.Builder(this, "token") .setConsoleLogState(Feature.State.DISABLED) .build();🚧Best PracticesCurrently the limit of the number of user events sent with each report is 1,000. If you're planning on logging a large amount of unique data, the best practice here would be to use Instabug Logging instead. The reason for this is that having a very large amount of user events will negatively impact the performance of the dashboard. Having a large amount of user events will not affect dashboard performance if the user events are not unique.You can log custom user events throughout your application and they will automatically be included with each report. Note that the maximum number of user events sent with each report is 1,000.Instabug.logUserEvent("Logged in")Instabug.logUserEvent("Logged in");Updated 4 months ago Table of ContentsUser StepsNetwork LogsLogging HttpUrlConnection requestsLogging Okhttp requestsModifying RequestsInstabug LogsConsole LogsUser Events
2025-04-20= new StringBuffer(); if (inputStream == null) { return null; } reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { buffer.append(line + "\n"); } if (buffer.length() == 0) { // Stream was empty. No point in parsing. return null; } moviesJsonStr = buffer.toString(); //logging network request to instabug InstabugNetworkLog networkLog = new InstabugNetworkLog(); networkLog.Log(urlConnection, jsonParam.toString(), moviesJsonStr); } catch(Exception e) { e.printStackTrace(); } return moviesJsonStr;}Logging Okhttp requestsFirst, you will need to compile Instabug with a network interceptor.Gradleimplementation 'com.instabug.library:instabug-with-okhttp-interceptor:14.0.0'To log Oktthp requests, use the InstabugOkhttpInterceptor as shown in the following example. KotlinJavaval instabugOkhttpInterceptor = InstabugOkhttpInterceptor()val client = OkHttpClient.Builder() .addInterceptor(interceptor) .addInterceptor(instabugOkhttpInterceptor) .build()InstabugOkhttpInterceptor instabugOkhttpInterceptor = new InstabugOkhttpInterceptor();OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(interceptor) .addInterceptor(instabugOkhttpInterceptor) .build();Modifying RequestsIn the event that you need to modify a network request prior to sending it to the dashboard, you can follow the below steps:1- Create a NetworkLogListener object and modify the captured network log as shown below.KotlinJavaval networkLogListener = NetworkLogListener { networkLog: NetworkLogSnapshot -> //Modify the received networkLog parameter return@NetworkLogListener networkLog}NetworkLogListener networkLogListener = new NetworkLogListener() { @Override public NetworkLogSnapshot onNetworkLogCaptured(NetworkLogSnapshot networkLog) { //Modify the received networkLog parameter return networkLog; // To exclude the network trace from being captured return null // return null; }};2- Register the created NetworkLogListener to your InstabugOkHttpInterceptor object. This can be done through two different methods:a. Pass it in the constructor. val instabugOkhttpInterceptor = InstabugOkhttpInterceptor(networkLogListener)b. Call registerNetworkLogsListener method on InstabugOkhttpInterceptor object.val instabugOkhttpInterceptor = InstabugOkhttpInterceptor()instabugOkhttpInterceptor.registerNetworkLogsListener(networkLogListener)// For the modifications to reflect in APM as well, you can use the below network logs listenerAPM.registerNetworkLogsListener(networkLogListener);In case you need to remove the network listener, you can use the below method:KotlinJavainstabugOkhttpInterceptor.removeNetworkLogsListener()// Use the below API to remove APM's network logs listenerAPM.registerNetworkLogsListener(null)instabugOkhttpInterceptor.removeNetworkLogsListener();// Use the below API to remove APM's network logs listenerAPM.registerNetworkLogsListener(null)Instabug LogsYou can log messages throughout your application's lifecycle to be sent with each report. InstabugLog works just like the regular Log class you use to show colorful logs in your logcat. Note that the maximum number of Instabug logs sent with each report is 1,000.KotlinJavaInstabugLog.d("Message to log")InstabugLog.v("Message to log")InstabugLog.i("Message to log")InstabugLog.e("Message to log")InstabugLog.w("Message to log")InstabugLog.wtf("Message to log")InstabugLog.d("Message to log");InstabugLog.v("Message to log");InstabugLog.i("Message to log");InstabugLog.e("Message to log");InstabugLog.w("Message to log");InstabugLog.wtf("Message to log");Console LogsInstabug captures all console logs and displays them on your dashboard with each report. Note that the maximum number of console logs sent with each report is 1,000 statements with a limit of 5,000 characters for each statement.To disable console logs.KotlinJavaInstabug.Builder(this, "token") .setConsoleLogState(Feature.State.DISABLED) .build()new Instabug.Builder(this, "token") .setConsoleLogState(Feature.State.DISABLED)
2025-03-31