How to Optimize App User Flows Without Re-deploying to the App/Play Store


You might have thought that real-time changes to flow and features were not possible. After all, code changes are almost always required to make substantial changes to your onboarding tutorial or turning different features on/off.

You can actually continuously optimize your user flows and features in real-time after one just initial code deployment using Apptimize Dynamic Variables. This is simplifies the coding needed to do otherwise complex programmatic tests. To show you how powerful this tool is, let me walk through 3 examples.

1. Onboarding Tutorial

For this example, let’s use the Bing app. As a Seattlite, I always root for Microsoft. I’m really happy to see that the Bing app has over 4 stars in both the App and Play Stores, but the reason why someone would switch over to Bing from Google is often cloudy. They recognize that Google is the dominant player in the market so Bing tries as much as possible to remind users of the value of Bing. In their iPhone app, they have the following onboarding tutorial that displays a few of Bing’s benefits:

Bing App user flows

This sequence is not progressive, i.e. the screens do not build on the previous screen to walk the user through a process. The screens are simply a set of what Bing considers to the be the strongest value propositions. Who is to say that “Search” is actually Bing’s strongest value? What if “Today” is actually what users value most? And how does Bing even know that these 4 messages are the most important. What about the facts that get highlighted on the image of the day?

With Dynamic Variables, an onboarding flow can easily be iterated to find the best possible experience for users. Say there are 8 total pages that the product manager wants to test in this tutorial. If she has enough users, she can test all 70k permutations at once. But even with billions of users, this would be pretty difficult to do.

The most realistic way to find the best set of pages is to iterate. Run a few tests at a time. One method would be to first figure out which of the 8 messages is the most important and place that first in the flow. Then move to the next page to find the best second message and so on.

This type of iteration would be challenging to do with a standard programmatic test where all the variants are hard coded into the app but is fairly easy with Dynamic Variables. Once the code snippets are placed on each of the 8 pages, the PM can create different permutations for each test without coding and without having to re-deploy the app to the App Store. This dramatically decreases the time it takes to optimize the flow.

2. Pop-ups

Say you have a pop-up message in your app that is supposed to appear at a certain time to prompt the user to do a certain task. A common scenario is with ads. When should the app pop up? Some news feed apps will pop up a message to share or an ad after the user scrolls to the bottom of an article or after a certain number of seconds on the page.

With a programmatic only A/B testing platform, iterating on this behavior takes many app release because every test requires code changes. It’s pretty common to test a 5 versus 10 second delay to find that 5 seconds converts more users and then want to find the local maximum around that 5 seconds (maybe the best is 4 or 6 seconds). Iterating on an initial experiment is much easier with Dynamic Variables since the subsequent experiments do not require further App/Play Store approvals.

3. Feature Flagging

Have you ever developed a new feature for your app and then wondered if this addition actually helped to improve the user experience? Especially in crowded spaces, it’s easy to get caught in a features arm race without really thinking about whether or not each feature actually helps the app reach its goals.

Or in Flickr’s case, they constantly have features that are in various stages of development. They don’t want an untested feature to hold up a release, especially if it’s a critical release that fixed a bug. What they do instead is what they endearing call “feature flippers.”

Feature Flippers
image by Alexander Ryabov

Dynamic Variables allows anyone to create feature flippers very easily. Simply tag each new or in-progress feature with a Dynamic Variable tag and release the app as you normally would. At any point in the future, you can selectively turn features on an off or roll them out to a select number of users.

Try it out for yourself

Read our documentation on Dynamic Variables and sign up for Apptimize if you haven’t done so already.

About Apptimize

Apptimize is an innovation engine that provides A/B testing and feature release management for native mobile, web, mobile web, hybrid mobile, OTT, and server. Industry leaders like HotelTonight, The Wall Street Journal, and Glassdoor have created amazing user experiences with Apptimize.

Thanks for