If you’re totally new to analytics in general, we highly encourage you to start with our introductory post for an overview of what it is and why it’s important to use data to refine your design, player experience, and revenue.
It’s not enough to simply put out a new game or content. Your team needs to ensure that proper updates are being released in order to improve the players’ overall experience. This is where event tracking comes in. Event tracking allows you and your team to ensure various pain points are being monitored constantly. From the first-time user experience (FTUE) to level difficulty, this article will focus on highlighting the various ways you can perform event tracking.
Whenever you design something in your game, you should always have an intention – a reason that is driving you to do it. However, the real challenge is making sure you are doing things for the right reasons, and for that you need to understand all the ways players interact with your game.
While you can make changes based purely on what you think is best, it never hurts to get some data in your corner so you can make more informed decisions on where to take your game.
Here are some common issues that might be on your mind that event tracking can help with:
If you wanted to find out if a level is challenging enough, you could track player death, where they die in the level, how many tries it takes on average to complete the level, how long it takes, what are the most popular items used to finish, and other relevant metrics to get a better grasp of how people are playing your game.
At this point, you might be asking how to go about tracking these things in your game, so it is time to discuss custom events and parameters.
A custom event is the action or the result of an action by a player or your system in your game. Virtually, an event can be anything and everything you want:
Once you create a list of events for your game, you can use parameters, which are just details of the event that give you specific information, to start tracking. For example, if a player finishes a dungeon, this event would be called dungeonCompleted.
Some example parameters, depending on what you want to learn, could be:
Here is how this will actually look inside Unity Analytics:
However, be careful not to make every single thing an event and check whether any new element you want to track could actually be a parameter inside an already existing event.
This will make creating visualizations easier and unclutter your event schema. An example of this would be the missionCompleted event, which should have the parameters missionName, missionID, etc.
Standard events are needed in every game and are used to record essential information on player activity and the game state.
The good thing about Unity Analytics is that it collects most standard events automatically once you have integrated the SDK into your project (see details below on trigger type). In addition to being collected automatically, these standard events are used by your default dashboards and metrics that you can use in the Data Explorer.
These standard events include:
Event Name | Description | Trigger type |
---|---|---|
newPlayer | Sent when a new player installs the app on their device. | Auto |
gameStarted | Sent at the start of a new session. A new session starts when the user first launches an app or starts a new session after more than 30 minutes of inactivity. | Auto |
gameEnded | Sent when a player exits the game or no session activity is detected. | Auto |
gameRunning | Sent periodically when the app is running to detect session activity. | Auto |
clientDevice | Records the first time a user launches an app and when device information changes. | Auto |
ddnaForgetMe | Records when a player opt outs of data collection via the privacy plugin. | Auto |
transaction | Sent when a player makes an in-app purchase and tracks the purchase amount. Transaction validation can be done via the Unity IAP. | Manual & Auto for IAP when using Unity IAP |
adImpression | Available to be sent manually when a player has been shown an ad within the game. | Manual |
sdkStart | Sent when the SDK initializes. | Auto |
notificationOpened | Sent when a push notification is opened or a notification was received while the game is in front. | Auto |
notificationServices | Records the player’s push notification tokens. | Auto |
outOfGameSend | Sent when a push notification is sent to a player. | Auto from Player Engagement |
userAssignment | Automatically assigns a player to a campaign for reporting. | Auto from Player Engagement |
Tip: You can add custom parameters to standard events so you don’t have to create others if you need custom details on standard events.
One of the simplest ways to track how engaged new players are is to check how many complete the tutorial. To do this, you would need to create the standard event newPlayer and one custom event that will trigger once a tutorial step is completed, such as tutorialStepCompleted with the parameter stepID to indicate the ID or name of the step.
If you want more granularity in your tutorial analysis, you can also add an event that tracks when the tutorial begins so you can determine if it is beginning properly for players. You can also add an event when the tutorial ends or when any step is started to follow every second of the player journey in the tutorial.
The more custom events you add to track within the FTUE, the more you can understand user drop off and what needs to be tweaked to create a more engaging experience for your first-time players.
For every virtual or real currency transaction in the game, you should always use the transaction standard event and add custom parameters to accommodate your needs. The transaction standard event is then used to populate the revenue dashboard and metrics in the Data Explorer.
You can validate your revenue using the transaction event and the Unity IAP plugin. The transaction event already has many useful parameters set up to register what the player spent, how much they spent, and what they received. All the parameters under productsReceived and productsSpent will help you with this.
When tracking purchases, it is imperative that you track them in USD as separate parameters as well as in your local currency in order to normalize data and have accurate revenue metrics. The transaction event is a standard event and can be either triggered manually by the customer or automatically fired if the Unity IAP is integrated into their game.
Let’s say you’re developing an RPG where the player can buy and receive heroes, gear, and resources from multiple points such as the shop, popup offers, or a daily reward system. The following parameters will help register most of the information for your transactions:
If the player buys something in the shop, you could analyze how fast the user bought this item after seeing it for the first time with these parameters:
Notice that some parameters like shopVisitTotal are a value stored over the player’s lifetime and helps you keep track of a user’s entire history in the game.
Using both standard and custom events are key to measuring the success of new features within your game and how users adopt them.
For example, say we introduce guilds into the game, a feature which is very important for long-term engagement and player interactions, especially for RPGs. Implementing the following events would be important for tracking guild engagement:
Analyzing each of these events will help you determine how active users are with the guild feature and this data can be combined with existing events to determine their overall engagement with the game.
One handy tip is to try comparing users who join a guild versus those who do not. Do guild players spend more money, play more often, or spend more time logged in? These are all key bits of information that you can use to help optimize everything in your game.
Tracking the user’s lifecycle throughout the game is important to determine when they stop playing or to identify any other issues with the game.
Some events that are useful for tracking player lifecycle are:
Using a variety of these events will be useful in the long run as you can see how users are engaging with your game, when they stop playing, and other pain points that you need to change to create a better player experience.
Additionally, tracking transactions is important because spenders tend to be more engaged in the game and stick around longer. After all, they’ve made the decision to commit their wallet to your game, so you must be doing something right.
To wrap up, keep in mind these three rules: