In Data analysis, Games Analytics, How-to guides

When trying to understand player data from games, it is vital to be able to see the underlying distributions in terms of the numbers of players, not just aggregate values. For example, an average first session length of 10 minutes may be fine, but if this is actually made up of 90% of players playing less than 1 minute, and just 10% of players playing more than 90 minutes, it is unlikely the game will be successful.

Typically, game tracking events are put in place with a set of key goal counts that allow this kind of analysis to be done. For example, the current user level or currency balance might be tracked so that they are available to be studied in this way. Such goal counts may be placed on every event so that they can be cross-tabulated against particular events, e.g. how many transactions happen at each level, or what is the currency balance when players complete a certain mission.

However, it is not always possible to foresee what goal counts might be useful, nor is it always practical to include large payloads of these on every event. This is a common problem, and luckily most relational databases offer the ability to virtually add goal counts to events by using SQL window functions. These window functions work by letting you define a goal (e.g. numMissions is eventName = ‘missionStarted’), and then every time this goal count field occurs the counter will increment by one.

This may be fantastic for SQL power-users, but what about the rest of us?

How to Use Event Counters in Slice & Dice

During latest update of our deltaDNA Slice & Dice tool, we incorporated counters so that anybody can easily access this functionality. To demonstrate just how useful this is, let’s imagine the following scenario; you want to see how many times players fail a certain mission, and then you want to see what impact this has on retention. It would be impractical to store the number of times each mission has been attempted and failed on each event, but with counters you can effectively do just this.

First, you need set up a mission fail counter for our troublesome mission three:Screen shot - setting up a mission fail counter


Click on image to zoom

This dimension will contain a count of how many times so far mission three has been failed and place this on every event. Using this and a count of unique userIDs, you can quickly get the distribution of mission three fails.


Click on image to zoom

So you can see that most players get past without failing, but there is a significant number of players that need a few attempts to get past. Since these counts are now on every event, you can easily assess their impact on future events.

For instance, it would be interesting to know if the number of times a player fails mission three impacts the number of sessions they will play. By adding the number of sessions to the query, you can easily obtain this information.


Click on image to zoom

Taking the ratio of sessions to users, we can see that the average number of sessions played decreases from 2, for people who never fail mission three, to 1.9, for one fail, and 1.7 for two fails; failing mission three is really hurting our player lifetimes!

Just from this simple scenario, it is clear that this type of insight can directly impact game design in a way that more simple measures cannot. For instance, if we just had the number of mission fails overall, or a simple mission funnel, we may not have been able to reveal this problem. Dynamically adding goal counts to event data gives you truly powerful insight and can reveal how experiences impact player behaviors. This leads to a far deeper understanding of your game.

Counters are a new and powerful feature that is exclusively available in the deltaDNA Slice & Dice tool.

Recommended Posts

Start typing and press Enter to search

GIAF San Francisco title image