Before it was a very painful question for me. Below is a list of what I consider obligatory, it may differ from someone. I would be glad if colleagues add some more useful things in the comments, let’s share our experience.


If you release an application today, but there is no statistics in it, it means that you spent your time on development for nothing. With the current level of competition, you need to understand how the user behaves in your application to make it more effective and competitive – this is a key success factor.

Both platforms have recently been closely monitoring indicators of user engagement, and this indicator directly affects how your application will appear in search results. If your retention is lower than your competitors, you’ll lose the race in Google Play. I have the feeling that the App Store is already experimenting with this. Therefore, statistics are your everything.

There are many solutions on the market: Flurry, Google Analytics, Amplitude. Each of them has its pros and cons: Flurry collects data for two days, in Google Analytics it is not very convenient to work with segments and build funnels, there is no User Path. Amplitude, although the most convenient and powerful solution of the three, has a very limited free event package.

I use Flurry and Google Analytics at the same time: they show the situation in different ways, and sometimes it needs to be supplemented with second statistics to see it in its entirety. Your task in the first stage is to see each step of your user. The first session is especially important: it will either lead to the second or not. Get the most detailed events, track almost every click to see where your users are falling off, at what step, and what needs to be fixed.


This is an SDK that allows you to label a user’s device and then, in statistics, separate users from each other according to the principle of the source from which they came. For example, if you placed an advertisement on a site, you can see how many people came from this advertisement and how they behave in the application.

Do not think that it will not be useful to you. If you are planning success, you will certainly need to know where the highest quality users come from. And be sure to add events (registration, level achievement, purchases) and target actions to the tracking to see not only the application’s installation, but also a little more. This is a fairly extensive topic, it needs a separate material.

What tracking solutions do we have on the market? There are many of them, I am familiar with several:

AppsFlyer is the perfect solution for a beginner. Everything is simple and clear. Pay for installing the application (5 cents), but, in my personal experience, you won’t be billed until you charge $ 100 per month. A million integrations with various advertising sources, even Facebook, which has not been integrated with anyone for a long time.

Tune (formerly Mobile App Tracking and HasOffers) is a complex solution. Strange interface (maybe fixed, I haven’t tried it for a year). If you have not encountered, then it will be very difficult for you to work with it. But a very detailed analytics. From the beginning you won’t need it. It’s also expensive, they take money for clicks and events.

AppMetrika is a solution from Yandex. It is completely free, works without failures, but the interface was done in a crazy way: even I, with my experience, could not do everything the first time. If you are a beginner, I would not rely only on this service. There is no integration with Facebook, and this is a big minus.

There are also Adjust and AdX.

Feedback directly from the application

It is critical at first to receive any information from users. They have two ways: write to you or go leave review on the app store. In the absence of the ability to write directly, users will definitely go and ruin your rating.

Android users are particularly skittish, so don’t even dream that they won’t leave a couple of unsatisfied words on the page of your application if they can’t write to you. Bad comments will ruin your conversions, destroy your marketing position, and affect your search results.

Therefore, make a large button “Feedback”, launch the mail application when you click or insert the Zendesk SDK – it is just for such cases. In this case, do not forget to automatically indicate the name of the application in the subject line of the itn, and in the signature also automatically write user data: operating system, device, country, application version, user ID (if any). You will definitely need this to localize the problem. Zendesk will do this automatically for you.

A / B tests

A / B tests involve creating two to four sets of configurations and distributing them randomly to all new users. This is done in order to test theories if you are in doubt about how best to implement certain functions.

If you are a beginner, then just listen to my advice: do not go to the Store without A / B tests. It is implemented elementarily, but the benefits are invaluable. I do this using configuration files.

Let’s say your application uses registration. You want the user to create a profile – but fear that it will scare a lot of people. As soon as such dilemmas appear in your head, immediately remember about A / B tests. Why is it needed to guess if you can find out for sure?

So, to measure everything, we create two or three different configuration files (configs):

  1. Calls the registration window at start
  2. Opens the registration window after the user is involved (has passed the second level or read two or three articles, for example).
  3. Doesn’t call the registration window at all.

Put a random distribution and distribute configs in random order to users at the start, while sending the corresponding event to the statistics (received config 1).

In addition to each event in the game (user actions), I attach a tag with the config number so that any data layers can be accurately done. In Google Analytics, these labels are called Labels, while in Flurry, they are called Parameters. Then we can create segments based on the A / B group (by the event of receiving a certain group in Flurry or by the label attribute in Google Analytics) and watch any events in the game in the context of these groups.

In other words, you can answer questions like: “How many percent of people from the first, second and third groups reached level 10?”, “How many percent of people from these groups launched the application on the second day?”, “How many percent made a purchase in my application ? “

The ability to rate the application

Do not neglect this window. Users themselves won’t give you ratings, but they are critically important for the conversion from view of downloads. Ask users to rate you by catching them at a good moment. But just a big button in the main menu works the best.

Be careful: you cannot motivate users to put just five stars, such an application will not be moderated. Many people activate this feature remotely after the release, but I would not risk it: on Google dubious reviews can simply be erased, and on Apple they can even call you and ask to prove them (I had such call before). Better do an A / B test and leave the most effective scenario.

Application crash statistics

Headache. For some reason, so far none of the consoles provides full access to application crashes. Crash reports in iTunes Connect have disappeared altogether, and Google Play also often lacks information about which process caused the crash, especially if you have a cross platform.

What do we have? The famous Crashlitics (now Fabric) has recently become free, try it for sure. There are crashes in Flurry in the Technical section (but strangely sorted and in most cases useless), they are also in Google Analytics (for some reason in the “Behavior” section) – they appeared recently and are surprisingly informative. Well, in the Google Developer console itself, of course. How to find them, I wrote above.

Don’t rely on crashes in iTunes Connect: there are few of them (the user must agree to be sent, but he doesn’t need it), they don’t understand anything, and as a result of the last change, I can’t find where they hid them.


Insanely important thing for returning users to the application (the same as retention). Consider a schedule for local notifications (initialized by the application on the device) for at least a month. Without notifications, your user activity metrics will be disastrous.

If we talk about third-party solutions, then, unfortunately, the story is almost the same as with crashes. Either expensive or crooked. There is Urbanairship with a huge price tag, there is Pushwoosh – inexpensive, but with bugs. So here it’s some kind of trouble.

Force update

This is such a thing that allows you not to be afraid to make a mistake. A very simple system that every time you start the application it checks the current version number of your server. If the version is outdated, the “Update” window is displayed. Be careful, on Android such windows can sometimes be canceled by the physical Back button, do not let this happen.

What does it give? If you made a fatal mistake in one of the previous versions, then the force update will not allow your beloved users to launch the application with this error, categorically sending it to the store for a new version in which you already fixed this error.

In addition, not all users regularly update applications, and you may find the perfect configuration and want to transfer all users to it. For this, the force update must be built into the very first available version. Then you can at any time transfer all your users to the latest without losing anyone.


It is not necessary, but can also save from various miscalculations. This is especially true for applications with payments. According to statistics, 90% of payments in Russia are hacks.

If you do not have a server application with server priority, it is better to encrypt the main data. The tricks simply open the application in memory, search for a match (for example, it has 121 gold coins, it searches for 121 and changes it to 100 million), changes and saves it. At least you can protect yourself from this. In a good way, you also need validation of payments and so on, but this is already a very specific task.

I also wanted to go on topics on how to start, what to look for and how to work with traffic, but I will do it separately if you are interested. In the meantime, we will assume that someone now has a memo on how to prepare for the release.