| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  | using System; | 
					
						
							|  |  |  | using System.Collections; | 
					
						
							|  |  |  | using System.Collections.Generic; | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  | using Newtonsoft.Json; | 
					
						
							| 
									
										
										
										
											2025-09-10 12:23:01 +00:00
										 |  |  | using Unity.VisualScripting; | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  | using UnityEngine; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-01 10:32:50 +00:00
										 |  |  | namespace WZ | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  | { | 
					
						
							|  |  |  |     public static class AdConfigParser | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         private static AdConfig _config; | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |         private static Dictionary<string,object> _configDict = new Dictionary<string, object>(); | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         public static AdConfig Parse(string json) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             try | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 // 处理 JSON 字符串,确保它是有效的 | 
					
						
							|  |  |  |                 if (string.IsNullOrEmpty(json)) | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     LoggerUtils.Error("JSON string is null or empty"); | 
					
						
							|  |  |  |                     return null; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 // 使用 JsonUtility 解析 JSON | 
					
						
							|  |  |  |                 _config = JsonUtility.FromJson<AdConfig>(json); | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |                 _configDict = JsonToDictionary(json); | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 if (_config == null) | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     LoggerUtils.Error("Failed to parse JSON to AdConfig"); | 
					
						
							|  |  |  |                     return null; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 LoggerUtils.Info("AdConfig parsed successfully"); | 
					
						
							|  |  |  |                 return _config; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             catch (Exception e) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 LoggerUtils.Error($"Error parsing AdConfig: {e.Message}"); | 
					
						
							|  |  |  |                 return null; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |         public static Dictionary<string,object> JsonToDictionary(string jsonStr) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             Dictionary<string,object> dic= JsonConvert.DeserializeObject<Dictionary<string, object>>(jsonStr); | 
					
						
							|  |  |  |             return dic; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 Admob 广告单元ID | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static List<string> GetAdmobAdUnits(AdsType adType) | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-09-01 11:18:58 +00:00
										 |  |  |             if (_config == null) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 return adType switch | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     AdsType.Banner => new List<string> { StaticValue.AdmobNormalBannerId }, | 
					
						
							|  |  |  |                     AdsType.Rewarded => new List<string> { StaticValue.AdmobRewardId }, | 
					
						
							| 
									
										
										
										
											2025-09-02 07:50:47 +00:00
										 |  |  |                     AdsType.Native => new List<string> { StaticValue.AdmobNativeId, StaticValue.AdmobMinddleNativeId, StaticValue.AdmobSmallNativeId, StaticValue.AdmobFullNativeId }, | 
					
						
							| 
									
										
										
										
											2025-09-01 11:18:58 +00:00
										 |  |  |                     AdsType.Splash => new List<string> { StaticValue.AdmobSplashId }, | 
					
						
							|  |  |  |                     AdsType.Interstitial => new List<string> { StaticValue.AdmobInterId }, | 
					
						
							|  |  |  |                     _ => new List<string>() | 
					
						
							|  |  |  |                 }; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             switch (adType) | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |             { | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |                 case AdsType.Banner: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("admob_banner_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.admob_banner_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							|  |  |  |                         return new List<string>{ StaticValue.AdmobNormalBannerId }; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 case AdsType.Rewarded: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("admob_rewarded_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.admob_rewarded_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							|  |  |  |                         return new List<string>{ StaticValue.AdmobRewardId }; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 case AdsType.Native: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("admob_native_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.admob_native_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							|  |  |  |                         return new List<string>{ StaticValue.AdmobNativeId, | 
					
						
							|  |  |  |                             StaticValue.AdmobMinddleNativeId, | 
					
						
							|  |  |  |                             StaticValue.AdmobSmallNativeId, | 
					
						
							|  |  |  |                             StaticValue.AdmobFullNativeId }; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 case AdsType.Splash: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("admob_splash_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.admob_splash_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							|  |  |  |                         return new List<string>{ StaticValue.AdmobSplashId }; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 case AdsType.Interstitial: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("admob_interstitial_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.admob_interstitial_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							|  |  |  |                         return new List<string>{ StaticValue.AdmobInterId }; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     default: | 
					
						
							|  |  |  |                     return new List<string>(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 TopOn 广告单元ID | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static List<string> GetTopOnAdUnits(AdsType adType) | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-09-01 11:18:58 +00:00
										 |  |  |             if (_config == null) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 return adType switch | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     AdsType.Interstitial => new List<string> { StaticValue.TopOnInterAdUnitID }, | 
					
						
							|  |  |  |                     AdsType.Rewarded => new List<string> { StaticValue.TopOnRewardAdUnitID }, | 
					
						
							|  |  |  |                     _ => new List<string>() | 
					
						
							|  |  |  |                 }; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |              | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |             switch (adType) | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |             { | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |                 case AdsType.Interstitial: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("topon_interstitial_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.topon_interstitial_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							|  |  |  |                         return new List<string>{ StaticValue.TopOnInterAdUnitID }; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 case AdsType.Rewarded: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("topon_rewarded_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.topon_rewarded_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							|  |  |  |                         return new List<string>{ StaticValue.TopOnRewardAdUnitID };; | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 default: | 
					
						
							|  |  |  |                     return new List<string>(); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 AppLovin MAX 广告单元ID | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static List<string> GetMaxAdUnits(AdsType adType) | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-09-01 11:18:58 +00:00
										 |  |  |             if (_config == null) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 return adType switch | 
					
						
							|  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2025-09-10 12:23:01 +00:00
										 |  |  |                     AdsType.Interstitial => new List<string> { StaticValue.MaxInterAdUnitID,StaticValue.MaxSparespareInterAdUnitID }, | 
					
						
							|  |  |  |                     AdsType.Rewarded => new List<string> { StaticValue.MaxRewardAdUnitID,StaticValue.MaxSparespareRewardAdUnitID }, | 
					
						
							| 
									
										
										
										
											2025-09-01 11:18:58 +00:00
										 |  |  |                     _ => new List<string>() | 
					
						
							|  |  |  |                 }; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |             switch (adType) | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |             { | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |                 case AdsType.Interstitial: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("max_interstitial_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.max_interstitial_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							| 
									
										
										
										
											2025-09-10 12:23:01 +00:00
										 |  |  |                         return new List<string>{ StaticValue.MaxInterAdUnitID,StaticValue.MaxSparespareInterAdUnitID }; | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |                     } | 
					
						
							|  |  |  |                      | 
					
						
							|  |  |  |                 case AdsType.Rewarded: | 
					
						
							|  |  |  |                     if (_configDict.ContainsKey("max_rewarded_units")) | 
					
						
							|  |  |  |                     { | 
					
						
							|  |  |  |                         return _config.max_rewarded_units ?? new List<string>(); | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     else | 
					
						
							|  |  |  |                     {  | 
					
						
							| 
									
										
										
										
											2025-09-10 12:23:01 +00:00
										 |  |  |                         return new List<string>{ StaticValue.MaxRewardAdUnitID,StaticValue.MaxSparespareRewardAdUnitID }; | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |                     } | 
					
						
							|  |  |  |                 default: | 
					
						
							|  |  |  |                     return new List<string>(); | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 Bigo 广告单元ID | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static List<string> GetBigoAdUnits(AdsType adType) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             if (_config == null) return new List<string>(); | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             return adType switch | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 AdsType.Interstitial => _config.bigo_i_inter_units ?? new List<string>(), | 
					
						
							|  |  |  |                 AdsType.Rewarded => _config.bigo_i_reward_units ?? new List<string>(), | 
					
						
							|  |  |  |                 _ => new List<string>() | 
					
						
							|  |  |  |             }; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 Kwai 广告单元ID | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static List<string> GetKwaiAdUnits(AdsType adType) | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             if (_config == null) return new List<string>(); | 
					
						
							|  |  |  |              | 
					
						
							|  |  |  |             return adType switch | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 AdsType.Interstitial => _config.kwai_i_inter_units ?? new List<string>(), | 
					
						
							|  |  |  |                 AdsType.Rewarded => _config.kwai_i_reward_units ?? new List<string>(), | 
					
						
							|  |  |  |                 _ => new List<string>() | 
					
						
							|  |  |  |             }; | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 TopOn App ID | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static string GetTopOnAppId() | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-09-01 11:18:58 +00:00
										 |  |  |             if (_config == null) return StaticValue.TopOnAppID; | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |             if (_configDict.ContainsKey("topon_app_id")) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 return _config?.topon_app_id; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             else | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 return StaticValue.TopOnAppID; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |              | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 TopOn App Key | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static string GetTopOnAppKey() | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-09-01 11:18:58 +00:00
										 |  |  |             if (_config == null) return StaticValue.TopOnAppKey; | 
					
						
							| 
									
										
										
										
											2025-09-10 06:33:32 +00:00
										 |  |  |              | 
					
						
							|  |  |  |             if (_configDict.ContainsKey("topon_app_key")) | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 return _config?.topon_app_key; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             else | 
					
						
							|  |  |  |             { | 
					
						
							|  |  |  |                 return StaticValue.TopOnAppKey; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 AppLovin MAX App Key | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static string GetMaxAppKey() | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-09-01 11:18:58 +00:00
										 |  |  |             if (_config == null) return StaticValue.ApplovinKey; | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |             return _config?.max_app_key; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 Bigo App ID | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static string GetBigoAppId() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             return _config?.bigo_app_id; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 Kwai App ID | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static string GetKwaiAppId() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             return _config?.kwai_app_id; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取 Kwai App Token | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static string GetKwaiAppToken() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             return _config?.kwai_app_token; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 获取广告过期时间(秒) | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static int GetAdExpireInSec() | 
					
						
							|  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-08-31 07:12:52 +00:00
										 |  |  |             return _config?.ad_expire_in_sec ?? -1; // 默认值 | 
					
						
							| 
									
										
										
										
											2025-08-30 13:48:51 +00:00
										 |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 检查配置是否已加载 | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static bool IsConfigLoaded() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             return _config != null; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |          | 
					
						
							|  |  |  |         /// <summary> | 
					
						
							|  |  |  |         /// 清空已加载的配置 | 
					
						
							|  |  |  |         /// </summary> | 
					
						
							|  |  |  |         public static void ClearConfig() | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |             _config = null; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     [Serializable] | 
					
						
							|  |  |  |     public class AdConfig | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Admob 配置 | 
					
						
							|  |  |  |         public List<string> admob_interstitial_units; | 
					
						
							|  |  |  |         public List<string> admob_splash_units; | 
					
						
							|  |  |  |         public List<string> admob_rewarded_units; | 
					
						
							|  |  |  |         public List<string> admob_banner_units; | 
					
						
							|  |  |  |         public List<string> admob_native_units; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // TopOn 配置 | 
					
						
							|  |  |  |         public string topon_app_id; | 
					
						
							|  |  |  |         public string topon_app_key; | 
					
						
							|  |  |  |         public List<string> topon_interstitial_units; | 
					
						
							|  |  |  |         public List<string> topon_splash_units; | 
					
						
							|  |  |  |         public List<string> topon_rewarded_units; | 
					
						
							|  |  |  |         public List<string> topon_banner_units; | 
					
						
							|  |  |  |         public List<string> topon_native_units; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // AppLovin MAX 配置 | 
					
						
							|  |  |  |         public string max_app_key; | 
					
						
							|  |  |  |         public List<string> max_interstitial_units; | 
					
						
							|  |  |  |         public List<string> max_splash_units; | 
					
						
							|  |  |  |         public List<string> max_rewarded_units; | 
					
						
							|  |  |  |         public List<string> max_banner_units; | 
					
						
							|  |  |  |         public List<string> max_native_units; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Bigo 配置 | 
					
						
							|  |  |  |         public string bigo_app_id; | 
					
						
							|  |  |  |         public List<string> bigo_i_inter_units; | 
					
						
							|  |  |  |         public List<string> bigo_i_reward_units; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Kwai 配置 | 
					
						
							|  |  |  |         public string kwai_app_id; | 
					
						
							|  |  |  |         public string kwai_app_token; | 
					
						
							|  |  |  |         public List<string> kwai_i_inter_units; | 
					
						
							|  |  |  |         public List<string> kwai_i_reward_units; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // 通用配置 | 
					
						
							|  |  |  |         public int ad_expire_in_sec; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |  } | 
					
						
							|  |  |  | 
 |