Crashes and errors are not the end all be all of mobile app issues. If you rely on limited tooling, you won’t surface everything that’s preventing your mobile app from being a success. To succeed, your mobile teams demand complete visibility into ANRs, OOMs, user terminations, network calls, and key user moments.
With Embrace, mobile teams have full session context for every user experience, which provides a wealth of diagnostic information to identify, prioritize, and solve the root cause of mobile app issues. This post will cover why monitoring every aspect of your mobile app is crucial and how Embrace provides best-in-class data and insights to solve mobile app issues. Mobile teams can no longer rely on catching every issue cleanly through error and crash reporting.
How to solve issues that don’t have a known error
Mobile teams have no way to debug issues that they cannot surface. Your teams need to have custom dashboards and alerts on metrics that will lead you to problems you would otherwise have no knowledge of. These metrics range from:
- General health metrics – These can point you towards regressions regarding device resource limits and user engagement. For example, you could track the percentage of sessions that trigger a low memory warning and the average session duration.
- Session outcome metrics – These can point you toward issues that stem from multiple factors. For example, you can track ANR exit percentage and user terminated session percentage. Both of these outcomes can stem from interactions between SDKs, excessive network calls, heavy processing, etc.
- Performance metrics – These can point you toward slowdowns and failures that lead to poor user experiences. For example, you can track the duration and outcome of network calls and key user moments.
Teams need to understand how many users are affected and if these issues cost your business revenue. Are you currently lacking visibility into issues that are leading to churn?
With Embrace, mobile teams have full access to every affected session — once a regression occurs, you can immediately identify the impact and the root cause. You’ll be alerted when error, health, performance, and session outcome metrics spike, whereas, with other monitoring solutions, you are left blind, negatively impacting your app’s revenue, retention, and engagement.
Having full session context is crucial to your mobile app’s success. Mobile teams need to be able to identify when something is wrong, see its impact, and solve the issue. While this may seem obvious, most mobile teams lack the tooling to address problems efficiently. Let’s dive into the visibility that Embrace provides to address issues beyond crashes and errors.
An OOM (out of memory) looks and feels like a crash to a user, which is why these issues should be treated with the same level of importance. OOMs result in negative views, reduced engagement, and ultimately, user churn.
Two main issues can cause OOMs:
- Memory Leaks – occur when memory is allocated, and all references to that allocation are lost, so it becomes impossible to free the memory. This can happen with lower-level API calls such as CoreVideo or CoreAudio.
- Memory Abandonment – occurs when memory is allocated, and then a reference is maintained but never used again, so it becomes unnecessary for the memory to be allocated. This can happen with any object or API.
Mobile teams frequently don’t know the extent of their OOM problem because crash reporting and error monitoring solutions can underreport or misclassify OOMs.
With Embrace, mobile teams solve OOMs by viewing complete mobile user experience datasets, including:
- Proactively addressing OOMs with powerful alerts and real-time dashboards.
- Surfacing actionable insights across versions, devices, OSs, countries, user segments, and session properties.
- Discovering where OOMs disproportionately affect views and screens, highlighting the problem areas worth investigating.
- Inspecting the full details of device state, technical events, and user actions for every affected user session.
Teams can invest engineering resources wisely so they can identify, prioritize, and solve the OOMs that have the most significant impact on their users and business.
You now know why and how to track your OOMs with Embrace. Let’s look at how complete user experience visibility can help you solve ANRs.
An ANR (application not responding) is triggered when the UI thread of an Android app is blocked for too long. ANRs are a problem for mobile teams because the app’s main thread cannot process user input events or draw, causing massive user frustration and significant effects on your app’s revenue, retention, and engagement. ANRs often go underreported by other tooling, including the Google Play Store, where ANRs can heavily impact app visibility and ranking.
Because app freezes often go uncaptured and unidentified until the user is greeted with the ANR termination dialog, mobile teams do not know when users abandon frozen experiences. For example, your mobile could consistently freeze for short durations, and you will never know if you rely on traditional ANR detection methods.
Embrace takes a holistic approach to uncover the root cause and impact of both freezes and ANRs, including:
- Early ANR Detection – Embrace collects stack traces as soon as the main thread is blocked for 1s, earlier than other solutions by at least 4s. So you can see what code was running when the freeze actually started.
- Full Session Context for Every ANR – Embrace collects 100% of the data from 100% of user sessions, including views/screens, network calls, device state, user actions, logs/breadcrumbs, and errors. So you can understand everything that led up to an ANR.
- Distributed ANR Stack Trace Sampling – Embrace captures stack traces as soon as the app freezes, taking stack traces throughout the entire ANR’s duration. So you can investigate multiple stack traces to understand the ANR.
- ANR Flame Graphs – Embrace creates stack trace flame graphs to show which methods contributed the most to ANRs. So you can easily identify patterns to solve ANRs that have the most significant impact on your users and business.
- ANR Breakdowns by Vendor and Package – Embrace groups ANRs by package rather than stack trace similarity to reduce noise and highlight problem areas in the code. So you can understand whether the issue is in your code or someone else’s, and you know whether or not to prioritize engineering time.
- ANR Insights Across Key Segments – Embrace collects every session for every user, so you have actionable insights derived from complete datasets. So you can discover where ANRs disproportionately impact devices, OSs, or countries to make informed decisions about which to prioritize based on business impact.
Embrace helps solve ANRs by providing complete visibility so your mobile teams can identify, prioritize, and solve them. This is also true of Embrace’s ability to identify your app’s user terminations.
A user termination occurs when a user fully exits out of your app by force quitting. While users may force quit mobile apps for a multitude of reasons, many do so to end a particularly frustrating user experience. User terminations are an avenue to surface a broader range of failure types that lead to a frustrating user experience because they are user actions, meaning they have no specific failure associated with them. Some examples of these failure types could include:
- Broken UI elements
- Dead-end states
- Missing assets like images
- Problems loading or scrolling through list screens
- Blank webviews
- Slowdowns that don’t trigger an ANR
- Any number of other unforeseen technical issues
While event-based monitoring solutions rely on sending crash reports and error logs, Embrace can highlight powerful patterns across entire user experiences, which lets you hone in on the root cause of performance and stability problems.
With Embrace, your mobile teams can find the root cause of their user terminations through complete mobile user experience datasets. Teams can immediately dive into the details of every affected user session to pinpoint the root causes, with complete visibility into the impact of their user terminations. Mobile teams can do so through powerful alerts and real-time dashboards, as well as actionable insights across versions, devices, OSs, time of day, and session properties, to name a few. This results in mobile teams identifying and prioritizing user terminations before they affect your users and business.
Monitoring your user termination rate is a great way to surface problems that users are experiencing but may not be reporting to you. But how can your mobile teams monitor networking issues?
Network call duration and outcome
Without device-side monitoring, you can’t know the total health of your network, and the most complicated crashes to fix are network-related. A stack trace is often insufficient to solve crashes, freezes, and errors because backend monitoring doesn’t provide you with the whole story. Network calls that are immediately processed on your backend can experience any number of issues before they are fully processed on a mobile device.
To proactively surface networking issues, your mobile teams need a device-side monitoring solution that provides full visibility into the following:
- Excessive network calls – Discover which first and third-party SDKs are hogging bandwidth and have poor retry logic.
- Slow or blocking network calls – Uncover bloated startup times and frustrating funnels that lead to user abandons.
- Failing third-party network calls – Address underperforming vendors that impact revenue or key functionality (e.g. ads, payment providers, streaming video, maps).
- Failing first-party network calls – Surface problems like 400s, connection errors, and timeouts that your backend monitoring can’t catch.
- Heavy data usage – See which network calls are returning heavy assets like images and videos that need to be resized and compressed for mobile.
Since Embrace collects every network call within every session, you can track down the cause of any network-related issue as well as know it’s impact across your users and business. Whether it’s a complicated crash stemming from failing network calls, a freeze caused by blocking network calls, or a frustrating user experience from downloading heavy assets, you have the information needed to fix it.
Let’s now cover the importance of monitoring your key user moments to ensure your users have the best experiences in your app.
Key user moment duration and outcome
Embrace’s App Performance product contains a powerful stopwatch and user abandonment tracking feature called moments. Moments are best used to track critical user flows that are generally short. The goal is to understand where these user flows are running slow, ultimately leading to user frustration and app abandonment. After all, users will abandon mobile apps for delivering slow experiences just as quickly as for ones that crash.
To optimize your key user moments, you need visibility into the following:
- Stalled, abandoned, and crash rates – You need to know whether the issue is a technical failure or a user-initiated one. In other words, is the problem that the app cannot deliver the correct outcome, that the moment is taking too long and timing out, or that users are abandoning your app out of frustration?
- Custom filtering by properties, attributes, and segments – You need to know if key user moments are failing for certain devices, regions, and user segments. In addition, you want to drill down into attributes like experiments, A/B tests, and features to pinpoint if the problem is stemming from unique usage patterns.
- Duration – Is your app running faster or slower over time? If your startup time increases sharply, that could point you towards bad code, a failing SDK, or doing too much work before the user can interact.
- Engagement in high-value areas – What’s the core value proposition of your app, and are users spending more or less time there? For example, a social media app should investigate if it’s taking longer to send messages, upload photos, or leave comments. Understanding where the frequency of these key user moments changes across versions, features, and user segments can point you towards problem areas worth investigating.
While tracking crashes and errors are vital to ensure you are delivering a good user experience, those metrics are not nearly enough. With Embrace’s moments feature, mobile teams can investigate their entire user flows to understand what went wrong, why it went wrong, and how to fix it.
With Embrace, mobile teams can target any and all mobile app issues — not just crashes and errors — by examining complete mobile user experience datasets. Teams can proactively address performance, stability, and health regressions with powerful alerts and real-time dashboards. They can solve OOMs, ANRs, and user terminations with actionable data and insights that highlight patterns within the app and across devices, regions, OSs, and user segments.
In addition, mobile teams can inspect the duration and outcome of every network call and key user moment to understand the source of negative user outcomes. Mobile teams have full visibility into the impact of issues across every aspect of their app, so they can immediately dive into the details of every affected user session to pinpoint the root cause. The result is that mobile teams can identify, prioritize, and solve every issue faster to minimize the impact on their users and business!
If you’d like to see how complete mobile visibility can revolutionize how you deliver incredible mobile experiences, get started with a free trial today.
Deliver incredible mobile experiences with Embrace.
Get started today with 1 million free user sessions.Get started free