FireBase收益上报接口

This commit is contained in:
玉峰 2025-08-31 17:38:25 +08:00
parent e334189040
commit 3972dddb25
1 changed files with 61 additions and 0 deletions

View File

@ -1,5 +1,6 @@
using Firebase.Analytics; using Firebase.Analytics;
using Newtonsoft.Json;
using SDK.Utils; using SDK.Utils;
/// <summary> /// <summary>
@ -46,4 +47,64 @@ public class FireBaseAnalyticsManager : NormalSingleton<FireBaseAnalyticsManager
{ {
Firebase.Analytics.FirebaseAnalytics.SetUserProperty(name, property); Firebase.Analytics.FirebaseAnalytics.SetUserProperty(name, property);
} }
/// <summary>
/// FireBase收益上报
/// </summary>
private void OnAdRevenueEvent(string ad_platform, string ad_source, string ad_unit_name, string ad_format, double revenue)
{
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),
new Firebase.Analytics.Parameter("value", revenue),
new Firebase.Analytics.Parameter("currency", "USD"), // All AppLovin revenue is sent in USD
};
string name = GetName();
Firebase.Analytics.FirebaseAnalytics.LogEvent(name, impressionParameters);
}
/// <summary>
/// 收益分离
/// </summary>
/// <returns></returns>
private string GetName()
{
string name = "ad_impression";
//获取在线参数
string json = FireBaseRemoteConfigManager.Instance.GetRemoteConfigString("revenue_fir");
if (string.IsNullOrEmpty(json))
{
return name;
}
var revenueAdjs = JsonConvert.DeserializeObject<RevenueAdjItem[]>(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;
}
} }