Analytics services. Customer analytics

Evgeniia Kuznetsova
Dec 3, 2018 · 9 min read

Answering the embarrassing questions you wanted to ask but were afraid to

Imagine yourself as an entrepreneur who has just launched a donut shop website or an educational mobile app. You are now interested in setting up a low-budget analytics to measure usage dynamics. Everyone around you is talking about Mixpanel, Facebook analytics and other services you have never come across. In this article, we will answer the questions in order to help you understand the basics of customer analytics.

So what is a client analytics service?

Globally, customer analytics is used both for websites and mobile apps. Despite interfaces and functionalities may differ a lot, analytics service settings and workflow would be almost similar.

What’s the purpose of using it?

— monitoring user behavior while interacting with your service;

— making decisions on how to develop your service including new content and features;

— discovering customers pain points and generating insights on how to improve user experience.

How does it work?

Development team members have to join their forces and respond to this question together. These are obviously product manager, developers, analysts. On this step any mistake would cost a lot: by fault, you might not collect what you really need and instead collect the data which will be useless for decision makers.

After the team has defined which behavioral properties should be collected, the architecture for data collecting should be invented. The main object analytics services handle is an event. An event is a description of what has happened which is sent to the analytics service in response to the user’s action. As a rule, for each of the actions chosen on the previous step, an event is a JSON file with several fields which describe the action completely.

Wait… What is a JSON file?

JSON file is a text file which describes what has happened. For instance, it may contain information about that user called Mary has started the game at 23:00 on November 15. How to describe each possible action? If a user clicks the button, which properties should be collected? There are properties of 2 types:

— Super-properties which are common for all the events and are always present. These are definitely the date and timestamp, device id, API version, OS version, analytics service version.

— Event-specific properties which are arbitrary and should be selected with attentiveness. For example, for a button “Buy coins” in a mobile game these properties would be “Number of bought coins” and “How much the coins cost”.

JSON sample of an event a language learning app could produce

Ok, but why don’t we simply gather all the data?

Generally, web and mobile services consist of objects called ‘entities’. Coins or game levels are examples of these entities. Thus events can be composed using entities, their possible states, and actions. Several game world examples of events: ‘level started’, ‘level finished’ or ‘level finished, reason: eaten by dragon’. For entities which can be ‘open’ or ‘started’ it is also better to create ‘closed’ / ‘finished’ states so as not to break the logic and over-complicate further analysis.

How many events should a complex mobile app create?

What’s next?

Where is the data stored?

Analytics service provides us with a corporate account where the results of the processing of raw behavioral data will be displayed. Next, analysts work with the metrics prepared in this account.

Free client analytics services usually don’t let users download raw datasets. However, such options are present in several analytics services (which are rather pricey).

How long does it take to set up analytics service?

— If the events are ordered strictly, how to fix this order and the fact that one event can never come to analytics earlier than another?

— What if the user has changed time on his mobile phone? Or his time zone?

— How to collect the occurred events in case a user lacks Internet access?

On average, Mixpanel may be configured in a couple of days. If you are planning to specify and then collect loads of specific events, it may take up to a week.

How to choose analytics service which suits my website/app?

Homer trying to choose an analytics service

You may find that general statistics is fine in each of most popular analytical tools. It would be enough for marketing specialists and sales managers as all the basic metrics are in place (DAU, MAU, ARPU, retention). Simple landing page requires relatively light analytics service, for example, a Yandex.Metrika counter.

But when it comes to unordinary tasks, the choice depends on the website or app specifics. They define analytical tasks and events which should be processed in order to solve them. We’ll try to tell about several useful advantages of the popular services for you to simplify your choice.

For example, Mixpanel provides the split testing functionality. How does it work? Right in the Mixpanel dashboard, one should create a new experiment and several cohorts (A, B, …) within it. Then he defines a) which users should get into each cohort and b) the variety of values for the entity he is going to test. It means users from A will see button filled with, say, green and B cohort will receive blue button.

Since Mixpanel gathers all the data it can find device_id for each user in A and B. In the website or app code using analytics SDK its owner creates tweaks — special parts of code where values may change for testing. After that, for each user Mixpanel will substitute value (which is button color in the current case) depending on his cohort. If there is no internet connection, the user will be shown a default colored button.

Sometimes you may want not only to gather and explore the events but also to aggregate users. Mixpanel does have a tab ‘Users’ where you can find customer’s personal data (name, email, social net profiles) and look through his log history. These events also may be aggregated and form simple statistics: ‘100 times eaten by dragon’ or ‘bought 5 flowers’. Some services even allow to download this info.

Next, let’s switch to Facebook analytics. What’s its main competitive advantage? It unions website or app visitor with his Facebook profile. And that’s amazing! You can explore your audience and what’s more important you can convert it into ad audience easily. Suppose I visited a website which I’ve never seen before. Later on, if the service owner switches on the ad company, ads will be shown to me on Facebook. For you, as a service owner, it is very easy to use. The only thing you should not forget is to set your ad budget daily cap.

Almost nothing to do and works fine! Are there any cons?

Surely, there are. The first is often the price. Usually, such services are paid for by period. A mobile game startup may pay about $50k per month to get all the insights needed for further development. Pretty much, isn’t it? And if you try to save your money and choose free solutions, you will get a very limited feature set to use. Analytics will not be detailed: you’ll see customer device types and operating systems but will not be able to look at specific events or create funnels.

Generally, almost every analytics service limits your access to raw data. That is, on the whole, the main disadvantage of the concept of client analytics: you can never run your own models on your own data. Therefore, you will not be able to study user sessions fully. Another thing is complicated customer aggregation. For example, studying your website sales funnel stages in Mixpanel you would only be able to calculate the mean time between stages. Any other metric, say, median time or percentiles will not be available to learn using this service.

Regarding Facebook analytics, its greatest minus is a complicated and not user-friendly at all interface which is, in addition, rather slow.

But the worst thing about client analytics is that even Mixpanel when it comes to big data (which is common for active mobile application), calculates approximations. It’s stated in the documentation and probably is done to speed up the calculations, however, still, it’s not what you would expect from an analytics service. If you compare the results from client analytics with your own server-side analytics, the values might differ. We are going to tell more about how to build your own server-side analytics in our next article.

What if I use them all?

In addition, several systems can be switched on in parallel for testing: for example, if you study the new interface and are going to abandon your old service and switch to the new one gradually. As in any business, you need to know the limits and connect as many analytics services as you can work with (Please remember, that if you use several, they should not slow down the network connection altogether!).

How to add new events?

So, we hope our answers would be practical and useful for you. Or perhaps, at least they helped you understand that client analytics services don’t meet your needs. In this case, server-side analytics might be a solution you are looking for. Right in Part 2 of the article, we have described how to build classical server-side analytics. In Part 3, we have told more about cloud services implementation which we used in our recent project.

Thank you for reading! Please, ask us questions, leave your comments and stay tuned! Find us at

Poteha Labs

We conduct production ready research and development to…

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store