Tracking player’s progression based on tons of different attributes can be painful, especially if it is related to other in-game reward systems. We offer a straightforward way for you to build a complex player-attributes system for your game. You can use the service to track internal gameplay-related stats such as the number of kills, dies, assists, or other game data in general such as the play time, the number of purchases or the number of the maps played.

Creating Game Player Progression Tracking & Analytics

So, what are the benefits of using it?

We use statistics as the baseline of our other game services such as leaderboard, achievement and matchmaking. All of those services have consistent server side attributes for you to use and utilize. It gives you more control and, obviously, also provides extra security layer for your game, especially if you handle sensitive attributes that are tied to your game economy.

We also utilize event-driven communication across our game services, which means less functions or API calls for you to handle. For example, if you want to use the statistics with leaderboard and achievement service, you will only need to implement update user’s stats from your game client or game server. Our leaderboard and achievement service will be updated automatically by listening to the event published by the statistics service.

Where to start?

Configuring the Stats

We provide statistics configuration interface from our admin portal. You can configure multiple different stats and group them using tags to make it easy for you to query based on your needs. Here is what the configuration page looks like from our Admin Portal:

Video Game - Configuring Player's Progression Tracking
Fig 1. AccelByte Statistics Configuration

Each stat attribute is defined using a unique stat code. The unique stat code is readable, so that it is easy for you to call from your game. Here is how the configuration properties look like from the Admin Portal:

Video Game - How to Add Player's Progression Statistics
Fig 2. AccelByte Statistics Configuration Properties

Initializing the Stats to a Player

After the configuration is done, you will need to initialize the stat attributes to the player. It can happen during the first load out or every time the player launches a game after the game's update. You can do this using create user’s stats function available in both of our Unity or UE4 SDK. You will need to specify the default value of the stat attribute during the configuration, and this default value will be assigned to the player during the initialization.

Updating Player Stats

You can trigger the stats update from your dedicated server or game clients based on your needs. We provide both server SDK and client SDK functionality for you to do this. The server SDK is suitable for multiplayer game cases where you want to make sure that the API call is secure, and cannot be overridden easily by your players from the game. You can also utilize the client SDK if you'd like to allow the stats to be modified easily from the game.

Displaying Player Stats

The process to display player stats is pretty straight forward. There is this scenario when you want to only display specific stat attributes for a profile showcase, or to display attributes based on a specific context, as an example: match stats, map stats or skills attributes.

To showcase the stats in a player profile like in the example below, you can easily query the stats you need using the selected stat codes, and arrange the UI based on your design.

How to add Player's Statistics to Your Game
Fig 3. Player Profile Stats

You can also query grouped stats using a tag, so that you can retrieve multiple stat attributes easily at the same time. Please see the example below.

Adding Player's Statistics to Your Video Game
Fig 4. Grouped Stats

That concludes the highlights on how our statistics service can help you track player progression consistently. Obviously do not hesitate to reach out to us at if you need more information on how to utilize the service for your game.