At a glance: Set up tracking for 4 game events in Firebase to enable Level Analytics in Cost Center.
1. level_start
This is a Firebase Standard Event
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
This is Firebase Standard Event
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);}