SDK_UnityMoney/Assets/Script/SDKManager/AdjustManager/AdjustTrackEvent.cs

77 lines
2.3 KiB
C#

using AdjustSdk;
using Firebase.RemoteConfig;
using Newtonsoft.Json;
using SDK.Utils;
public class AdjustTrackEvent : NormalSingleton<AdjustTrackEvent>
{
/// <summary>
/// adjust事件上报
/// </summary>
/// <param name="trackEvent"></param>
public void TrackEvent(string trackEvent)
{
AdjustEvent adjustEvent = new AdjustEvent(trackEvent);
Adjust.TrackEvent(adjustEvent);
}
/// <summary>
/// 广告收益上报
/// </summary>
/// <param name="revenue">单次展示收益</param>
/// <param name="adRevenueNetwork">广告平台名称</param>
/// <param name="adRevenueUnit">广告位ID</param>
/// <param name="adRevenuePlacement">广告源ID</param>
public void TrackAdEvent(double revenue, string adRevenueNetwork, string adRevenueUnit, string adRevenuePlacement)
{
string source = GetSource();
AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(source);
adjustAdRevenue.SetRevenue(revenue, "USD");
adjustAdRevenue.AdRevenueNetwork = adRevenueNetwork;
adjustAdRevenue.AdRevenueUnit = adRevenueUnit;
adjustAdRevenue.AdRevenuePlacement = adRevenuePlacement;
Adjust.TrackAdRevenue(adjustAdRevenue);
}
/// <summary>
/// 收益分离
/// </summary>
/// <returns></returns>
private string GetSource()
{
string source = "applovin_max_sdk";
//获取在线参数
string json = FireBaseRemoteConfigManager.Instance.GetRemoteConfigString("revenue_adj");
if (string.IsNullOrEmpty(json))
{
return source;
}
var revenueAdjs = JsonConvert.DeserializeObject<RevenueAdjItem[]>(json);
if (revenueAdjs == null && revenueAdjs.Length == 0)
{
return source;
}
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 source;
}
}