From e33418904070ee2117e775e1f272f9037ed199c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=89=E5=B3=B0?= Date: Sun, 31 Aug 2025 17:26:39 +0800 Subject: [PATCH] =?UTF-8?q?Adjust=E6=94=B6=E7=9B=8A=E5=88=86=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Script/Common/CommonData.cs | 12 ++++ Assets/Script/Common/CommonData.cs.meta | 3 + .../AdjustManager/AdjustTrackEvent.cs | 57 +++++++++++++++++-- .../FireBaseRemoteConfigManager.cs | 15 +---- 4 files changed, 69 insertions(+), 18 deletions(-) create mode 100644 Assets/Script/Common/CommonData.cs create mode 100644 Assets/Script/Common/CommonData.cs.meta diff --git a/Assets/Script/Common/CommonData.cs b/Assets/Script/Common/CommonData.cs new file mode 100644 index 0000000..3b6dcb3 --- /dev/null +++ b/Assets/Script/Common/CommonData.cs @@ -0,0 +1,12 @@ +[System.Serializable] +public class RevenueAdjItem +{ + public string name; + public int rate; +} + +[System.Serializable] +public class RevenueAdj +{ + public RevenueAdjItem[] tevenueAdjs; +} \ No newline at end of file diff --git a/Assets/Script/Common/CommonData.cs.meta b/Assets/Script/Common/CommonData.cs.meta new file mode 100644 index 0000000..96518ec --- /dev/null +++ b/Assets/Script/Common/CommonData.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 949cf822b4fa460aaafbe875d708e41b +timeCreated: 1756631216 \ No newline at end of file diff --git a/Assets/Script/SDKManager/AdjustManager/AdjustTrackEvent.cs b/Assets/Script/SDKManager/AdjustManager/AdjustTrackEvent.cs index 95caffb..0d1bb54 100644 --- a/Assets/Script/SDKManager/AdjustManager/AdjustTrackEvent.cs +++ b/Assets/Script/SDKManager/AdjustManager/AdjustTrackEvent.cs @@ -1,4 +1,6 @@ using AdjustSdk; +using Firebase.RemoteConfig; +using Newtonsoft.Json; using SDK.Utils; public class AdjustTrackEvent : NormalSingleton @@ -14,19 +16,62 @@ public class AdjustTrackEvent : NormalSingleton } /// - /// 广告数据上报 - /// 在onAdRevenuePaid的时候上报 + /// 广告收益上报 /// - /// + /// 单次展示收益 + /// 广告平台名称 + /// 广告位ID + /// 广告源ID public void TrackAdEvent(double revenue, string adRevenueNetwork, string adRevenueUnit, string adRevenuePlacement) { - AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue("applovin_max_sdk"); + string source = GetSource(); + AdjustAdRevenue adjustAdRevenue = new AdjustAdRevenue(source); adjustAdRevenue.SetRevenue(revenue, "USD"); adjustAdRevenue.AdRevenueNetwork = adRevenueNetwork; adjustAdRevenue.AdRevenueUnit = adRevenueUnit; adjustAdRevenue.AdRevenuePlacement = adRevenuePlacement; Adjust.TrackAdRevenue(adjustAdRevenue); } - - + + /// + /// 收益分离 + /// + /// + 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(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; + } } \ No newline at end of file diff --git a/Assets/Script/SDKManager/FirebaseManager/FireBaseRemoteConfigManager.cs b/Assets/Script/SDKManager/FirebaseManager/FireBaseRemoteConfigManager.cs index de96a04..bc17769 100644 --- a/Assets/Script/SDKManager/FirebaseManager/FireBaseRemoteConfigManager.cs +++ b/Assets/Script/SDKManager/FirebaseManager/FireBaseRemoteConfigManager.cs @@ -78,12 +78,9 @@ public class FireBaseRemoteConfigManager : NormalSingleton /// /// - public async Task GetRemoteConfigBool(string key, bool defaultValue = false) + public bool GetRemoteConfigBool(string key, bool defaultValue = false) { try { - // await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero); - // await FirebaseRemoteConfig.DefaultInstance.ActivateAsync(); - // 获取值 var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key); @@ -140,13 +134,10 @@ public class FireBaseRemoteConfigManager : NormalSingleton /// /// - public async Task GetRemoteConfigBool(string key, float defaultValue = 0) + public float GetRemoteConfigBool(string key, float defaultValue = 0) { try { - // await FirebaseRemoteConfig.DefaultInstance.FetchAsync(TimeSpan.Zero); - // await FirebaseRemoteConfig.DefaultInstance.ActivateAsync(); - // 获取值 var configValue = FirebaseRemoteConfig.DefaultInstance.GetValue(key);