Nikolaj Ahlberg-Pedersen

Head of Product at GameAnalytics

Editor’s note: If you’re reading this, then we highly recommend that you also check out this Beta update article. It has lots more information about our methodology, our choice of future technology, and our reasoning for these major upcoming changes.

New features, you say?

Currently we are quite busy with introducing a modern data processing backend, free-to-use for all of you fine GameAnalytics users. Even so, we found the time to add some powerful new toys for you to play with. We are introducing 2 new platform features called Command Center & Experiments (AB testing).

Essentially, they’ll allow you to control your game from within GameAnalytics and (in Experiments) analyse what changes produce optimal results. All of this in real-time, without having to update a single line of code on the App stores!

How it works + documentation

Our new features provide 2 different ways of triggering these kinds of changes:

  1. Command Center (Configs).
    Send key/value pairs (configs) instantly to all users playing your game in order to alter gameplay, or whatever is needed.
  2. Experiments (AB testing).
    The ability to A/B test a variance of the above configurations on different audience segments.

These two features are currently available in our supported Beta SDKs. For more information about configuring them, click the links in the list above.

Getting started with Command Center (configs)

A Config  is essentially a game variable in the form of a key-value pair that is provided on the player’s device when the GameAnalytics SDK is initialized. These ‘configs’ can be altered and defined in the Command Center UI, where changes get distributed to all players almost instantly.

Here’s how the Command Center works in GameAnalytics…

Key steps when creating a config

1. Calling configs in your game

The config is supposed to alter the game experience for users inside the game. In order to get active configs a call has to be made in the game code. Once the config is returned the game can be altered. Here’s some example code (Unity) for checking availability and for retrieving a config.

2. Defining configs in GameAnalytics

Within GameAnalytics, you can use the Command Center feature to define configs (key/value pairs) that will then be immediately available in all your game clients. This can be used for many things, like triggering campaigns, or even changing the price of an item.

3. Filtering by configs

The data sent from devices will contain information about these config settings as well. This will enable filtering on all metrics by these settings and the values you sent.

Imagine using the config “difficulty=100”. You can then see basic metrics like DAU for users who had this setting. Or you could even choose to view other advanced custom events to discover how the difficulty adjustment affected the gameplay.

Getting started with Experiments (AB testing)

Experiments work a little like the Command Center (in the way that configs are sent to users), but with Experiments you can test different config values on different audiences to discover the best setting.

An example could be testing the frequency of mobile ad placements. Showing too many ads will make users leave fast and showing too few will make less money. Our Experiments feature can be used to discover the optimal balance for your game.

Configs in your game

Experiments work as Command Center configs (read above). The same Command Center call is used, the only difference is that all Experiments (A/B testing) configs are prefixed with “ab_”. Once the config is retrieved the game has to alter the experience for the user based on the config values.

Here’s an example of this code (Unity c#) in practice..

Example: Experiment with difficulty

Game developers often have trouble gauging the difficulty level of their game, which is essential for refining user experience and in some cases also optimizing revenue.

In this case, you could define an Experiment with a key called “ab_difficulty”.

But first you would need to implement the GameAnalytics SDK, add a call to get the value of the “ab_difficulty” key, and then alter the game difficulty based on the value received. Once this is done, and the game is deployed, you can start adjusting your values.

Let’s further imagine that you only want to test this difficulty setting in the US. You define two audiences as shown below (including a control group).

Audience Groups Size Value Filters
Control group 30% Difficulty = control country=US
Group1 30% difficulty = 50 country=US
Group2 30% diffculty = 100 country=US

Once the experiment has run for some days it will be possible to compare the results (filtering on metrics) on the GameAnalytics Dashboards, or in the Explore tool.

In this case you might see some bad numbers for the “difficulty = 100” and you need to know more. Then keep experimenting!

Audience Groups Size Value Filters
Control group 30% Difficulty = control country=US
Group1 30% difficulty = 60 country=US
Group2 30% diffculty = 85 country=US

Results from the last test might give you the insight you need to truly understand the optimal difficulty setting or it might inspire you to look even deeper.

A thing to keep in mind is that a proper sample size is needed when running these experiments.

Defining an experiment

Start by defining a specific config key that you want to test and the period it should be active, as well as the audiences and different values for each audience.

Defining an audience

When defining an audience you can select the size (percentage) and add different filters.

Filtering by configs

It’s easy to filter and report on your configs within GameAnalytics because they will automatically show up in the filter picker. You can use it to compare groups within an individual experiment, as well as between users in different experiments.

Things to note

Experiments need more time before the configs show up on devices. This is due to the data processing having to filter very large audiences to ascertain what users belong. They will therefore not show up instantly on devices like they do in the Command Center.

Also the filters will not show up instantly in the tool; your players need to have received the configs and sent them back + it takes around 24 hours for the processing to surface the data. We recommend that you run an experiment for a particular period and check it 1-2 days after the period has completed.

Want to see it in action?

If you want to see the process in action before setting up configs in your own game, check out the video we made below.

GameAnalytics - Get ahead of the game with free game analytics

Analytics built for games & designed for growth

*We'll send you the instructions, but don't worry - its dead simple to get started.

Nikolaj Ahlberg-Pedersen

Head of Product at GameAnalytics

Join a community of passionate game developers, who get our newsletter every week!

Sign up for a free surprise