This is part three in a seven part series on how to use Apteligent to implement a collection of best practices from industry leaders called: “7 Best Practices for Optimizing Mobile Apps.”
Should I measure app load time?
Marissa Mayer famously announced in 2006 that a half second delay in loading Google’s search results caused a 20% drop in traffic even though they were getting more value (a higher number of search results). Why does this happen? Users don’t like to wait.
In addition to crash rate, most customers track “app load time” as a key metric in their app. App load time is often highly correlated with engagement, adoption, and conversions in mobile apps. Studies have shown that 50% of users find app load time a major source of frustration, and 25% would leave a brand due to unacceptable load times.
Use Apteligent to Automatically Monitor App Load Time
After talking to many customers about the importance of this metric, Apteligent decided to make app load time a metric the SDK tracks out of the box without the need of additional code. By simply initializing the Apteligent SDK, an automatic userflow is configured which monitors the period from when a user taps an app icon to launch an app until the app is fully loaded and usable by the user.
Going to the “Userflows Summary” page, you’ll find a Userflow called “App Load” alongside any custom flows you have set up. Apteligent will automatically monitor every time a user loads the app, and a few important aggregated metrics:
- Volume: how many times users have loaded the app
- Foreground Time: how long the app took to load
- Fail Rate: how often the app crashed while it was loading
It’s useful to track these metrics over time and across app releases and benchmark them against industry averages. According to Apteligent data, the best apps have app loads with:
- Foreground time < 2.0 seconds
- Fail rate < 0.25%
Figure 2: Distribution of App Load Time from data.apteligent.com
If your app load time is longer than two seconds or has a crash rate above 0.25%, click on the “App Load” userflow to debug the issue.
Monitor App Load Metrics Over Time and Across Releases
Use the charts at the top of the app load details page to see how your metrics are trending over time. Increases in app load failures due to crashes or time outs are often associated with a new app release, a new operating system release, or a server-side change. Use the filters at the top of the page to discover if a spike occurred during a specific time period or for a specific app version.
Figure 3: App Load Userflow Details Page – Trend App Load Metrics Across Time
Use Breadcrumbs to Debug Slow and Failing Userflows
To further diagnose an issue with a userflow, the userflow details page provides two tabs that allow you to drill into the root cause of slow and failing user flows.
The “Breadcrumb Trails” tab shows you individual user sessions that have experienced a failure. Use the granular data in this tab to reproduce the cause of slow app load times and crashes on startup.
Figure 4: App Load Breadcrumb Trails Tab
Apteligent automatically marks a userflow as failed if there is either a crash or if it exceeds a timeout period. For each failed session, Apteligent shows a list of the last 100 events leading up to a failure. Through automatic breadcrumbs, the Apteligent SDK automatically tracks common causes of failure and app lag such as slow network calls, changes to network connectivity, and screen transitions.
Causes of slow app load time vary by app, but common causes we’ve seen include slow APIs that load media assets or search results, and 3rd party SDKs that are slow to initialize. Often, the cause can even be a logic error in the code. In the example above in Figure 4, we can see an infinite loop where the same Activity is loaded every two seconds until the app crashes.
Set the timeout of the app load userflow to 120 seconds (2 minutes) to measure how often your app load is taking longer than the industry average and automatically monitor breadcrumb trails for slow app loads.
Figure 5: Set the default time for app load to 120 seconds (2 minutes)
Prioritize Crashes During App Load
Crashes during key moments in your app can be disastrous for both user experience as well as adoption and engagement. Perhaps the most critical moment of an app is during app load. A crash that occurs during the launch of the app can make an app completely unusable.
Use the “Root Cause Analysis” tab to see all the crashes that occurred while the app was loading. Prioritizing these crashes in an upcoming release can make an instant increase in engagement and conversions.
Figure 6: Crashes During the App Load Userflow
Summing it all up
To sum up, app load is the first interaction your users will have with your app and it’s important to make a good impression. To delight your users, make sure your app loads in less than the industry average of 2.0 seconds, and has a crash rate of less than 0.25%. Use Apteligent’s Userflows feature to monitor these two key metrics across app releases and over time. Fix any issues with slow app load times using breadcrumb trails to identify problems such as slow network calls. Finally, prioritize crashes that cause the app to crash on load using the “root cause analysis” tool.
Of course, while app load is one of the key interactions in an app, there are often many other critical moments such as “login,” “new account registration,” or “purchase.” In the next article, we’ll discuss how to measure, monitor, and fix slow interactions in an app.