Custom Dimensions
Overview
Custom dimensions allow you to annotate all events of a player with a string value of your choice. This is really useful because you can tag players based on criteria that you define and you can ultimately segment and compare different "groups" of players.
For example you may want to tag players based on the class they selected, e.g. Warrior, Archer, Mage etc. The idea is when they select their class, let's say "Mage", you will call a piece of code to set their custom dimension to "Mage" and all their events will be tagged with that dimension. In the web-tool you'll be able to filter by that dimension and analyze various metrics for "Mage" players.
There are three Custom Dimensions available to send:
custom_01
custom_02
custom_03
These dimensions are sent with every event type. When you instrument the GameAnalytics SDK, you will need to pre-define a list of 20 valid values for each Custom Dimension. This means that each custom dimension can have 20 different values at a time, and these are defined in the SDKs configuration phase. If you need to track more than 20, then it may be worth breaking the groups down OR considering our Custom Event Fields (which can only be accessed via Datasuite at the moment). For example, if you're looking to track age group, instead of having a different value for each age value: 18
,19
,20
etc., you can break them down into groups: 18-25
, 25-30
, 30-35
etc.
Please refer to the SDK's integration guide for further information on how to implement Custom Dimensions.
When a Custom Dimension is set for the user it will be persisted across sessions and app exit until:
- Another custom dimension value is specified.
- The dimension value is reset by calling with null.
- The app is re-installed.
Considerations
Our systems allow up to 100 unique custom dimensions values for each custom dimension category.
This is more than what the SDKs allow to make sure any changes in the list of static custom dimensions values and any publishing of a new builds will not create issues. Also to allow running the latest build of your game in parallel with older builds played by users who have not yet updated, will not throttle the game.