In mobile apps, performance issues lead to revenue loss. No, we’re not talking about performance failures, but small frictional issues that kill engagement and reduce retention. When the app runs slowly and prevents your users from quickly getting to the valuable features you’ve created, they become frustrated and start wondering if they should try an alternative app. If your mobile team is only looking for crashes, you will miss the vast majority of issues that result in frustrated users who churn.
In this blog post, we’ll cover:
- How does poor performance cause revenue loss?
- What areas can be optimized to improve engagement and retention?
- How can mobile teams track performance issues?
- How can mobile teams quickly respond to performance issues?
How Does Poor Performance Cause Revenue Loss?
Ultimately, poor performance impacts engagement and retention rates. This is beyond mere crashes — if your crash-free rate is 99.5% or better, are you retaining 99.5% of users? If not, that means there are other conditions that are causing user churn.
This comes down to delivering a seamless experience that delights your users. Remember: retention is an art form backed by technical stability rooted in science. Your LTV calculations hinge upon users staying engaged with your app, and that cannot happen if users are abandoning your app via uninstalls or simply choosing to not use it.
For apps that have purchases, ask these questions:
- Is the user experience and funnel process ideal with little drop-off?
- What is your session conversion percentage?
- How many users complete multiple purchases?
- How many users add items to a cart and never complete the purchase?
- How many sessions does it take a user to complete a purchase?
If your users are dropping off during key funnels, you need to know why.
For apps that are more ad-driven, ask these questions:
- What are the high-value areas in your app?
- When do users get frustrated in them and force quit?
- How long does it take users to send a message, upload a photo, or stream a video?
- What is the friction getting in way of having happier users?
What Areas Can Be Optimized to Improve Engagement and Retention?
Network call performance
- Blocking calls - These could be from third-party SDKs. If users cannot interact with your app, they are more likely to churn.
- Slow calls - How long does it take to load products, messages, videos, etc.? How long does it take to complete matchmaking in a mobile game? How long does it take to complete a purchase?
- Are you running code on the main thread that is blocking the UI?
- Are you doing excessive processing or heavy data transformations? Trying to load too much data at a time?
- Are users waiting for actions to complete? When they click a button, how long are they staring at a frozen screen?
- Are you managing memory efficiently? E-commerce and social apps frequently load lots of images and videos. They can easily exceed system resource limits and cause OOMs.
- Are you managing webviews efficiently? Webviews are incredibly resource-heavy. You should reuse webviews instead of destroying and creating new ones if possible.
Slow startup times
The first thing stopping users from experiencing value is how long they have wait to load your app.
- Are you only initializing the SDKs you need, or are you loading everything at once? Where can you make smarter decisions about what’s absolutely necessary at startup?
Embrace had a food delivery partner that was loading a map during startup. Users couldn’t interact with the app until it completely loaded. When they had poor connectivity, this caused long splash screens that resulted in users abandoning the app. The solution was to quickly get users to a screen where, even if the network connectivity was poor, they could be greeted with a helpful dialog explaining the problem. This boosted retention greatly as users knew the source of the issue and could move to a location with better connectivity.
Check out our eBook for tips and tricks on improving your mobile app startup time!
Anything that ruins the user experience needs to be optimized to better improve engagement and retention. This definitely means you want to know the full user experience so you can understand their frustrations. Are UI elements responsive? Are users rage tapping at slow sections? What screens are they force quitting on? All of these questions will guide you to performance issues within your app and help you know where revenue is being lost.
How Can Mobile Teams Track Performance Issues?
Tracking performance issues is the first step to knowing the impact they have on your revenue. If users are churning as a result of a specific page or UI not working when they expect it to, fixing that issue will directly reduce churn, thus improving LTV calculations.
You can track performance issues by:
- Collecting complete data from individual user sessions. This allows you to spot unknown issues that are not surfaced through your logs. Many technical failures can happen that are difficult to detect with traditional error monitoring solutions.
- Knowing the full impact of each issue. With every session, you can compare good and bad sessions to uncover failures from missing, blocking, failing, or out of order elements. Also, you can inspect patterns across different attributes to pinpoint exactly which issues are worth solving.
- Log key flows and user actions. What steps do users take to complete key actions? Do you know how slow they are, or how long users are willing to wait before abandoning them? Are you tracking frustration signals like rage taps and which screens users are force quitting on?
- Set session and log properties to allow powerful filtering so you can inspect for patterns. Your team needs to be able to understand if there’s a trend and isolate how this trend is emerging. Is it regional? Device-specific? Version-specific? What is the unifying cause?
How Can Mobile Teams Quickly Respond to Performance Issues?
Remember: the faster you address an issue, the less revenue you lose. The only way to get ahead of performance issues is to be able to understand the impact of each issue and prioritize the most important ones to act upon. There will always be a myriad of issues, so understanding each individual issue’s impact on your revenue is how you will know which ones to assign team members to. Having an observability platform that provides insights and full session context into each performance issue is a huge competitive edge.
This involves building a proactive alert system, backend kill switches for problematic features or SDKs, and dashboards that display critical metrics in an easy-to-digest manner. Team members that oversee specific aspects of your mobile app will want their own dashboards, customized to tell them exactly what they care about.
Your proactive alert system should be configured to pick up on performance issues long before your users start to send in bug reports. You cannot rely on user-submitted bug reports for performance issues. When faced with slow and frozen experiences, the majority of users will just silently abandon your app. Keep in mind that frustrated users who’ve decided to switch to another app generally have no incentive to tell you if they are experiencing performance issues in your app.
Ensuring your proactive alert system will quickly notify you about an elevated amount of performance issues is critical. Getting that notification to team members so they can begin diagnosing and pushing out a fix is a race against time before you start seeing critical amounts of complaints on social media or user forums. Even a pre-emptive announcement that you are aware of an issue and are working on a fix looks better than putting one out after users have publicly commented on the issue.
This also means you need to configure your proactive alert system to minimize the possibility of your own team members avoiding “noisy” alerts. Give them the ability to configure the system so they can determine how they are alerted and in what interval. This can take the form of having alert-specific slack channels that alerts are sent to and allowing those teams to decide the thresholds for the alerts they want to be notified about. The worst case scenario is realizing you had an alerting system set up that was turned off because the team responsible for it was tired of receiving those alerts!
Finally, each team should have their own dashboards. These should be configured to display the most critical pieces of information that they care about, including real-time metrics and comparisons over time.
Ask your team if users stopped reporting issues altogether, which issues would they have difficulty surfacing? Why is that, and how can you surface these issues without the aid of your users?
For a deeper dive into how Embrace helps best-in-class mobile teams put a stop of costly revenue leaks, check out our on-demand webinar:
How Embrace Helps Mobile Teams
Embrace is an observability and data platform built exclusively for mobile. We are a comprehensive solution that fully reproduces every user experience from every single session. Your team gets the data it needs to proactively identify, prioritize, and solve any issue that’s costing you users or revenue.
We're hiring for many different roles! Check out our openings and see if you'd be a good fit for our growing team!
Want to see how Embrace can help your team grow your mobile applications with best-in-class tooling and world-class support? Request a customized demo and see how we help teams set and exceed the KPIs that matter for their business!
Need help improving the performance and stability of your Unity games? Take our SDK for a spin!
Want to learn best practices for scaling your mobile applications? Check out these helpful eBooks!