diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobBannerAdManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobBannerAdManager.cs index 3565825..8bfbc98 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobBannerAdManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobBannerAdManager.cs @@ -29,6 +29,7 @@ namespace WZ Action OnAdPaid, Action onAdClicked) { + if (string.IsNullOrEmpty(adUnitId)) return; if (_bannerAds.ContainsKey(adUnitId)) { LoggerUtils.Debug($"Bigo banner Ad unit {adUnitId} already exists"); diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobInterstitialAdManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobInterstitialAdManager.cs index 0098f0f..e396597 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobInterstitialAdManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobInterstitialAdManager.cs @@ -33,6 +33,7 @@ namespace WZ Action onAdPaid, Action onAdClicked) { + if (string.IsNullOrEmpty(adUnitId)) return; if (_interstitialAds.ContainsKey(adUnitId)) { LoggerUtils.Debug($"[Admob] Interstitial Ad unit {adUnitId} already exists"); diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs index 815a03f..d4e0856 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs @@ -25,6 +25,7 @@ namespace WZ private void CreateNativeAd(string adUnitId) { + if (string.IsNullOrEmpty(adUnitId)) return; if (_nativeAds.ContainsKey(adUnitId)) { LoggerUtils.Debug($"[Admob] Native Ad unit {adUnitId} already exists"); diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobRewardedAdManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobRewardedAdManager.cs index 3265d40..3982812 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobRewardedAdManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobRewardedAdManager.cs @@ -34,6 +34,7 @@ namespace WZ Action onEarnRewarded, Action onAdClicked) { + if (string.IsNullOrEmpty(adUnitId)) return; if (_rewardedAds.ContainsKey(adUnitId)) { LoggerUtils.Debug($"[Admob] rewarded Ad unit {adUnitId} already exists"); diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobSplashAdManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobSplashAdManager.cs index 5bd83ac..7fd08b9 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobSplashAdManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobSplashAdManager.cs @@ -35,6 +35,7 @@ namespace WZ Action onAdPaid, Action onAdClicked) { + if (string.IsNullOrEmpty(adUnitId)) return; if (_appOpenAds.ContainsKey(adUnitId)) { LoggerUtils.Debug($"[Admob] appopen Ad unit {adUnitId} already exists"); diff --git a/Assets/Script/SDKManager/AdsSDKManager/Utils/AdConfigParser.cs b/Assets/Script/SDKManager/AdsSDKManager/Utils/AdConfigParser.cs index 29087b0..6041fb2 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/Utils/AdConfigParser.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/Utils/AdConfigParser.cs @@ -1,7 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; - +using Newtonsoft.Json; using UnityEngine; namespace WZ @@ -9,6 +9,7 @@ namespace WZ public static class AdConfigParser { private static AdConfig _config; + private static Dictionary _configDict = new Dictionary(); public static AdConfig Parse(string json) { try @@ -22,6 +23,7 @@ namespace WZ // 使用 JsonUtility 解析 JSON _config = JsonUtility.FromJson(json); + _configDict = JsonToDictionary(json); if (_config == null) { @@ -39,6 +41,12 @@ namespace WZ } } + public static Dictionary JsonToDictionary(string jsonStr) + { + Dictionary dic= JsonConvert.DeserializeObject>(jsonStr); + return dic; + } + /// /// 获取 Admob 广告单元ID /// @@ -56,16 +64,62 @@ namespace WZ _ => new List() }; } - - return adType switch + + switch (adType) { - AdsType.Interstitial => _config.admob_interstitial_units ?? new List(), - AdsType.Splash => _config.admob_splash_units ?? new List(), - AdsType.Rewarded => _config.admob_rewarded_units ?? new List(), - AdsType.Banner => _config.admob_banner_units ?? new List(), - AdsType.Native => _config.admob_native_units ?? new List(), - _ => new List() - }; + case AdsType.Banner: + if (_configDict.ContainsKey("admob_banner_units")) + { + return _config.admob_banner_units ?? new List(); + } + else + { + return new List{ StaticValue.AdmobNormalBannerId }; + } + case AdsType.Rewarded: + if (_configDict.ContainsKey("admob_rewarded_units")) + { + return _config.admob_rewarded_units ?? new List(); + } + else + { + return new List{ StaticValue.AdmobRewardId }; + } + case AdsType.Native: + if (_configDict.ContainsKey("admob_native_units")) + { + return _config.admob_native_units ?? new List(); + } + else + { + return new List{ StaticValue.AdmobNativeId, + StaticValue.AdmobMinddleNativeId, + StaticValue.AdmobSmallNativeId, + StaticValue.AdmobFullNativeId }; + } + case AdsType.Splash: + if (_configDict.ContainsKey("admob_splash_units")) + { + return _config.admob_splash_units ?? new List(); + } + else + { + return new List{ StaticValue.AdmobSplashId }; + } + case AdsType.Interstitial: + if (_configDict.ContainsKey("admob_interstitial_units")) + { + return _config.admob_interstitial_units ?? new List(); + } + else + { + return new List{ StaticValue.AdmobInterId }; + } + default: + return new List(); + + + } } /// @@ -83,15 +137,29 @@ namespace WZ }; } - return adType switch + switch (adType) { - AdsType.Interstitial => _config.topon_interstitial_units ?? new List(), - AdsType.Splash => _config.topon_splash_units ?? new List(), - AdsType.Rewarded => _config.topon_rewarded_units ?? new List(), - AdsType.Banner => _config.topon_banner_units ?? new List(), - AdsType.Native => _config.topon_native_units ?? new List(), - _ => new List() - }; + case AdsType.Interstitial: + if (_configDict.ContainsKey("topon_interstitial_units")) + { + return _config.topon_interstitial_units ?? new List(); + } + else + { + return new List{ StaticValue.TopOnInterAdUnitID }; + } + case AdsType.Rewarded: + if (_configDict.ContainsKey("topon_rewarded_units")) + { + return _config.topon_rewarded_units ?? new List(); + } + else + { + return new List{ StaticValue.TopOnRewardAdUnitID };; + } + default: + return new List(); + } } /// @@ -109,17 +177,30 @@ namespace WZ }; } - - return adType switch + switch (adType) { - AdsType.Interstitial => _config.max_interstitial_units ?? new List(), - AdsType.Splash => _config.max_splash_units ?? new List(), - AdsType.Rewarded => _config.max_rewarded_units ?? new List(), - AdsType.Banner => _config.max_banner_units ?? new List(), - AdsType.Native => _config.max_native_units ?? new List(), - _ => new List() - }; - + case AdsType.Interstitial: + if (_configDict.ContainsKey("max_interstitial_units")) + { + return _config.max_interstitial_units ?? new List(); + } + else + { + return new List{ StaticValue.InterAdUnitID }; + } + + case AdsType.Rewarded: + if (_configDict.ContainsKey("max_rewarded_units")) + { + return _config.max_rewarded_units ?? new List(); + } + else + { + return new List{ StaticValue.RewardAdUnitID }; + } + default: + return new List(); + } } /// @@ -151,23 +232,39 @@ namespace WZ _ => new List() }; } - + /// /// 获取 TopOn App ID /// public static string GetTopOnAppId() { if (_config == null) return StaticValue.TopOnAppID; - return _config?.topon_app_id; + if (_configDict.ContainsKey("topon_app_id")) + { + return _config?.topon_app_id; + } + else + { + return StaticValue.TopOnAppID; + } + } - + /// /// 获取 TopOn App Key /// public static string GetTopOnAppKey() { if (_config == null) return StaticValue.TopOnAppKey; - return _config?.topon_app_key; + + if (_configDict.ContainsKey("topon_app_key")) + { + return _config?.topon_app_key; + } + else + { + return StaticValue.TopOnAppKey; + } } ///