Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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:
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.
Players have different resources, the balance of which can be changed when completing the level.
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.
The in-game currency can be bought using the real money.
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.
Integration tips can be found in the integration section.
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.).
Description
Custom event
Parameters
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
Example of game analysis
The goal is to have paying users who will return to the game as often as possible. To do this, we must analyze Retention. We will analyze it a little bit later, but for now let's see what is our Conversion to the first payment. The Conversion to payments report will help us with this.
We can compare the conversion to the first payment by applying to the report the segments of users who pass the tutorial and those who missed it. It is possible that users whom we brought to the store during the tutorial pay us more and more often than users who refused to study.
Segmentation can be applied to all reports, see the data in the context of various events and in the context of users. Using user segmentation allows you to get more insights from reports.
Let's see how quickly users begin to pay: at the first day or a few days after installation when they better understand the game. So we can determine which day it is worth planning marketing activities to increase the likelihood of payment.
The graph shows that the majority of the first payments are made in the early days, which means we can show users a special offer almost immediately.
It is clear with the first payment, but it’s also important to ensure that users who make the first payment do not stop there. Let's see if the users continue to make subsequent payments, because often repeated payments bring more income, which we could see in the table above. In the same Conversion to payments report, we analyze the conversion to subsequent payments:
After that, we should look at the structure of paying users to evaluate how often, how long and how much users have paid us, we can see it in the RFM analysis report.
The segment Can’t Lose Them. These customers made the biggest purchases, and made them often. But they haven’t returned for a long time. Try to win them back by offering them renewals or newer offers, features. There is a chance to lose them to competition, try talking to them.
Loyal Customers. Customers who spend often good amounts of money. They are responsive to promo activities. Try to upsell higher value products. Ask for reviews and think how you can engage them.
Сhampions. Customers who bought recently, buy often and spend the most money. Try to reward them. These customers can be early adopters for new offers and features. They will promote your app.
At Risk. These customers spent big sums of money and made purchases often but a long time ago. You need to bring them back. Try to reconnect with customers by sending them personalized push notifications, offering renewals, and providing helpful resources.
Need Attention. Customers in this segment have above average recency, frequency and monetary values. They may not have made purchases very recently though. Try making time limited offers, recommend based on past purchases, and reactivate them.
Potential Loyalists. These are recent customers who spent a good amount and made purchases more than once. Try offering membership or loyalty programs, and recommend other products.
Hibernating. Last purchase by these customers was a long time ago. They are low spenders and have a low number of orders. Try offering them other relevant products and special discounts. You can also promote new features and modes.
About To Sleep. Customers have below average recency, frequency and monetary values. You will lose them if they remain not reactivated. Try sharing valuable resources, recommend popular products, renewals at discount, and reconnect with them.
Promising. These customers are recent payers but they haven’t spent much. Try making time limited offers and persuade them to use the app more frequently.
New Payers. These users have just converted to payers. Try engaging them to use the app more frequently and give them bigger discounts.
Now let's look at the structure of our audience in the Gross structure report, segmenting it into beginners and oldies. Our audience is divided into six segments by the registration time:
It can be seen that we are dominated by old users. Perhaps, it’s worth attracting new traffic to our game. With an increase in traffic, the number of paying audience also increase.
If there were more new users, it would be worth thinking about retaining new users.
We figured out the structure of the audience. Let's see what happens with the dynamics of paying users:
The graphs show that users who register 1 months ago and earlier pay less and less. This may indicate an oversupply of currency. You can also notice the uneven distribution of income from beginners, most likely, at the peak there was a campaign for beginners. Perhaps it is worth concentrating marketing communications specifically on new users.
And at what level do users start paying us? Let's go back to the Conversion to payments report and see at what level the user most often makes the first and the second purchases:
Thanks to this information, we understand when to motivate the user to buy.
Let’s evaluate how the game economy is balanced at each level. Let's go to the Economy balance report, it will show the average and total accumulations, purchases, expenses and earnings for each game’s level.
Now let's see check retention:
We will check the traffic to see if we buy that users that we need. The Basic Metrics will help us with the traffic analysis.
The report shows that traffic from google adwords has a downward trend line, on the contrary, organics are growing. Users from different sources perceive our game differently.
It is also worth to segment reports when analyzing by platform, traffic sources, country, version and other criteria, as the behavior of different categories of users may differ.
We will check what is our game’s retention, whether it’s always been at this level. Let’s go to the Engagement dashboard or Basic Metrics.
We see that retention has begun to decline, but maybe the problem is not in all versions of the game. Cohort analysis and App versions analysis will help with this. In the App versions analysis, we will see the audience, the distribution of users across all versions of the game, how they go through the tutorial, users’ deduction and the amount of payments by game’s version.
In the Cohort analysis we compare the behavior of different cohorts with different registration dates. Let's see how cohort / segment retention rates change, what is the average check and other metrics:
What kind of retention do we need to check?
If the problem is with short-term retention, the Tutorial analysis reports will help us.
How are things going with medium-term retention? Let’s take a look at the report on levels’ difficulty. We should go to the Game structure report:
What about long-term retention? First, let’s take a look at the Cohort analysis report:
We can also build a sequence of users’ actions, for example to see what they do after a push about a new event in the game. To do this, go to the User flow report and set the event from which we want to build the analysis:
To analyze whether users enter events, watch ads, interact with other users, add friends and etc., you should go to the Custom events report:
The goal of each game developer is to keep users in the app as long as possible and try to understand the reasons why they churn to prevent it.
That is why we try to find out which actions users do before they leave the app. For an analytical platform, it can’t be calculated because when the user stops using the app, the connection with SDK is lost and it can’t send any events to the platform.
But still, you can use several ways to learn about the actions of these users.
To see which events prevented churn:
Choose Churn in the Event dropdown menu.
Choose Flow direction – to the event.
Select basic and custom events for the report.
After you build the report, you will see the most recent event that leads to the Churn. If you want to see more previous events, just tap the event to expand it.
Export Custom events and Sessions there.
After that, do the following:
Using the Sessions data, find the time of the last session of the user and select only users who churned (e.g. whose last session was 3 days ago).
Merge information about all custom and basic events and find the last event of the user.
Link both tables by the devtodev ID field to find out what was the last event.
Select in one query the Last_Seen parameter in the Users table and Date parameter in each event table.
Find the most recent event for each user and filter the list by the Last_Seen date to choose only users who churned.
1. Filter users by the Last seen parameter which is calculated automatically. You can also add more filters to specify those users you want to explore.
2. After you apply the filter, you will see the list of users. Open their card to see the Last user activity tab. There will be the latest events that were performed by the user.
50-100 users will be enough to find patterns in their behavior.
Using these ways you can explore the last user's activity in the game. All of them have advantages and disadvantages, but please note that sometimes the last event alone is not enough to understand the reasons for churn. Especially if you use a lot of custom events in research. As a result, you can get meaningless events, such as Open the Settings tab, View the chat, etc. That is why it is better to check more events at once to see the whole picture.
It is necessary to take A/B tests during the development stage. So how is it possible to make A/B tests on the devtodev platform?
Here you can find the manual on how to run A/B tests in devtodev:
Another way is to process data manually (e.g via Excel). To do that, you need to export data in the Tuning -> section.
You can do the same analysis in the section. Here’s how:
The last option would be to view the actions of specific users one by one. It can be done in the section.
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 MMO genre.
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.
User level is the main indicator of the user's progress in the game. The player constantly raises his level, improves and achieves new skills and currency. Therefore, we should look at the all in-game economy reports in the context of levels.
First of all, it is worth analyzing the in-game currency, the dynamics of its spendings and savings. Let’s go to the Virtual goods & purchases report. We can see the most popular products in terms of levels and time.
It is also important to know what the players’ shopping basket consists of and how it changes depending on the level. We will go to the Purchases structure report.
Let's see how the demand for certain products varies at the given levels or in time:
Let’s analyze which products’ prices we can change. Let's move on to the ABC/XYZ-analysis for our virtual goods, it allows us to identify categories of goods where we can easily change the price (sub-segments BY, CY, BZ, CZ).
The report shows that the goods bomb, picker, XBomb are bringing to the game the most money and they have the most stable demand, it is better not to experiment with them. On the other hand, you can experiment with pricing and stocks on products from the CZ segment.
Description
Custom event
Parameters
Creating an item: the event makes it possible to assess the level, where the player creates items, and the item quantity.
Event name item_created
Parameters item, type,amount,level, e.g., hatchet, arsenal,1,50
item (string) – item name type (string) – item type amount (string) – number level (int) – current level of the character
The event is sent when the character picks up an item (resources, crystals, equipment, quest items, boosters).
Event name item_picked
Parameters item, type,amount,level, e.g., stone hatchet, quest_item,1, 20
item (string) – item name type (string) – item type amount (string) – number level (int) – current level of the character
Joining clans, clubs: you can send the highest available level of the player to parameters, so that you understand at what stages players join clans.
Event name join_clan
Parameter level, e.g., 102
level (int) – highest available level
To track the game mode, you can also send an event about whether the player is playing the pvp arena or co-op.
Event name battle,
Parameters level, result, charachter, e.g., pvp, 100, win, wizard
level (int) – highest available level type (string) – fighting mode result (int) – fight result charachter(int) – character name
The event is sent when the character begins the quest.
Event name quest_started
Parameters quest, type, location, level, e.g., Example_1, main, forest, 2
quest (string) – quest name type (int) – quest type (0 – additional, 1 – main) location (string) – location name level (int) – current level of the character
The event is sent when the character completes a quest stage.
Event name quest_updated
Parameters quest, type, location,stage,level, e.g., Example_1, 0, forest, 2, 2
quest (string) – quest name type (int) – quest type (0 – additional, 1 – main) location (string) – location name stage (int) – current quest stage level (int) – current level of the character
The event is sent when the character comptetes the quest.
Event name quest_finished
Parameters quest, type, location, level, e.g., Example_1, 0, forest, 2
quest (string) – quest name type (int) – quest type (0 – additional, 1 – main) location (string) – loocation name level (int) – current level of the character
The event is sent when the character uses a booster.
Event name booster_used
Parameters booster, type, level, e.g., speed_increase, speedups, 3
booster (string) – booster name type (string) – booster type (speedups, powerups etc.) level (int) – current level of the character
The event is sent when the user upgrades the character.
Event name character_update
Parameter level, e.g., 13
level (int) – current level of the character
The event is sent when the player moves the charcater to another location
Event name location_changed
Parameters location, level, e.g., valley_of_orcs, 15
location (string) – the name of the location where the character was moved level (int) – current level of the character
Character creation.
Event name character_created
Parameters gender, class, e.g., male, mage
gender (string) – gender class – character class
Authorization: this event highlights the levels where players log in, and the methods of authorization.
Event name authorization
Parameters level, method, e.g., main_menu, 10, fb
level (int) – highest available level method (string) – authorization method: social networks, email, game centre
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, level
level (int) – highest available level source – in-game store points of entrance: the main menu, the playing field, etc.
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_view
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 category (int) – item category: boosters, coins, custom items
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
Treasure chest collecting.
Event name chest_got
Parameter chest_type, e.g., gold chest
chest_type – treasure chest type: usual, free, premium
Treasure chest opening.
Event name chest_open
Parameters chest_type, coins, crystals, card, e.g., free, 500, null, magic
chest_type – treasure chest type: usual, free, premium followed by the names of the items dropped:
coins – coins gained from the chest
crystals – crystals gained from the chest
card – cards gained from the chest
The gameplay of this genre revolves around developing your farm/land/city, etc. A player has to gather various resources and then use them to build and expand his territory. They can also buy new buildings and complete tasks to level up. Often the game has a mechanic that allows for spending currency on speeding up the production of certain items.
Basic events allow you to analyze your game as described in this example.
To make the analysis more smooth and productive, we recommend you to use the following basic events:
LevelUp and CurrencyAccrual for analyzing distribution of players among levels and balance as well as movement of in-game currency among levels.
Tutorial Step for tracking tutorial completion to find stages where users drop off of the app or skip tutorial altogether because he is familiar with all the mechanics of farming games.
Real Payment for building financial reports and calculating basic financial metrics: revenue, ARPU, ARPPU, paying share, transactions, etc.
Virtual Currency Payment for tracking in-app purchases made with virtual currency and evaluation of in-game economy. In this event, as a purchasing vehicle you can use not only hard currency, but also energy that the player spends on resource collection. Then you can open the In-game analysis section and analyze energy collection and spending by levels as well as the most popular sources and sinks of energy:
We should analyze the in-game currency, the dynamics of its spending and saving. Go to the Virtual goods & purchases report. Let's see which products are the most popular in terms of levels and time.
It is also important to know what a player’s shopping basket is composed of and how it changes depending on the level. For this we open the Purchases structure report:
Let's see how the demand for certain items changes at the given levels or over time:
Besides out-of-the-box reports based on basic events, you can use custom events to analyze how users are using your app – the most desirable actions, quests, live ops events, whether or not users invite friends, interact with new mechanics, etc. 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.
In the table below you can find examples of custom events that can be useful for you:
Let’s look at a case of an RPG game (role-playing game) where players control one or more characters that have their own characteristics and peculiarities. During the gameplay parameters of characteristics change that lead to leveling up of the player account. You can use the LevelUp event with CurrencyAccrual to track changes in currency amount and player character levels. Level tracking allows you to analyze the number of players as well as amount and movements of in-game currency on each level. We also recommend you to integrate other basic system events. See the game analysis example to find some application methods.
Besides using out-of-the-box reports that are based on basic events, you can use custom events that will help you get an idea of how users use the application. For example, you can find out how and where gamers acquire new player characters, with which characters they engage into combat, how often their characters level up, what quests they finish, whether or not they engage in live ops events, invite friends, use new game mechanics, etc.
After that you can use the Custom Events and Conversion Funnels reports to analyze custom event data. Build a funnel and analyze conversion rates at every stage, e.g. you dispatch an event every time a user opens an in-game shop, clicks on an item and buys the item. Below you can find examples of custom events that can be useful for you:
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 hyper-casual genre.
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.
There are often many levels in hyper-casual games that gradually unlock. An attempt to pass the level can be both successful and unsuccessful. Moreover, it can affect on the player’s numerical indicators: currency, number of boosters, etc. Therefore, firstly we analyze the distribution of users by levels. So we will understand how many users visited the level, how many of them got stuck and at which level.
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 15,6% to 45.41% of users, most likely this is due to the fact that the user was not interested in the game and not with the complexity of the level.
Now we’ll build a report not in the terms of levels, but 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.).
Remember to apply segmentation to the reports. It is possible that users who come from different sources go through levels differently. Most likely, user payments are also differ. Segmentation can give new insights for your game.
It will also be useful to monitor the users’ flow. Go to the Churn Rate report in the Engagement section. We can take actions to reduce the users’ flow to a minimum after analyzing at what day the majority of players fall off.
Games of this genre often have short game sessions, that means we should pay attention to the frequency of sessions. The frequency of sessions can tell us about the user’s interest and the habit of using the game. We’ll go to the Sessions report. We’ll evaluate the frequency of sessions using the Number of sessions metric.
If necessary, we can also evaluate the length of sessions by selecting the Session duration metric.
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 social casino genre.
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.
First of all, we must evaluate the movement of currency among players in order to understand the demand for virtual goods. After that we will be able to maximizing the income of the game: balance and optimize the demand, organize discounts, promotions and events.
We’ll go to the Economy balance report to see at what levels players buy, earn, spend and how the game’s balance generally changes. We can track the number of spins and coins, both in absolute numbers and on average by players.
We should analyze the in-game currency, the dynamics of its spendings and savings. Go to the Virtual goods & purchases report. Let's see which products are the most popular in terms of levels and time.
It is also important to know what the players’ shopping basket consists of and how it changes depending on the level. We will go to the Purchases structure report.
Let's see how the demand for certain products varies at the given levels or in time:
Description
Custom event
Parameters
Event should be sent when player unlocks new hero
Event name hero_unlock
player_level (int) – player's account level player_gems (int) – player's gems balance
hero_class (string) – by range or by attack type (or by freemium/premium heroes)
hero_name (string) – name of upgraded hero
hero_level (int) – NEW level of hero
hero_gems (int) – gems earned with that hero
source (string) – how new hero is achieved:
box
player_level_reward
premium_pass
Event should be sent when player upgrades the hero level
Event name hero_upgrade
player_level (int) – player's account level
player_gems (int) – player's gems balance
hero_class (string) – by range or by attack type (or maybe by freemium/premium heroes)
hero_name (string) – name of upgraded hero
hero_level (int) – NEW level of hero hero_gems (int) – gems earned with that hero
currency_name (string) – currency name spent for upgrade
currency_spent (int) –amount of currency spent for upgrade
currency_balance (int) – amount of currency spent for upgrade
Change custom user property when the player changes their account level (up or down).
Event name player_level_changed
change (string)
up
down
player_level (int) – new player's account level
gold_balance (int) – balance of gold at the moment of level change
gems_balance (int) – balance of gems at the moment of level change
Event should be sent when the game is started (when all players are loaded on the map and countdown is started)
Event name game_start
game_id (int) – unique game id (to match players in one game)
game_mode (string) – hunt/coop/event...
location_name (string) – name of started location
player_level (int) – player's account level
player_gems (int) – player's gems balance
hero_class (string) – by range or by attack type (or maybe by freemium/premium heroes)
hero_name (string) – name of chosen hero
hero_level (int) – level of hero
hero_gems (int) – gems earned by that hero
players_count (int) – count of real players in game (or bots)
Event should be sent when the game is finished for the player (when player is defeated or all other players are defeated)
Event name game_finish
game_id (int) – unique game id (to match players in one game)
game_mode (string) – hunt/coop/event...
location_name (string) – name of started location
player_level (int) – player's account level
player_gems (int) – player's gems balance
hero_class (string) – by range or by attack type (or maybe by freemium/premium heroes)
hero_name (string) – name of chosen hero
hero_level (int) – level of hero
hero_gems (int) – gems earned with that hero
players_count (int) – count of real players in game (or bots)
result (string) – how game is finished for player:
win,
dead, no_enemies,
time_out,
leave.
duration (int) – game duration in seconds
level_obtained (int) – level of hero obtained within game session
npc_killed (int) – count of killed npc
Description
Custom event
Parameters
Completing daily tasks: if it is necessary to find difficult tasks, that require players to use the largest number of boosters.
Event name daily_task
Parameters task, level, result, e.g., task_6,15, completed
level (int) – highest available level task (int) – task name or task number result – result of the task
Auto spin mode is enabled.
Event name autospins_on
Parameters bet, ships_balance, slot, e.g., 5000, 10000, crazy_train
bet – current bet size ships_balance – the rest of the chips slot – the name of the table where players were playing
Auto spin mode is disabled.
Event name autospins_off
Parameters bet, spin_stop_reason, ships_balance, slot, autospins, e.g., 1000, 2, 5000, crazy_train, 7
bet – current bet size spin_stop_reason – the reason why auto spin was set to stop
0 – themselves,
1 – run out of chips,
2 – left the slot
ships_balance – the rest of the chips slot – the name of the slot played autospins – the number of spins during auto spin
In case of free spins drop in the slot.
Event name freespins_start
Parameters bet, ships_balance, slot_spins, e.g., 1000, 54000, 13
bet – current bet size ships_balance – the rest of the chips slot_spins – number of spins during current slot session
Enter the slot.
Event name slot_opened
Parameter slot, e.g., Jackpot_gold
slot – the name of the slot played
Exit the slot.
Event name slot_closed
Parameter slot, e.g., Jackpot_gold
slot – the name of the slot played
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, level, type, e.g., wheel_fortune, 10, banner
reward(string) – reasons for viewing ads: getting extra moves, extra spins, extra boosters, etc. level (int) – highest available level type(int) – ad type: rewarded, banner, interstitial
Obtaining achievements, badges
Event name achievement
Parameters achievement_name, level, e.g., first_tournament, 20
achievement_name (string) – prize (achievement) name, the player got level (int) – highest available level
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, ships_balance, e.g., welcome_offer, 2, 51
offer_name (string) – the name of the offer that the user opened level (int) – highest available level
ships_balance – the rest of the chips
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, 15
level (int) – highest available level source – in-game store points of entrance: the main menu, the playing field, etc.
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_view
Parameters product_name, level, category, e.g., pack1, 12, boosters
product_name (string) – the name of the item that the user tapped on level (int) – highest available level category (int) – item category: boosters, coins, custom items
Authorization: this event highlights the levels where players log in, and what menue they use to do it.
Event name authorization
Parameters level, method, e.g., main_menu, 10, fb
level (int) – highest available level method (string) – way of logging in: social networks, email, game center
Participation in a championship: you can determine user interest in these events and compare the retention of users who are engaged in a championship with those who do not.
Event name championship_started
Parameters championship_name, level, e.g., championship_1,15
level (int) – highest available level championship_name (int) – championship name
Description
Custom event
Parameters
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.
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., corn, 10, products
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: products, buildings
Authorization: this event highlights the levels where players log in, and the ways of logging in
Event name authorization
Parameters level, method, e.g., 10, fb
level (int) – highest available level for the user method (string) – authorization method: social networks, email, game center
Interaction with friends. The event allows you to analyze social activity of the gamers and virality of your game. Use it to compare retention rates of the players who added other gamers to friends with those who play solitarily
Event name interaction_friends
Parameter level, action, e.g., 102, add_friend
level (int) – highest available level for the user
action – player actions targeted at a friend:
add_friend - add as a friend,
farm_visit - visited a friend’s farm,
sent_gift - sent a gift,
sent_like - liked a friend’s farm
Event is sent when the user helps their friend with order completion
Event name sent_help
Parameter level, name_product, count, count_experience e.g., 102, eggs, 1, 10
level (int) – current player level
name_product (string) – name of a product sent to a friend by the user
count (int) – number of sent items
count_experience (int) – amount of gained experience
Event is sent when the user gets an Achievement
Event name achievements
Parameter name, level,count_experience, e.g. city_architect, 11, 10
name (string) – name or number of the achievement
level (int) – current player level
count_experience (int) – amount of gained experience
Event is sent when the user speeds up something
Event name use_acceleration
Parameter reason_name, name, level e.g., products, apple, 7
type (string) – cause of speeding up:
building – building speed up
products – item production speed up
clearing_territory – land clearing speed up
name (string) – name of the sped up item, e.g.:
apple – apple growth
well – well building
level (int) – current player level
Event is sent when the user completes tasks that allow him to level up
Event name task_completed,
Parameter name, count, level, e.g., added_building_1, 12, 1
name (string) – name or number of the task, that the user has accepted or completed
count (int) – number of active tasks with account for completed tasks
level (int) – current player level
count_experience (int) – amount of gained experience
Event is sent when a user earns virtual currency. It allows for detailed analysis of earned currency
Event name currency_balance_earned
Parameter balance_crystals, balance_energy, currency, amount, source, name, level
balance_crystals (int) – the number of crystals owned by a user after earning
balance_energy (int) – the amount of energy owned by a user after earning
currency (string) – currency type: gold, crystals
amount (int) – amount of earned currency
source (string) – currency source:
purchase – purchased currency
completed_order – completed a task
name (string) – details of currency acquisition
level (int) – current player level
Event is sent when a user spends virtual currency. It allows for detailed analysis of spent currency
Event name currency_balance_spent
Parameter balance_crystals, balance_energy, currency, amount, source, sub_source, level
balance_crystals (int) – the number of crystals owned by a user after spending
balance_energy (int) – the amount of energy owned by a user after spending
currency (string) – currency type: gold, crystals
amount (int) – amount of spent currency
source (string) – what the user spent currency on:
acceleration
lack_resources – lack of resources
purchase_currency – purchase of different currency (energy, gold)
sub_source – detailed information on what currency was spent on, e.g. for spent_type = acceleration:
production - production speed up
harvest - harvest speed up
order - speeding up the appearance of a new order for spent_type = purchase
animal
building name (string) – what was purchased using the currency, e.g.: - chicken - barn - eggs - x200 - x10000
level (int) – current player 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
Event is sent when a user upgrades a building
Event name upgrade_building
Parameters level, name, level_building
level (int) – current player level
name (string) – task name
level_building (int) – level of the building after upgrade
Event is sent when a user purchases a building
Event name purchases_building
Parameters level, name
level (int) – current player level
name (string) – task name
Event is sent when a user completes an order
Event name order_completed
Parameters level, name, source, count_order, count_gold, count_experience
level (int) – current player level
name (string) – order number
source (string) – name of order source, e.g. an order board
count_order (string) – order number
count_gold (string) – amount of acquired gold
count_experience (string) – amount of experience gained from order completion
Event is sent when a user purchases resources needed for order completion
Event name, purchases_resources
Parameters level, name, source, count_order, count_gold, count_experience
level (int) – current player level
name (string) – purchase name
source (string) – name of order source, e.g. an order board
count_order (string) – order number
count_gold (string) – amount of acquired gold
count_experience (string) – amount of experience gained from order completion
Event is sent when a user charges slots for production
Event take_slot
Parameters level, place, count
level (int) – current player level
place (string) – production place
count (int) – number of occupied slots
Event is sent when a user collects manufactured goods
Event took_goods
Parameters level, name, place
level (int) – current player level
name (string) – item name
place (string) – production place
Description
Custom event
Parameters
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 level (int) – highest available level type(int) – ad type: rewarded, banner, interstitial
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, 17
level (int) – highest available level source – in-game store points of entrance: the main menu, the playing field, etc.
Tap on an item: this event can allow you to see the items players are interested in and the level where hey do it. You can also use this event in funnels to see the stages where users have difficulty shopping.
Event name goods_tap
Parameters product_name, level, category, e.g., bomb, 22, boosters
product_name (string) – the name of the item that the user tapped on level (int) – highest available level category (int) – item category: boosters, coins, custom items
Authorization: this event highlights the levels where players log in, and the methods of authorization.
Event name authorization
Parameters level, method, e.g., main_menu, 10, fb
level (int) – highest available level method (string) – way of logging in: social networks, email, game center
Let's take as an example the case of two projects: A and B, each of which has just been released to the market and acquires new users.
Project A has attracted 100 users, while the project B has attracted 60 users. Which of the projects is better? Far it seems that A (and so far this is true), but let's also take a look at more acquisition metrics, and not make final conclusions yet.
Let’s add another sentence to our example. Project A received from its users $300, and their acquisition cost was $200 (Installs cost). Project B received from its users $200, and the acquisition cost was $100.
Let’s calculate the CPI for both projects:
А: CPI = Installs cost / Installs = $200/100 = $2 - this is the average price project A acquired one person for.
B: CPI = $100/60 = $1,67. For Project B one user is less expensive than for the project A.
Now let’s calculate ARPU. For project А: ARPU = Gross / Installs = $300/100 = $3 - this is the average revenue from one user for project A. For project B: ARPU = $200/60 = $3,33.
Finally, let’s calculate the ROI for both projects. ROI = Gross / Installs cost.
For A: ROI = $300/$200 = 150%.
For B: ROI = $200/$100 = 200%.
It turns out that project B, although it attracted fewer users, they brought more money on the average, the buying costs paid off twice while project B acquired users at a lower price.
Let’s add one more sentence to our example.
Let's say, from the first entry in project A 30 days passed, and in Project B - 90 days. Recall, ROI (A) = ROI (A) = 30 to 150%, ROI (B) = ROI (B) = 90 to 200%. This explains the fact that project B looks more successful for now. To compare the quality of traffic, let's compare ROI for the same period of time.
Assume, ROI (B) = 30 to 100%, while the ROI (A) = 30 to 150%.
We conclude that traffic from project A has all chances to become more efficient than traffic from Project B, if the dynamics of ROI continue.
But in any case, it should be said that traffic in both projects is good enough and effective as in both cases, the ROI is more than 100%.
The reports in the devtodev system are universal and suitable not only for games but also for detailed analysis of non-gaming applications. The system enables you to analyze both the main project metrics: DAU / MAU / WAU, retention, and monetization metrics like income, ARPU, ARPPU, as well as to conduct a more detailed analysis of user behavior.
The Real-time dashboard shows key metrics of the current day compared to the previous day. It helps you to keep track of your app’s performance in real time. The report allows you to quickly track changes in the application audience: New users, Cumulative new users, Sessions, Cumulative sessions, Users online. It also allows you to compare today’s indicators of Gross, Cumulative gross, Top countries (by new users or by gross) with yesterday’s.
Thus, you can get live data reports and observe the performance of important project indicators. The information in the report is updated every five minutes.
You can analyze the effectiveness of user acquisition. Acquisition reports answer the following questions: how many users each channel brought, which one is the most profitable, how many users keep using the application after a day, a week, two, etc. and when will this traffic pay off. You can integrate traffic attribution services such as Adjust, Appsflyer, Tune, Branch, Kochava, and Tenjin to get install information.
The reports in the Monetization section give information about the key monetization metrics of your project. For example, you can monitor the dynamics of ARPU, Paying share, ARPPU, Gross. You can also find useful information about users’ repeated purchases and the time between purchases. You can find out on which day users make purchases in your application more often and use an offer to nudge them to buy on that day.
You can also study the structure of your paying audience and income from a perspective of the time that has passed since the installation.
Using the RFM analysis report, you can segment your paying audience by their purchasing patterns. This way you can improve retention and increase revenue by re-engaging inactive paying users.
In order to view the data in the Monetization Dashboard, Gross Structure, Conversion to Payments, RFM Analysis, Transactions Number, Transactions reports, you need to integrate Payment event transmission. You must send this event immediately after the platform confirms that the payment went through successfully. Learn more about the Payment event integration here.
If your app uses the ad monetization model, you can integrate ad networks to get access to the Ad monetization report. The report will help you evaluate how users interact with ads in your app, analyze the most in-demand metrics of ad performance such as ad revenue, eCPM, ad impressions, average number of ad impressions per user and the number of ad clicks per user.
In case you use IronSource or Applovin MAX, you will get access to more detailed statistics. You can find out more about the report here.
If your app uses a subscription monetization model or a mixed monetization model, you can choose the exact income source to calculate the financial metrics: subscriptions, ads or one-time purchases. You will also have access to a subscription monetization report:
The report includes widgets that display the number of new users, new trial users, subscribers and their daily conversions, conversions from trial version to subscription, subscription retention rates, the structure of purchased subscriptions, income, etc.
You can also filter users or metrics by the current status of their subscription – Subscription state. For example, you can select the users who canceled their subscription and send them a push notification with an engaging offer to drive them to renew their subscription.
User segmentation is an important and useful process in mobile application analysis. Sometimes, hypotheses based on information about all users can lead to incorrect conclusions. The larger the audience of your project, the less homogeneous it is. Therefore, using user segmentation, you can analyze the segments in comparison with each other. For example, you can compare the rates of authorization conversion funnels for different countries.
There are two types of segments: static and dynamic. A static segment consists of a specific list of users who perform a specific number of events. A static segment can be created using the conversion funnels section, and the list of users will not be updated:
It is also possible to create a dynamic segment; this list of users will be updated every time new users perform an event specified in the segment parameters. You can create it by going to the Users & Segments tab, and then to the Segments section:
Once segments have been created, they can be used in reports and dashboards in the same way as filters. For example, you can compare the behavior and metrics of users who completed a tutorial with those who skipped it.
The Engagement section enables you to analyze user behavior, retention, and engagement.
Tutorial Analysis shows a tutorial steps funnel, as well as the number of users who successfully completed, did not complete, or skipped the tutorial. Using this report, you can identify bottlenecks in your tutorial.
In order to build a funnel of tutorial progression steps, you need to integrate the basic Tutorial step event. This event should be sent at the end of each tutorial step with the number of each completed step as a parameter. You can learn more about integration here.
The Retention report shows you the percentage of users who opened your app on a selected day after the first launch. This way you can gauge the loyalty to your product and understand when users stop using it.
In the Audience structure report, you can analyze the structure of your audience divided into different groups according to the following parameters: App versions, Country, Devices, Paying capacity (free / minnows / dolphins / grand dolphins / whales / grand whales), Paying status (paying / free), Returning users (new users / returning users).
You can also compare application versions – this is useful in the first days after the release of a new version of the application to make sure that in the updated version the main user action funnels have not been worsened or made more complex. You can compare the metrics of users going through the tutorial, their retention, and income across product versions.
One of the methods of re-engaging users and boosting retention in your application is sending them push notifications. You can use this built-in functionality and compare the metrics of users who received a notification with those who did not.
To implement the push notification service, you need to:
Integrate devtodev SDK and activate push notifications during integration execution.
Fill in the required information in the push notifications panel in the Integration section of the application settings. You can get more detailed information here:
In addition to analyzing data using the main reports, which are based on basic events, you can integrate custom events to track and analyze specific user actions. By using custom events, you can find out what users do in the application, what functions are most popular, how they use various filters, change settings, which buttons press, whether they communicate with other users, whether they share your application with friends, and much more.
For example, an event that gives you information about the most preferred login methods used in your application: Event name authorization Parameters method, e.g., fb, method (string) – authorization method: social networks, email.
You can analyze custom event data in the Custom events report. You can also build a funnel and analyze the conversion at each stage, for example, you send the steps of purchasing goods in your application. Based on these events, you can build a funnel and use the Conversion funnel report to see the conversion at each stage. This will allow you to find the stages where you are losing potential customers.
To assess the dynamics of product quality, you can use Cohort analysis report that allows you to compare the behavior of different user cohorts (segments with different registration dates): how they are converted into purchase for the same period, how their retention rates change, how much they pay.
The report allows you to get information about users. For each user you can see: basic properties, custom properties that are sent to the system, and information about user actions performed in the application.
For example, if you build a conversion funnel for user actions, you will see how users move through the selected stages, but you will not see interim optional steps. Users may not be able to find the right button at once. Thus, by eliminating needless steps, you can optimize and streamline the user's path to the desired action.
Reports with grouping by levels or information about levels are rarely used for non-gaming applications, but still, you can divide user progress in your application into several levels by prioritizing the application functions, and send them to us.
If your project has a virtual currency, by using the LevelUp event you can send information about the current amount of virtual currency in users’ possession.
To track virtual currency consumption and item popularity, add a Virtual Currency Payment event transmission immediately after purchase. These events help you estimate the average amount of virtual currency that users have at a certain level. The event should be sent as soon as the user moves to the next level.
For example, if a user has registered, send information that they got to the first level, then after they have used filters when choosing an item, they earn some activity points, but don’t get to a new level. Or if the user made the first purchase, they are moved to another level, etc. ... This provides an opportunity to build reports and create new hypotheses to boost your metrics. Level transmission gives you access to the In-game Analysis Dashboard, Economy Balance, Virtual Goods & Purchases, and Game Structure reports (Player levels tab).