Which Metrics Should You Be Tracking for Your Mobile Application?
The Run phase of an application is always satisfying: your labor of love is about to be released! However, it’s also a phase full of uncertainties and can cause a lot of frustration: is the overall quality of the application good enough? Are users happy? What do they want from the application?
Why is my customer service department swamped with inquiries about this simple feature? Why does this central feature keep crashing?
Monitoring and analysis is the answer to all of these questions. This is not about having a miracle solution but about anticipating various scenarios (problems, user expectations, potential upgrades, etc.) and maintaining control over your application once it’s released.
The difficulties are in the areas of quality, business, and marketing.
What Is In-App Tracking?
As the name implies, it’s about integrating error/crash reporting into your application and tracking users.
There are two forms of tracking:
- Application: for quality
- User: more business and marketing-oriented
The first step is to identify bugs and crashes as quickly as possible. The reason is obvious: users will stop using your application if it crashes or has bugs. Make finding them a priority.
However, it’s also useful to look beyond simply tracking crashes. Obtaining additional information that can help identify areas for technical improvements is also helpful.
Other valuable information to report includes:
- Performance: measure your application’s impact on the user’s device by gathering information about RAM usage, CPU load, storage space, and screen loading times.
- Connections: your program probably uses external services and/or APIs. Knowing the impact of these on your application by gathering call execution times and availability is equally fascinating.
- Errors: any decent developer strives to “secure” their code to avoid crashes. When an abnormal situation is identified (for example, if data from an API or screen is missing), this information must also be reported. Even if this has no evident impact on the user, it may indicate a more significant issue.
The examples above can help you identify specific “malfunctions” in your application, such as slowness, which, like a crash, will drive users away. This is not an exhaustive list, and you should tailor it to your specific needs.
This type of tracking helps us understand our users and how they use our application.
The second useful area is marketing, which seeks to assess the impact of various actions (e.g., communication campaigns, promotions, etc.) to determine whether goals have been achieved and estimate returns on investment (ROIs). These are only a few examples of the data you can extract.
Unlike quality monitoring, raw data is irrelevant here. It’s up to you to add value to this data by intersecting or combining it with other information.
Here are some examples of useful data. Of course, you will need to adapt them on a case-by-case basis depending on the application type and, most importantly, your requirements:
- User engagement:
- New user (e.g., new installation/account creation)
- User loss (e.g., application uninstall/account deletion)
- User return (e.g., installation after uninstalling/account reactivation)
- Number of daily active users
- Daily usage time
- Total number of users
- Application launch frequency in 3/5/7 days
- Understanding users:
- Follow user journeys (e.g., which screens are visited? Which features are used? etc.)
- Track user activity (e.g., click, pull to refresh, swipe, etc.)
- Device characteristics:
- Device make and model
- Technical data:
- RAM, CPU, storage
- Connectivity (3G/4G/5G/WiFi)
- Screen resolution
- Operating system and version
- Language and country
Use this information to spot correlations between a bug/crash and device characteristics, see the adoption rate for your new feature, or ensure that your UI is simple and that your user is not confused (e.g., clicking in an unexpected place or never using a particular button).
You need to define and extract the most relevant data for your needs.
In-App Tracking and Personal Data
When people hear the word “tracking,” they immediately worry that their personal information will be used for commercial purposes.
While this is not the case here, compliance with the General Data Protection Regulation (GDPR) is a factor. That is why you should be cautious about the data you collect and avoid collecting any information that could be used to identify your user (directly or indirectly). Some information should therefore be prohibited:
- First and last name
- Phone number
- Customer number
Note: Since iOS 14, Apple has tightened its privacy policies. This means that you must follow its recommendations for your application to be published on the AppStore.
What Tools Should I Use for Tracking Mobile Apps?
Now that you know what data you want, you need to track it in your app. We have compiled a list of tools that you can use.
Google’s Firebase tracking tool is perhaps the most well known (and probably the most widely used).
Its main strength (besides tracking) is that it integrates and centralizes all your development tools (notification hub, remote config, etc.) and is compatible with both Android and iOS (but other languages such as Xamarin or Flutter are supported).
App Center + App Insights
This is Microsoft’s solution. App Center, like Firebase, provides additional development tools and supports numerous platforms (Android, iOS, Xamarin, etc.).
However, it has one disadvantage compared to Firebase: its reporting part only allows for minimal customization and options to work the portal’s data directly. This is why we recommend using App Center and App Insights together: you can then create custom searches on App Center data.
For those who want to take it a step further, you can reuse all of these features in Power BI to get an even more appealing presentation.
Other Tracking Tools
The list is long, and you need to find the tool with the options and services that work best for you. Here is a non-exhaustive list:
- Apple Analytics (available for iOS only)
- Flurry, provided by Yahoo
- Unity Analytics
In-App Tracking from the Build phase
In-App tracking is an important topic that you should address at the start of the development process. This will allow you to identify problems quickly, understand your users to improve your application and analyze the impact of your decisions.
To learn more about the importance of considering the Run from the Build phase, we encourage you to read all the posts in this series written in partnership with Squadra:
- 12 Factor-App: Modern Application Development Patterns
- How to Keep a Kubernetes Platform Up and Running
- Kubernetes: Building a Platform with Run in Mind
- Azure’s Native Run Tools
- AI Project Run: Managing the Life Cycle of an ML Model
- Data Observability
- OpenTelemetry: .NET Instrumentation in the Future