Helper Functions

LionAnalytics provides global functions to affect future events.

AB Testing

AbCohort()

  • Overview: The method should be called every session. If a user is in multiple AB tests, the method should be called multiple times. This will attach the cohort information to all events. To keep experiment information consistent across games for easier analysis, please do your best to use the following naming convention: {game_code}_{platform}_{test.name}

    • game_code – Three-letter game code, e.g. FNI, SBP, FMT, etc.

      • If a game doesn't have a three-letter code, use full name: game.that.doest.have.code

    • platform

      • ios – iOS platform

      • and – Android platform

      • all – Both platforms (start and end dates should be equal)

    • test.name – Test name using dots (.) instead of spaces

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

experimentName

string

Required

The experiment name

experimentCohort

string

Required

The variant or cohort name.

additionalData

Dictionary<string, object>

Optional

Any additional information

Code examples:

LionAnalytics.AbCohort("levelRuns", "cohort_01");

If a user is in multiple tests, the method should be called multiple times. This cohort data will be attached as a global parameter and will be included in the payload of all events afterwards. In order to clear an experiment, please use the ClearAbCohort(string experimentName) method.

ClearAbCohort()

  • Overview: Clear an AbCohort Experiment (Not commonly used). Only use this if you set up client code to check for FeatureFlags during a session and can respond to players changing experiment participation mid-session.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

experimentName

string

Required

Name of the abCohort experiment to clear from proceeding events.

Additional Data

AddInitializationInfo()

  • Overview: This method adds key-value data that will be included in the game_started event's additional_data.If called after game_started event has already been automatically sent, the data will be sent as a separate debug event instead.We recommend to call this method in a [RuntimeInitializeOnLoadMethod] marked method to ensure it is included with the game_started event. You can call this method multiple times to add more data. See code example here

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

key

string

Required

The name of the item to add.

value

object

Required

The value of the item you want to include.

ClearAllGlobalData()

  • Overview: Clears all the developer provided global additional data.

  • Returns: void

  • Parameters: None

ClearGlobalData()

  • Overview: Clears an entry in the developer provided global additional data.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

key

string

Required

The name of the item to remove.

SetGlobalAdditionalData()

  • Overview: This method allows developers to add their own global parameter values that will be fired off with every subsequent event.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

map

Dictionary

Required

Developers can pass a Dictionary<string, object> and the event will loop through and add all the desired key value pairs.

  • Parameters overload 1:

Parameter

type

Required

Description

item

string

Required

The name of the data to add to as a global parameter value.

val

object

Required

The value associated with the key of the global parameter.

SetGlobalAdditionalDataCallback()

  • Overview: Defines a callback that will be called whenever an event is fired. The values returned by this callback will be added to the additional data of that event. This allows developers to add their own global parameter values, following a defined logic.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

callback

Func<LionGameEventBase, Dictionary<string, object>>

Required

A callback function that takes the event being fired and returns a Dictionary of objects to add to its additional_data.

Code examples:

void Start()
{
    LionAnalytics.SetGlobalAdditionalDataCallback(AdditionalDataCallback);
}
private Dictionary<string, object> AdditionalDataCallback(LionGameEventBase eventBase)
{
    var dataToAdd = new Dictionary<string, object>();
    if (eventBase is HeartBeatEvent)
    {
        // Add additional data specifically for HearBeatEvent
        dataToAdd["memory_used"] = MyPerformanceManager.MemoryUsed;
    }
    // Add additional data for every event
    dataToAdd["current_level"] = MyLevelManager.CurrentLevel;
    return dataToAdd;
}
  • Devs can return different additionalData depending on the event being fired, or can return the same additionalData for every event.

    • ('LionGameEventBase') is the abstract base class. The object passed to this callback will be one of the classes present in Packages/Lion - Analytics/Runtime/Events

Game Data

GetTotalTimeInApp()

  • Overview: Returns the time in app variable that is being tracked on to all LA events currently.

  • Returns: int

  • Parameters: None

RemoveMissionAttemptTrackingData()

  • Overview: Clears internal attempt number tracking data for a specified mission You should not need this.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

missionType

string

Required

Indicate the type of the mission, level, task, quests etc. (within the level).

missionName

string

Required

Name of side Mission that takes place within a Game Level.

missionID

string

Required

Indicate the ID of the mission.

SetTutorial()

  • Overview: Set Tutorial.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

tutorialState

bool

Required

Value used to determine if an event is a tutorial or not.

trackMission

string

Required

Used to check internally if a tutorial has started or finished.

Monetization

SetCurrencyBalance()

  • Overview: This method sets the Currency Balance that will be attached to all events. It should be called anytime that currency is spent or received. to all events. It should be called anytime that virtual currency is spent or received.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

type

string

Required

The type of currency (typically soft or hard)

name

string

Required

The name of the currency

balance

integer

Required

The new value of the player’s balance for that currency.

SetItemBalance()

  • Overview: This method sets the Item Balance that will be attached to all events. It should be called anytime that item is used or received. to all events. It should be called anytime that real currency is spent or received.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

type

string

Required

The type of item

name

string

Required

The name of the item

balance

integer

Required

The new value of the player’s balance for that item.

Player data

ClearPlayerLevel()

  • Overview: Clear a players level, and remove the tracking from other events.

  • Returns: void

  • Parameters: None

ClearPlayerScore()

  • Overview: Clear a players score, and remove the tracking from other events.

  • Returns: void

  • Parameters: None

ClearPlayerXP()

  • Overview: Clear Player XP.

  • Returns: void

  • Parameters: None

SetPlayerLevel()

  • Overview: This method sets the global Player Level (account) value that will be attached to all events. It should be called anytime the Player Level changes.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

playerLevel

integer

Required

This is the value of the player’s account level (not gameplay level).

SetPlayerScore()

  • Overview: This method sets the global Player Score value that will be attached to all events.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

userScore

integer

Optional

This is the value of the player’s score.

SetPlayerXP()

  • Overview: This method sets the global Player XP (experience) value that will be attached to all events. It should be called anytime the Player XP changes.

  • Returns: void

  • Parameters:

Parameter

type

Required

Description

playerXp

integer

Required

This is the value of the player’s XP (experience).

Last updated