Tracking Level Analytics
Updated over a week ago

At a glance: Set up tracking for 4 game events in Firebase to enable Level Analytics in Cost Center.

1. level_start

    • With C# Unity, you can use FirebaseAnalytics.EventLevelStart

  • Log this event when user starts a level

  • Parameters:

    • level: level number

      • With C# Unity, you can use FirebaseAnalytics.ParameterLevel

    • level_mode: play mode, or difficulty of the level, in case your game has multiple playing modes.

Example (Unity):

using Firebase.Analytics;Parameter[] LevelStartParameters = { new Parameter(FirebaseAnalytics.ParameterLevel, currentLevel.ToString()), // examples: 1, 2, 3, 4, 5 new Parameter("level_mode", currentMode.ToString()) // examples: Hard, Easy, Challenge};FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLevelStart, LevelStartParameters);

2. level_end

    • With C# Unity, you can use FirebaseAnalytics.EventLevelEnd

  • Log this event when user finishes a level

  • Parameters:

    • level: level number

      • With C# Unity, you can use FirebaseAnalytics.ParameterLevel

    • level_mode: play mode, or difficulty of the level, in case your game has multiple playing modes.

    • success: specify True to indicate success and False to indicate failure

      • With C# Unity, you can use FirebaseAnalytics.ParameterSuccess

Example (Unity):

using Firebase.Analytics;Parameter[] LevelEndParameters = { new Parameter(FirebaseAnalytics.ParameterLevel, currentLevel.ToString()), new Parameter("level_mode", currentMode.ToString()), new Parameter(FirebaseAnalytics.ParameterSuccess, success.ToString())};FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLevelEnd, LevelEndParameters);

3. iap_sdk

  • Log this event when user makes an in-app purchase

  • Parameters:

    • level: level number

      • With C# Unity, you can use FirebaseAnalytics.ParameterLevel

    • level_mode: play mode, or difficulty of the level, in case your game has multiple playing modes.

    • value: revenue of this in-app purchase

      • With C# Unity, you can use FirebaseAnalytics.ParameterValue

    • currency: currency of this in-app purchase

      • With C# Unity, you can use FirebaseAnalytics.ParameterCurrency

Example (Unity):

using Firebase.Analytics;Parameter[] IAPRevenueParameters = { new Parameter(FirebaseAnalytics.ParameterLevel, currentLevel.ToString()), new Parameter("level_mode", currentMode.ToString()), new Parameter(FirebaseAnalytics.ParameterValue, iapValue), new Parameter( FirebaseAnalytics.ParameterCurrency, iapCurrency)};FirebaseAnalytics.LogEvent("iap_sdk", IAPRevenueParameters);

4. ad_revenue_sdk

  • Log this event when an ad displays

  • Parameters:

    • level: level number

      • With C# Unity, you can use FirebaseAnalytics.ParameterLevel

    • level_mode: play mode, or difficulty of the level, in case your game has multiple playing modes.

    • ad_format: banner / rewarded / inter

    • value: ad revenue for this ad impression

      • With C# Unity, you can use FirebaseAnalytics.ParameterValue

    • currency:

      • With C# Unity, you can use FirebaseAnalytics.ParameterCurrency

Using Max Mediation

using Firebase.Analytics;MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration sdkConfiguration) =>{ //... your code MaxSdkCallbacks.Banner.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent; MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent MaxSdkCallbacks.Rewarded.OnAdRevenuePaidEvent += OnAdRevenuePaidEvent //... your code}
// Handle AdRevenue call backprivate void OnAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo impressionData){ Parameter[] AdRevenueParameters = { new Parameter(FirebaseAnalytics.ParameterLevel, currentLevel.ToString()), new Parameter("level_mode", currentMode.ToString()), new Parameter("ad_format", impressionData.AdFormat ?? ""), new Parameter(FirebaseAnalytics.ParameterValue, impressionData.Revenue), new Parameter(FirebaseAnalytics.ParameterCurrency, "USD") }; FirebaseAnalytics.LogEvent("ad_revenue_sdk", AdRevenueParameters);}

Using Admob Mediation:

  • Step 1: Reach out to your account manager to be added to the allowlist for this feature

  • Step 2: Sample code for tracking can be found here

Using IronSource Mediation:

using Firebase.Analytics;IronSourceEvents.onImpressionSuccessEvent += (impressionData) =>{ OnAdRevenuePaidEvent(impressionData); };// Handle AdRevenue call backprivate void OnAdRevenuePaidEvent(IronSourceImpressionData impressionData){ Parameter[] AdRevenueParameters = { new Parameter(FirebaseAnalytics.ParameterLevel, currentLevel.ToString()), new Firebase.Analytics.Parameter("level_mode", currentMode.ToString()), new Parameter("ad_format", impressionData.AdUnit ?? ""), new Parameter(FirebaseAnalytics.ParameterValue, impressionData.revenue), new Parameter(FirebaseAnalytics.ParameterCurrency, "USD"), }; FirebaseAnalytics.LogEvent("ad_revenue_sdk", AdRevenueParameters);}

Did this answer your question?