Here you can see the example of the game analysis. Additionally we will see the reports on what you should pay attention when analyzing a game of the Match-3 genre.

Match-3 game has the following features:

  1. The game consists of many levels, which are gradually unlocked. Unlocked levels can be completed several times. For example, if the player has access to 20 levels, after the 19th level they can go to the 5th or 10th level, and then return to the 20th level. In devtodev interface such levels are called locations.

  2. Players have different resources, the balance of which can be changed when completing the level.

  3. There are different bonuses / items in the game, which make it easier for the player to pass the game. These bonuses can be received for good results or bought using the in-game currency.

  4. The in-game currency can be bought using the real money.

Event structure example

In addition to analyzing data in the main reports, you can integrate custom events to track and analyze specific user actions. You can use custom events to get an insight into how users use the application, which quests they accept, how often they interact with each other, which offers they open, and so on. You can also analyze custom event data in the Custom event report.

You can build a funnel and analyze conversion rates at each stage. For example, you send an event every time a user enters an in-game shop, clicks on an item, buys an item. Based on these events, you can build a funnel and check the conversion rate at each stage in the Conversion funnel report. Below you can find examples of events that may be useful to you.


Custom event


Store opening is an event that allows you to find out at what point and at what level users enter the store. You can also use this event in funnels to see the stages where users have difficulty shopping.

Event name store_open

Parameters source, level, e.g., main_menu, 10

level (int) – highest available level for the user source – in-game store points of entrance: the main menu, the playing field, etc.

Watching videos: you can find out the levels where users are willing to watch ads in exchange for bonuses, as well as find other ways of encouraging them to watch video ads

Event name show_ad

Parameters reward, number, level, type, e.g., extra_moves, 100, 10, banner

reward(string) – getting extra moves, extra spins, extra boosters, etc.

number (int) – number of awards received

type(int) – ad type: rewarded, banner, interstitial level (int) – highest available level for the user

Showing offers and user interaction with them, e.g., tap on an icon to view the offer. This makes it possible to build offer funnels, compare the effectiveness of offers with each other.

Event name open_offer

Parameters offer_name, level, e.g., welcome_offer, 2

offer_name (string) – the name of the offer that the user opened

level (int) – highest available level for the user

Viewing items in the store and user interaction with them, e.g., tap on an icon to view the item. This provides an opportunity to build purchase funnels.

Event name goods_tap

Parameters product_name, level, category, e.g., XBomb, 2, booster

product_name (string) – the name of the item that the user tapped on level (int) – highest available level for the user category (int) – item category: boosters, coins, custom items

Authorization: this event highlights the levels where players log in, and the ways of logging in.

Event name authorization

Parameters level, method, e.g., main_menu, 10, fb

level (int) – highest available level for the user method (string) – authorization method: social networks, email, game center

Adding a friend. Events that help evaluate the social activity of players. These events make it possible to compare the retention of users who have added other players to friends with those who play alone. They also allow you to determine the virality of the game: how many friends the players have, how many hearts they give depending on the level, etc.

Event name add_friend

Parameter level, e.g., 102

level (int) – highest available level for the user

When users request coins or lives from a friend

Event name live_request

Parameter level, e.g., 102

level (int) – highest available level

Receiving a daily gift: this way you can assess whether the bonus encourages players to re-engage with the game.

Event name daily_bonus

Parameters reward, amount, level, day_number, e.g., heart, 2, 10, 7

reward (string) – the reward name amount (int) – the reward amount

level (int) – highest available level day_number (int) – sequential number of the day, when the user picked up the gift

Participation in a temporary live event: you can determine user interest in temporary events, compare the retention of users who participate in temporary events with those who do not.

Event name event_started

Parameters event_name,level, e.g., battle_pass_1,15

level (int) – highest available level event_name – event name

Completing daily tasks: if it is necessary to find difficult tasks, that require players to use the largest number of boosters

Event name task_completed

Parameters name,level, result, e.g., task 1,15, completed

level (int) – highest available level name (int) – task name or task number result – the result of the task

In match-3 games you often can change the design of the place. In this case, you can send an event about the user action, that will allow you to find out the place and levels where players change the design.

Event name decoration_changed

Parameters place, level, e.g., ki

tchen, 500

place (string) – name of the location where the design of the building was changed level (int) – highest available level

When a player completes a level, send the number of stages left. It will also help with the level difficulty curve.

Event name level_finished

Parameters outcome, moves_remained, booster_used, e.g., win, 5, 0

outcome (string) – results of completing the level moves_remained (int) – number of moves left booster_used (int) – booster use through gameplay

Case example

Integration tips can be found in the integration section.

In-game analysis reports

In the Game structure report we can see the current distribution by levels, income from each level and the share of paying users.

To begin with, let's see the distribution of users by levels in order to assess how many users have visited the level and at what levels the players are stuck. This will help us assess the complexity of the levels.

On the Player levels tab add these metrics to the report: Passed the level, Remaining on the level and % of remaining users.

At each of the first three levels we lose from 8.6% to 14.4% of users, most likely this is due to the fact that users were not interested in the game, not with the complexity of the level.

Now let's compare the distribution by level of two cohorts of the users who registered in the project at a different time. Let’s take users who registered a week ago and two weeks ago. We will track the dynamics of their flow by levels and predict where users who registered a week ago will be in a week.

It can be seen that users who registered two weeks ago are already distributed at all levels. Users who came in the previous week are focused on level 5. It is also clear that none of the players has reached level 10.

Now let's see monetization metrics by levels, in order to understand how much money each level bring to us. After analyzing the report, we understand the distribution of users by levels, the income that each level brings and the share of paying users:

The main income goes from level 9, this means that we should interest users who are at the entry levels. It is also clear that there is a peak in payments at level 6, most likely this is due to the fact that users see and buy a special offer.

Now we’ll build a report not in the terms of levels, but in the game locations (Locations tab). During a certain attempt to complete a level, the users may change various numerical indicators: resources, game currency, etc. The report will show the distribution of players by locations and user flow in these sections. We can track the change in any numerical parameter of the location in terms of successful or unsuccessful attempt (these can be steps, health units, boosters, etc.).

Last updated