using Firebase; using Firebase.Analytics; using Firebase.Extensions; using UnityEngine; namespace BallKingdomCrush { public class FireBaseManger: MonoBehaviour { public static bool IsReady { get; private set; } = false; void Start() { FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => { if (task.Result == DependencyStatus.Available) { Debug.Log("Firebase 初始化成功"); // 启用 Analytics FirebaseAnalytics.SetAnalyticsCollectionEnabled(true); IsReady = true; } else { Debug.LogError("Firebase 依赖错误: " + task.Result); } }); } /// /// Max 广告的收益上传Firebase /// /// /// public static void OnAdRevenuePaid(string adUnitId, MaxSdkBase.AdInfo adInfo) { if (!IsReady) { Debug.LogWarning("Firebase 未初始化完成,丢弃本次广告打点"); return; } double revenue = adInfo.Revenue; // 收入,单位是美元 (USD) string networkName = adInfo.NetworkName; string adFormat = adInfo.AdFormat; string adUnitIdentifier = adInfo.AdUnitIdentifier; Debug.Log($"AppLovin 广告收入: {revenue} USD, 网络: {networkName}, 广告位: {adUnitId}"); // 上报到 Firebase var impressionParameters = new[] { new Firebase.Analytics.Parameter("ad_platform", "AppLovin"), new Firebase.Analytics.Parameter("ad_source", networkName), new Firebase.Analytics.Parameter("ad_unit_name", adUnitIdentifier), new Firebase.Analytics.Parameter("ad_format", adFormat), new Firebase.Analytics.Parameter("value", revenue), new Firebase.Analytics.Parameter("currency", "USD"), // All AppLovin revenue is sent in USD }; Firebase.Analytics.FirebaseAnalytics.LogEvent("ad_impression", impressionParameters); Debug.Log("已上报 ad_impression 事件到 Firebase"); } /// /// 支付的收益上传Firebase /// public static void OnPayRevenueEvent(double value) { if (!IsReady) { Debug.LogWarning("Firebase 未初始化完成,丢弃本次支付打点"); return; } Debug.Log($"AppLovin 支付收入: {value} USD"); // var impressionParameters = new[] { // new Firebase.Analytics.Parameter("value", value), // new Firebase.Analytics.Parameter("currency", "USD"), // All AppLovin revenue is sent in USD // }; // // Firebase.Analytics.FirebaseAnalytics.LogEvent("purchase", impressionParameters); // 上报到 Firebase 保持标准格式 var parameters = new[] { new Parameter(FirebaseAnalytics.ParameterValue, value), new Parameter(FirebaseAnalytics.ParameterCurrency, "USD") }; FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventPurchase, parameters); Debug.Log("已上报 purchase 事件到 Firebase"); } } }