Many apps are installed, infrequently used, then uninstalled. This abandonment trend means less revenue for developers. There are several common approaches to fix this retention problem, each of which attempt to get that revenue into the pockets of developers. Let’s explore the problem and solutions in more detail.
Users don’t stay
User retention is a fundamental challenge that mobile app developers face. For example, Pokemon Go had huge growth, but struggled to retain users. Figure 1 shows a very typical trend of user retention for a mobile app today.
On average, after 3 months, more than 90% of users have left. This steep dropoff implies that approximately 50% of an app’s potential revenue is lost per month; those dollars are just sitting on the floor and nobody gets them. For example, given a 1M Monthly Active User app, over 90 days a developer may miss out on $1.5M in revenue. And, that doesn’t even account for the cost of user acquisition and the loss of compounding network effects of retained users. The astute app developer wants to retain their users and to retain that additional revenue. When seeking a means to accomplish that goal, the core question a developer asks is “How can I make my users happy?”
The six rungs on the retention ladder
Assuming the developer’s app does indeed provide value, but is struggling to keep users around, there are six rungs available on the user retention ladder.
Analytics & Reporting
The first rung on the ladder is the analytics service. These services provide live metrics about an app and allow one to ask questions like: “How many active users are there?”, “What’s the dropoff rate?”, “When/where do most user install the app”, “Which cohort of users stayed around?”, and “Which version of the app has the highest user retention?”. The answers to such questions enable a developer to begin the journey toward figuring of why users leave and how to retain them longer. However, these numbers alone will not tell a developer how to retain more users and keep them happy.
Examples: Mixpanel, Amplitude
The next step one takes to gain a deeper understanding of user behavior is to instrument and record that behavior. To do so, one logs and saves important events that occur during the course of a user’s interaction with the app -- a manual, laborious programming task that involves some luck in identifying the truly important events. With that data in hand, one can use analytics and reporting services to explore the correlations between important outcome measures and the events that occur. For instance, an event in Instagram might include “User liked a picture” and it might correlate with a high-retention user cohort. Often, however, such correlations do not describe true causation and require additional controls to identify what will cause a user to stay, like those provided by A/B testing.
Examples: Localytics, Segment
On the web, A/B testing was critical. The same is true for mobile. A/B testing tells a developer which of two app variations has better metrics. To perform A/B testing on mobile, one must craft a controlled experiment carefully. In practice, one writes two code paths -- one for variant A and one for variant B -- and deploys it. Then, once the new version is adopted by users, they experience one of the two variants. The developer then compares the two variants against the important outcome metrics using the instrumented code and the reporting services.
Examples: Optimizely, Apptimize
Maintaining many controlled A/B experiments is difficult and leads to messy, difficult-to-maintain code. Feature flags are a paradigm wherein portions of the app are remotely enabled or disabled. In many ways, they are a generalization of A/B testing, dynamically changing the code paths presented to a user. Once feature flags are available, one can experiment with each feature and measure how various feature(s) affects the app’s retention metrics.
Examples: LaunchDarkly, Ground Control
As an app scales, it is important to ensure a particular change doesn’t negatively affect (i.e., reduce engagement of) the entire user base. Canarying is the process of “slowly rolling out the change to a small subset of users before rolling it out to the entire infrastructure and making it available to everybody.” Canarying allows a developer to test changes on a small group, monitor its effect on that group via analytics and metrics, and determine whether the change will increase or decrease retention. A common way to perform canarying is via feature flags and enabling new features for a (potentially random) subset of users who are predictive of engagement and retention.
When the low-hanging fruit vanishes, it is often the case that more advanced techniques are necessary to identify the causative factors that affect and predict user retention. When this situation occurs, a developer can (a) retain a consulting firm, (b) hire a data scientist, or (c) learn and apply statistics themself. The specific techniques that these solutions might use is beyond the scope of this post. However, it is important to note that with any of these solutions, the developer must invest heavily into data storage, data management, and data wrangling infrastructure so that the data science work is possible -- Be Prepared.
Stop the churn!
The ladder above is the de facto standard for addressing the challenges of user retention. If you’re struggling to retain users, you should begin enacting these steps as soon as possible. Start with the early steps -- determine what outcomes are important for your app to succeed and measure them. Then, climb up the ladder and identify out what changes to your app will move the needle -- and make them!
The Gyroscope approach
As you begin climbing the user retention ladder, you may experience a slow, complicated iteration cycle (Figure 2). We’ve made Gyroscope, a complete service that replaces the steps on the ladder outlined above, and that requires minimal work on the app developer’s part to reap the benefits of formerly complicated and manual approaches. Gyroscope automatically tailors apps to users and maximizes user happiness. Gyroscope learns about the user, how they respond, and picks the right action dynamically -- in real-time -- to retain users and keep them happy.
Want to automate user retention? Join the Gyroscope Beta