Skip to main content

Game Ops

Custom Dimensions

Specifying custom dimensions will enable filters in the GameAnalytics tool. These filters can be used on other metrics (like DAU or Revenue for example) to view only numbers for when that dimension value was active. To enable these you have to use the fields custom_01 custom_02 custom_03.

Example for tracking player class

  1. player changes class to ninja and this is registered locally (variable and local db) as custom_01
  2. an event is triggered and custom_01 value is set in the event
  3. player changes class to wizard and this is registered locally (variable and local db) as custom_01
  4. an event is triggered and custom_01 value is set in the event
  5. session is ending and the session end event also get the custom_01 value
  6. session starts (for example game launch)
    • custom_01 (+ the other 2) is retrieved from local db (if found
    • the user event (session start) get the retrieved custom_01 value added
  7. An event is triggered and custom_01 value is set in the event
  8. player removes class and custom_01 is set to empty (also in db)
  9. Custom_01 is not added on any further events

This will allow dimension custom_01 to have the filter values ninja and wizard available for selection in the tool. For example visualising Daily Active Users (DAU) filtered by players who were playing a ninja.

note

Use only custom dimensions if the need is for filtering all other data. Often a design event is a much better fit and will not use the more expensive and limited custom dimensions. Use a design event if you need counting and/or value aggregation for that specific action. For example when the player chooses a class you could track a design event with class:ninja or class:wizard and even include a value (like money in the bank or XP at the time). This will give you counts, sum, mean, histogram etc.

Tips to remember:

  • Think about the need you have for filtering data
  • Decide what area each custom dimension should track
  • Decide on a finite list of dimension values for each. Using too many will block your game
  • Don’t use all 3 straight away unless you are certain of how to use it

DO NOT use custom dimensions for these, as they are already tracked or can be tracked in other ways:

  • device information
  • os version
  • age
  • platform
  • level progression (use progression)
  • never use float or timestamps or other dynamic content
  • player class (ninja, wizard)
  • player affiliation (horde, alliance)
  • player persona (social, power_gamer)
  • player level (1_4, 5_8, 9_12, 97_100)
tip

Learn more about Custom Dimensions here.

Remote Configs & A/B Testing

Remote Configs

The Remote Configs feature enables you to control in-game parameters remotely. You get your remote configs from init request response. See more here.

The configurations loaded for the player need to be added to all events. This way, the GameAnalytics backend will be able to allow you to filter metrics by these remote settings.

Example of a user event for a player that received the configurations listed in the response example above:

{
"device": "x86_64",
"build": "1",
"ios_app_build": "0.0.1",
"category": "user",
"ios_idfa": "AEA36878-D034-423C-BDEB-3C39A07CF951",
"sdk_version": "rest api v2",
"user_id": "AEA36878-D034-423C-BDEB-3C39A07CF951",
"session_num": 20,
"configurations": {
"color": "red",
"ab_bonus": "10"
},
"platform": "ios",
"connection_type": "wifi",
"manufacturer": "apple",
"client_ts": 1538659211,
"session_id": "bd638487-1c88-4ce4-89f1-d6371f0996c2",
"ios_idfv": "8431B825-8729-4E32-85C1-D54BD295E9F0",
"os_version": "ios 11.4",
"v": 2
}

A/B testing

You get the A/B testing id and A/B testing variant id (only if the user is part of a A/B testing experiment) from the init request response. See more here.

The A/B testing ids loaded for the player need to be added to all events. This way, the GameAnalytics backend will be able to allow you to filter metrics by these A/B testing ids.

Example of a user event for a player that received the A/B testing ids listed in the response example above:

{
"device": "x86_64",
"build": "1",
"ios_app_build": "0.0.1",
"category": "user",
"ios_idfa": "AEA36878-D034-423C-BDEB-3C39A07CF951",
"sdk_version": "rest api v2",
"user_id": "AEA36878-D034-423C-BDEB-3C39A07CF951",
"session_num": 20,
"ab_id": "1234",
"ab_variant_id": "1234variant",
"platform": "ios",
"connection_type": "wifi",
"manufacturer": "apple",
"client_ts": 1538659211,
"session_id": "bd638487-1c88-4ce4-89f1-d6371f0996c2",
"ios_idfv": "8431B825-8729-4E32-85C1-D54BD295E9F0",
"os_version": "ios 11.4",
"v": 2
}