You’ve decided you want to take a stab at building the next successful mobile app business. First off, spend some time and think about whether you’re ready for this. I’d like the process to running in a marathon followed by wrestling in a sumo match. If you have the energy to make it through the first part, you’re most likely going to be eliminated in a fraction of a second by a professional.
Mobile companies tend to spend far too much time building out the first version of their product, polishing every pixel to perfection before users lay eyes on it. This is only the first few miles of the marathon I described above. It’s the fun part. You’re still high on excitement from the idea and not yet tired enough to question why you even started in the first place. Do not drag this out too long. Your first version will not work and will require constant iteration. Don’t fall for the illusion that you have a greater chance of success simply because you’ve optimized the button color on your signup page. Build it, ship it, iterate it to find a product-market fit as soon as you possibly can so that you can get to work on the only problem that matters: growth.
Great. You launched and saw a couple thousand downloads in the first day or two. You’re just starting mile three of the marathon. How are you planning to stand out from the 50,000 other apps launched this month? A human being only has limited time on a phone per day. How are you going to convince someone to invest the few minutes to install your app and give you a chance? This is the grind. This is the remaining 24 miles of the race with the sumo wrestler waiting for you at the end. Very few companies make it through this part of the process.
Not fazed? Then let’s get started. We at Branch spend the majority of our waking hours thinking about ways to help you get through the marathon and then be equipped to tackle the sumo. We build the tools that empower every app to become a self-sustaining growth engine. We’ve seen a lot of approaches: some that work and some that definitely don’t. The rest of this post shares useful tactics through the use of examples that have worked for apps on our platform.
The growth engine of your app
Before diving into the tools that we’ve seen work, let me first describe a framework for thinking about growth. A growth engine is a cyclical process that results in your existing users inviting their friends or new people to join them. Breaking down the different components of this engine can help create a mental model for optimizations and improvements. See below:
The first step of the process is driving app awareness. How are people going to get to your app store page in order to press download and install? There are many, many different ways to drive awareness and the distribution of different channels will vary over time. It’s important to measure every one of these channels so that you can improve and optimize your efforts.
The second step is the download. This download will hopefully come naturally with increased awareness, but there is always a dropoff from awareness to download. You’ll find that some channels will drive much higher conversion from awareness to download. For example, a direct SMS from a friend drives viral awareness and leads to a high conversion to download, whereas Twitter will typically show an order of magnitude lower conversion from awareness to download.
The third and most overlooked step is activation. 20% of downloaded apps are used just once. To avoid this no-man’s land, once a user commits to download and opening up your app, you want to get them to take some action to commit to your product. That might be in the form of a registration screen or some onboarding step. This is where personalization and deep linking come into play. The more you can do to delight these fresh users, the more likely they are to activate and keep using the product.
The final step of the cycle is to drive users to share. Sharing can come in many different forms, from incentivized referrals to content sharing and everything in between. Word of mouth is the most effective form of marketing so the ultimate goal is to leverage your activated users to drive more awareness and therefore feedback into the cycle.
Attributing downloads to the source
You have to send new potential users to the app stores in order to drive downloads but the app stores are a black box when it comes to measurement, which makes it extremely challenging to get a clear picture of where these new downloads are coming from. This is the first critical problem to resolve in order to grow.
All you can see is the total number of new downloads per day. So how can you know what’s working? Let’s say you spend 8 hours a day making marketing posts on Facebook and 4 hours a day building relationship with affiliates. What if affiliates were driving thousands of downloads while your Facebook marketing was only driving tens per day? With the attribution data on how many downloads each channel drives you can confidently deprioritize one versus another.
In order to measure these various channels, you’ll need to use a mobile attribution company like Branch, AppsFlyer, Adjust or Kochava. Every referral link you create has the power to attribute downloads and even in-app user events back to the source. These can be easily visualized or exported to compare how different channels are performing.
The only growth channel that remains a mystery today is organic search traffic in the app store. It’s currently impossible to know exactly how many users just typed your name into the different stores or searched for a keyword. After replacing every link that points to your app with a uniquely tagged Branch link, you can calculate the organic com by process of elimination for a high-level estimate.
Instacart & Yummly: Attributing Affiliate Traffic
Instacart, an on-demand grocery delivery service, and Branch link user, found that a lot of their users were managing recipes with the recipe discovery app Yummly. They thought it would be a great idea to partner with Yummly to allow instant ingredient ordering through the Instacart platform. This affiliate relationship between the two companies would need to be tracked so that Yummly could be fairly compensated for driving downloads and orders through Instacart. Instacart decided to put Branch links to work here.
Instacart instructed the Yummly engineering team to create a Branch link in the Yummly app that points back to the Instacart app. In the screenshot below, you can see the flow in Yummly where they dynamically create the Branch link when the user clicks ‘Shop for ingredients.’
Since Branch also supports contextual deep linking, Yummly has the ability to include the exact ingredient list to pass to Instacart so that the new user’s cart is immediately pre-populated on install. This gives the user a delightful experience upon a fresh install.
Lastly, Instacart gets a report from Branch on the exact number of installs that occurred through this affiliate channel.
8tracks: Attributing Email Performance
In some situations, you might have collected a large web presence and are trying to drive new users to the mobile app. An awesome user-generated music playlist service named 8tracks was facing just this problem.
They were trying to experiment with messaging and calls to action in order to drive the most number of downloads to the native app. One tactic is to put an app download button in the frequent marketing emails that go out to the user base. Unfortunately, it’s hard to know how many downloads are actually being generated by each email. To solve this problem, 8tracks started using Branch links to handle the button press in order to track the number of clicks, downloads and even signups per email. 8tracks is now able to measure the exact number of app downloads across both platforms for each email campaign.
Converting downloads to activations
You’ve worked hard to raise enough awareness to drive a new download. This new person is likely skeptical about your app and will need convincing to stick around. Hence the need to focus on the next phase of your growth engine: converting this new download to an activation.
According to numbers we’ve seen across our network and our own app trials, if you require users to register in order to enjoy the features of your app, you’ll lose over half of the users right away. This means that half of the work you’ve invested in convincing them to download is wasted and you need to work twice as hard for the same number of activated users.
Fortunately, there are a lot of things you can do to convince new users that your app is worth sticking around for. At Branch, we bucket them into two categories depending on what’s most applicable for the app: personalization and contextual deep links.
Personalization involves showing the user something relevant to their social context. This technique is best used by apps that are building an invite or referral feature for their app. For example, if a new user received an invite from their friend to install an app, that user could be greeted by their friend through a custom modal in the app upon install.
Contextual deep links bring the concept of a link router from the web era to mobile apps. It is the philosophy that if a user clicks a link that points to a page in your app, no matter if the app opens right away or the user has to install it first, you should route them to the appropriate page associated with that link. At Branch, we believe the mobile ecosystem and its users benefit from the adoption of this philosophy, as it passes the user’s context from outside of the app into the app, giving the user what they expressed interest in. From an implementation perspective, you simply create links for pages in your apps when users share them, then route new or existing users to that page when the link is clicked.
Gogobot: Personalized Onboarding for High Activation
Recommendations from friends and family are the most common way to discover new apps. With 77% of app users downloading new apps based on recommendations (source), Gogobot decided to make this pathway easier for their existing users by allowing them to invite their friends to sign up and join through an SMS invite feature within the app. Additionally, they decided to use Branch links to personalize each download that came from an invite. In each message that went out to other users, they inserted a Branch link embedded with the original user’s name, profile pic, and user ID.
When a new user receives the link and downloads the Gogobot app, Branch passes that original user’s name, profile pic and user ID to the new app session and populates a personal welcome modal prompting a sign-up. Users who saw a personalized welcome from their friend were 71% more likely to register in the app. This small change to the user experience powered nearly doubled the conversion from download to activation for referred users.
See below for the comparison of the basic activation screen to the personalized one.
Allthecooks: Contextual Deep Linking for High Activation
On the web, sharing is as easy as sending a friend a link to content anywhere on the internet. However, in the mobile world, this type of sharing is hindered by the difficulty of passing information between apps. Currently, a link that drives a user to either app store loses the referring information. Once a user downloads the app they are forced to manually search for the content that brought them to the app in the first place. For apps with pages of content, a contextual deep link is an absolute requirement.
Allthecooks has built a community around sharing and discovering recipes. With this at the heart of their product, they want to be sure they are optimizing the sharing experience. Every time a user wants to share a recipe, Allthecooks automatically creates a Branch link that can easily be shared via text, email, Twitter, Facebook, or Pinterest.
What makes this link so special is that it directs the recipient to the recipe inside the app right after opening, regardless of whether or not they previously downloaded the app. It’s a delightful experience. As a side note, users that originate from a Branch link are 2.1 times more likely to activate into a registered user.
Driving more sharing
Now that you’ve optimized the conversion from awareness to activation in order to drive a solid base of active users into your app, you can focus on the next stage of the growth engine: convincing those users to share the app with friends. This drives a new viral awareness channel that can only open up after you’ve activated enough users.
If you’re reading this blog, chances are that you don’t have a large marketing budget to make paid a large component of your user acquisition efforts. Additionally, it’s very rare that you’ll be able to make paid a significant portion of your traffic in a sustainable way due to the astronomic prices of installs, but it can be a great method to buy an early batch of users to test the robustness of conversion from activated users to sharing.
Sharing as a label can be a little misleading, as it takes the form of many different viral implementations. For example, app sharing can take the form of an incentivized referral program, where users are rewarded with money for convincing their friends to download and use the app (ex. HotelTonight, Uber). Another example might be the basic content sharing feature, where a user is allowed to send a reference to some content in the app to their friends or social network (ex. Flipboard, Allthecooks).
Sharing and viral growth, in general, has been looked down upon due to the ways that some early Facebook apps have abused it, but it plays a key role into most growth engines today. To do sharing well, it’s important to build it into the natural flow of your app or to tap into the emotional ebb and flow of your users. If you just add a sharing or invite feature to check the box (as most apps do), don’t expect more than 1% growth from this feature. If you build it the product and it feels natural, you can see explosive growth from even the simplest referral feature.
The League: Natural Referrals for High Share Conversion
Dating in this day and age can feel like window shopping through an infinite mall. People are desperate for an edge that can give them an advantage over other the crowd, or at least help them filter out the noise. Enter ‘The League’, an exclusive invite-only, application-based dating app. To get access to the app, you must sit on a waitlist before being approved or be invited by a friend. The exclusivity factor has a couple natural companion sharing features that have driven astronomic growth to the core user base.
The first ‘natural’ sharing feature they built was the ability to move up the waitlist by inviting more people to the waitlist. Using a Branch link, they could track the number of users that each existing user-generated. They would show your current position on the waitlist and reduce it with every person you invited when Branch notified them of a new referred install.
The second sharing feature they rolled out leveraged their existing ‘accepted’ user base, allowing them to invite individual friends to give them exclusive access to bypass the waitlist. The League also used an expiring Branch link to ensure uniqueness of each invite that was sent out. See below for an example of one of the tickets.
As a result of The League’s clever sharing implementations, over 18% of the activated user base has shared the app via social media or other channels, resulting in a substantial portion of new traffic to be generated directly by invites.
The Full Circle Growth Engine
This framework provides a mental lens for you to examine your growth problem in order to prioritize the work to improve it. For example, if you’re seeing high awareness->download and activation->sharing but low download->activation conversion, you’ll want to work on optimizing that flow using some of the tricks I’ve recommended or other generic onboarding tweaks. Similarly, if it’s activation->sharing, you can try to devise a sharing flow that is more in line with the user experience.
While I’ve broken down the circle into unique, bite-sized chunks, you must think about the growth engine as a system as it’s likely that sometimes improvements to one section of the engine might have an impact down the funnel. One metric you can use over time is what I’ll refer to as k-Factor, which is an effective measure for how viral your service or product is. K-Factor is simply just the total number of new activated users generated by a single existing activated user. You can use this to gauge the health of your engine, and the response to significant changes.
It’s easy to measure if you’re measuring your viral installs using Branch links. To calculate it, you just need to multiply three conversions together to get the result: (download -> activation) * (activation -> share) * (share -> new viral-driven download). Please be careful to keep time a constant while pulling the conversions, or you could see some strange time sensitive responses.
There is no single answer to growth. There isn’t a prescription solution and each successful initiative has to be perfectly tailored to every app’s situation. The most important tenet to remember is to just keep building as you’ll never get it right the first time.