using Firebase.Analytics; using Newtonsoft.Json; using Script.Common; using Script.SDKManager.AdsSDKManager.Constant; using Script.SDKManager.AdsSDKManager.Events.AdsEvents; using Script.Utils; /// /// Firebase analytics事件上报 /// public class FireBaseAnalyticsManager : NormalSingleton { public void LogEvent(string eventName) { Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName); } public void LogEvent(string eventName, string key1, string value1) { Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, key1, value1); } public void LogEvent(string eventName, string key1, double value1) { Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, key1, value1); } public void LogEvent(string eventName, string key1, long value1) { Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, key1, value1); } public void LogEvent(string eventName, string key1, int value1) { Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, key1, value1); } public void LogEvent(string eventName, Parameter[] parameters) { Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, parameters); } /// /// 设置用户属性 /// /// /// public void SetUserProperty(string name, string property) { Firebase.Analytics.FirebaseAnalytics.SetUserProperty(name, property); } /// /// FireBase收益上报 /// /// 聚合平台名称 /// 广告平台名称 /// 广告位ID /// 广告格式 /// 单次展示收益 /// 广告展示点位 /// 第几次展示该格式的广告 public void OnAdRevenueEvent(string ad_platform, string ad_source, string ad_unit_name, AdsType ad_format, double revenue, string position, int number) { var impressionParameters = new[] { new Firebase.Analytics.Parameter("ad_platform", ad_platform), new Firebase.Analytics.Parameter("ad_source", ad_source), new Firebase.Analytics.Parameter("ad_unit_name",ad_unit_name), new Firebase.Analytics.Parameter("ad_format", ad_format.ToString()), new Firebase.Analytics.Parameter("value", revenue), new Firebase.Analytics.Parameter("currency", "USD"), // All AppLovin revenue is sent in USD new Firebase.Analytics.Parameter("position", position), new Firebase.Analytics.Parameter("number", number), }; string name = GetName(); Firebase.Analytics.FirebaseAnalytics.LogEvent(name, impressionParameters); AdsKeyEvents.Instance.LogAdCountEvents(ad_format, revenue); } /// /// 收益分离 /// /// private string GetName() { string name = "ad_impression"; //获取在线参数 string json = FireBaseRemoteConfigManager.Instance.GetRemoteConfigString("revenue_fir"); if (string.IsNullOrEmpty(json)) { return name; } var revenueAdjs = JsonConvert.DeserializeObject(json); if (revenueAdjs == null && revenueAdjs.Length == 0) { return name; } int totalRate = 0; //获取全部概率 foreach (var item in revenueAdjs) { totalRate += item.rate; } //开始随机 int randomValue = UnityEngine.Random.Range(0, totalRate); int accumulatedRate = 0; //根据随机值定位 foreach (var item in revenueAdjs) { accumulatedRate += item.rate; if (randomValue < accumulatedRate) { return item.name; } } return name; } }