update: 添加 GuruServices 配置参数, 预制 TradePlus 参数
							parent
							
								
									8e88cb88ec
								
							
						
					
					
						commit
						7044f87d3b
					
				|  | @ -80,6 +80,7 @@ namespace Guru.Editor | |||
|             cfg.ad_settings = new GuruAdSettings(); | ||||
|             cfg.adjust_settings = new GuruAdjustSettings(); | ||||
|             cfg.fb_settings = new GuruFbSettings(); | ||||
|             cfg.parameters = new GuruParameters(); | ||||
|             return cfg; | ||||
|         } | ||||
| 
 | ||||
|  |  | |||
|  | @ -137,14 +137,6 @@ namespace Guru.Editor | |||
|             { | ||||
|                 settings.app_settings.ios_store = value; | ||||
|             } | ||||
|             else if (GetValue(line, "level_end_success_num", out value)) | ||||
|             { | ||||
|                 settings.app_settings.level_end_success_num = GetInt(value); | ||||
|             } | ||||
|             else if (GetValue(line, "enable_keywords", out value)) | ||||
|             { | ||||
|                 settings.app_settings.enable_keywords = GetBool(value); | ||||
|             } | ||||
|             else if (GetValue(line, "enable_firebase", out value)) | ||||
|             { | ||||
|                 settings.app_settings.enable_firebase = GetBool(value); | ||||
|  | @ -161,17 +153,9 @@ namespace Guru.Editor | |||
|             { | ||||
|                 settings.app_settings.enable_iap = GetBool(value); | ||||
|             } | ||||
|             else if (GetValue(line, "tch_020", out value)) | ||||
|             { | ||||
|                 settings.app_settings.tch_020 = GetDouble(value); | ||||
|             } | ||||
|             else if (GetValue(line, "using_uuid", out value)) | ||||
|             { | ||||
|                 settings.app_settings.using_uuid = GetBool(value); | ||||
|             } | ||||
|              | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// AdjustSettings 填充 | ||||
|         /// </summary> | ||||
|  | @ -183,7 +167,7 @@ namespace Guru.Editor | |||
|             string[] list = null; | ||||
|             string line = lines[index]; | ||||
|             bool pass = false; | ||||
|             List<string> events = new List<string>(20); | ||||
|             List<string> events = new List<string>(40); | ||||
|              | ||||
|             while (!lines[index].StartsWith(K_FB_SETTINGS)) | ||||
|             { | ||||
|  | @ -255,7 +239,8 @@ namespace Guru.Editor | |||
|             string[] pubmatic_ids_ios = new string[3]; | ||||
|             string[] moloco_ids_android = new string[3]; | ||||
|             string[] moloco_ids_ios = new string[3]; | ||||
|              | ||||
|             string[] tradplus_ids_android = new string[3]; | ||||
|             string[] tradplus_ids_ios = new string[3]; | ||||
|              | ||||
|              | ||||
|             //------- 开始记录广告配置; | ||||
|  | @ -350,6 +335,24 @@ namespace Guru.Editor | |||
|                     moloco_ids_android[2] = arr[0]; | ||||
|                     moloco_ids_ios[2] = arr[1]; | ||||
|                 } | ||||
|                 else if (line.StartsWith("tradplus_bads")) | ||||
|                 { | ||||
|                     arr = GetStringArray(line, 1, 2); | ||||
|                     tradplus_ids_android[0] = arr[0]; | ||||
|                     tradplus_ids_ios[0] = arr[1]; | ||||
|                 } | ||||
|                 else if (line.StartsWith("tradplus_iads")) | ||||
|                 { | ||||
|                     arr = GetStringArray(line, 1, 2); | ||||
|                     tradplus_ids_android[1] = arr[0]; | ||||
|                     tradplus_ids_ios[1] = arr[1]; | ||||
|                 } | ||||
|                 else if (line.StartsWith("tradplus_rads")) | ||||
|                 { | ||||
|                     arr = GetStringArray(line, 1, 2); | ||||
|                     tradplus_ids_android[2] = arr[0]; | ||||
|                     tradplus_ids_ios[2] = arr[1]; | ||||
|                 } | ||||
|                 index++; | ||||
|             } | ||||
|              | ||||
|  | @ -362,6 +365,8 @@ namespace Guru.Editor | |||
|             settings.ad_settings.pubmatic_ids_ios = pubmatic_ids_ios; | ||||
|             settings.ad_settings.moloco_ids_android = moloco_ids_android; | ||||
|             settings.ad_settings.moloco_ids_ios = moloco_ids_ios; | ||||
|             settings.ad_settings.tradplus_ids_android = tradplus_ids_android; | ||||
|             settings.ad_settings.tradplus_ids_ios = tradplus_ids_ios; | ||||
|              | ||||
|             index--; | ||||
|         } | ||||
|  |  | |||
|  | @ -240,6 +240,18 @@ namespace Guru.Editor | |||
|                         AddResultLine($"{MARK_INDENT}{mk_warn} Moloco iOS Test IDs is missing!", CheckStatus.Warning); | ||||
|                         _serviceNormalFail++; | ||||
|                     } | ||||
|                     if (!IsArrayNotEmpty(_servicesConfig.ad_settings.tradplus_ids_android)) | ||||
|                     { | ||||
|                         passed = false; | ||||
|                         AddResultLine($"{MARK_INDENT}{mk_warn} Tradplus Android Test IDs is missing!", CheckStatus.Warning); | ||||
|                         _serviceNormalFail++; | ||||
|                     } | ||||
|                     if (!IsArrayNotEmpty(_servicesConfig.ad_settings.tradplus_ids_ios)) | ||||
|                     { | ||||
|                         passed = false; | ||||
|                         AddResultLine($"{MARK_INDENT}{mk_warn} Tradplus iOS Test IDs is missing!", CheckStatus.Warning); | ||||
|                         _serviceNormalFail++; | ||||
|                     } | ||||
|                 } | ||||
|                 if (passed) AddResultLine(check_passed); | ||||
|                  | ||||
|  | @ -532,10 +544,10 @@ namespace Guru.Editor | |||
|                 p = n.serializedObject.FindProperty("IPMSetting.bundleId"); | ||||
|                 p.stringValue = _servicesConfig.app_settings.bundle_id; | ||||
|                 // tokenValidTime | ||||
|                 if (_servicesConfig.app_settings.token_vaild_time > 0) | ||||
|                 if (_servicesConfig.TokenValidTime() > 0) | ||||
|                 { | ||||
|                     p = n.serializedObject.FindProperty("IPMSetting.tokenValidTime"); | ||||
|                     p.intValue = _servicesConfig.app_settings.token_vaild_time; | ||||
|                     p.intValue = _servicesConfig.TokenValidTime(); | ||||
|                 } | ||||
|                 if (_servicesConfig.fb_settings != null) | ||||
|                 { | ||||
|  | @ -648,6 +660,33 @@ namespace Guru.Editor | |||
|                 } | ||||
|             } | ||||
|              | ||||
|             //---------- TRADPLUS ----------------------- | ||||
|             n = so.FindProperty("TradplusSetting"); | ||||
|             if (null != n) | ||||
|             { | ||||
|                 arr = _servicesConfig.ad_settings.tradplus_ids_android; | ||||
|                 if (IsArrayHasLength(arr, 3)) | ||||
|                 { | ||||
|                     p = n.serializedObject.FindProperty("TradplusSetting.Android.bannerUnitID"); | ||||
|                     p.stringValue = arr[0]; | ||||
|                     p = n.serializedObject.FindProperty("TradplusSetting.Android.interUnitID"); | ||||
|                     p.stringValue = arr[1]; | ||||
|                     p = n.serializedObject.FindProperty("TradplusSetting.Android.rewardUnitID"); | ||||
|                     p.stringValue = arr[2]; | ||||
|                 } | ||||
|                  | ||||
|                 arr = _servicesConfig.ad_settings.tradplus_ids_ios; | ||||
|                 if (IsArrayHasLength(arr, 3)) | ||||
|                 { | ||||
|                     p = n.serializedObject.FindProperty("TradplusSetting.iOS.bannerUnitID"); | ||||
|                     p.stringValue = arr[0]; | ||||
|                     p = n.serializedObject.FindProperty("TradplusSetting.iOS.interUnitID"); | ||||
|                     p.stringValue = arr[1]; | ||||
|                     p = n.serializedObject.FindProperty("TradplusSetting.iOS.rewardUnitID"); | ||||
|                     p.stringValue = arr[2]; | ||||
|                 } | ||||
|             } | ||||
| 
 | ||||
|             //----------- ADSettings ------------------- | ||||
|             n = so.FindProperty("ADSetting"); | ||||
|             if (null != n) | ||||
|  | @ -695,13 +734,13 @@ namespace Guru.Editor | |||
|             if (null != n) | ||||
|             { | ||||
|                 p = n.serializedObject.FindProperty("AnalyticsSetting.levelEndSuccessNum"); | ||||
|                 p.intValue = _servicesConfig.app_settings.level_end_success_num; | ||||
|                 p.intValue = _servicesConfig.LevelEndSuccessNum(); | ||||
|                 p = n.serializedObject.FindProperty("AnalyticsSetting.enalbeFirebaseAnalytics"); | ||||
|                 p.boolValue = _servicesConfig.app_settings.enable_firebase; | ||||
|                 p.boolValue = _servicesConfig.IsFirebaseEnabled(); | ||||
|                 p = n.serializedObject.FindProperty("AnalyticsSetting.enalbeFacebookAnalytics"); | ||||
|                 p.boolValue = _servicesConfig.app_settings.enable_facebook; | ||||
|                 p.boolValue = _servicesConfig.IsFacebookEnabled(); | ||||
|                 p = n.serializedObject.FindProperty("AnalyticsSetting.enalbeAdjustAnalytics"); | ||||
|                 p.boolValue = _servicesConfig.app_settings.enable_adjust; | ||||
|                 p.boolValue = _servicesConfig.IsAdjustEnabled(); | ||||
|                 p = n.serializedObject.FindProperty("AnalyticsSetting.adjustEventList"); | ||||
|                 if (null != p && IsArrayNotEmpty(_servicesConfig.adjust_settings.events)) | ||||
|                 { | ||||
|  |  | |||
|  | @ -9,6 +9,7 @@ namespace Guru | |||
|     { | ||||
|         public long version = 0; | ||||
|         public GuruAppSettings app_settings; | ||||
|         public GuruParameters parameters; | ||||
|         public GuruAdjustSettings adjust_settings; | ||||
|         public GuruFbSettings fb_settings; | ||||
|         public GuruAdSettings ad_settings; | ||||
|  | @ -33,11 +34,35 @@ namespace Guru | |||
|         public bool IsMolocoIOSEnabled() => ad_settings != null &&  | ||||
|                                                 ad_settings.moloco_ids_ios != null && | ||||
|                                                 ad_settings.moloco_ids_ios.Length > 0; | ||||
|         public bool IsTradplusAndroidEnabled() => ad_settings != null &&  | ||||
|                                             ad_settings.tradplus_ids_android != null && | ||||
|                                             ad_settings.tradplus_ids_android.Length > 0; | ||||
|         public bool IsTradplusIOSEnabled() => ad_settings != null &&  | ||||
|                                               ad_settings.tradplus_ids_ios != null && | ||||
|                                               ad_settings.tradplus_ids_ios.Length > 0; | ||||
|         public bool IsIAPEnabled() => app_settings != null && app_settings.enable_iap  | ||||
|                                                            && products != null && products.Length > 0; | ||||
|         public bool IsKeywordsEnabled() => app_settings != null && app_settings.enable_keywords;  | ||||
|          | ||||
|         public bool IsFirebaseEnabled() => app_settings?.enable_firebase ?? true; | ||||
|         public bool IsFacebookEnabled() => app_settings?.enable_facebook ?? true; | ||||
|         public bool IsAdjustEnabled() => app_settings?.enable_adjust ?? true; | ||||
|          | ||||
|         //-------------------------------- 配置检测 ------------------------------- | ||||
| 
 | ||||
|          | ||||
|          | ||||
|         //-------------------------------- Parameters -------------------------------- | ||||
|         public double Tch02Value() => parameters?.tch_020 ?? 0; | ||||
|         public bool IsAppReview() => parameters?.apple_review ?? false; | ||||
|         public bool DMACountryCheck() => parameters?.dma_country_check ?? false; | ||||
|         public string DMAMapRule() => parameters?.dma_map_rule ?? ""; | ||||
|         public bool UseUUID() => parameters?.using_uuid ?? false; | ||||
|         public bool KeywordsEnabled() => parameters?.enable_keywords ?? false;  | ||||
|         public int TokenValidTime() => parameters?.token_vaild_time ?? 604800; | ||||
|         public int LevelEndSuccessNum() => parameters?.level_end_success_num ?? 50; | ||||
|         //-------------------------------- Parameters -------------------------------- | ||||
|          | ||||
|          | ||||
|     } | ||||
|      | ||||
|     [Serializable]     | ||||
|  | @ -51,17 +76,25 @@ namespace Guru | |||
|         public string terms_url; | ||||
|         public string android_store; | ||||
|         public string ios_store; | ||||
|         public int token_vaild_time = 604800; | ||||
|         public int level_end_success_num = 50; | ||||
|         public bool enable_keywords = true; | ||||
|         public bool enable_firebase = true; | ||||
|         public bool enable_facebook = true; | ||||
|         public bool enable_adjust = true; | ||||
|         public bool enable_iap = false; | ||||
|         public double tch_020 = 0; | ||||
|         public bool using_uuid = false; | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     [Serializable] | ||||
|     public class GuruParameters | ||||
|     { | ||||
|         public int token_vaild_time = 604800; | ||||
|         public int level_end_success_num = 50; | ||||
|         public bool enable_keywords = false; | ||||
|         public double tch_020 = 0; | ||||
|         public bool using_uuid = true; | ||||
|         public string dma_map_rule = ""; | ||||
|         public bool dma_country_check = false; | ||||
|         public bool apple_review = false; // 苹果审核标志位 | ||||
|     } | ||||
| 
 | ||||
|     [Serializable] | ||||
|     public class GuruAdjustSettings | ||||
|     { | ||||
|  | @ -92,6 +125,8 @@ namespace Guru | |||
|         public string[] pubmatic_ids_ios; | ||||
|         public string[] moloco_ids_android; | ||||
|         public string[] moloco_ids_ios; | ||||
|         public string[] tradplus_ids_android; | ||||
|         public string[] tradplus_ids_ios; | ||||
|     } | ||||
|      | ||||
| } | ||||
|  | @ -53,16 +53,26 @@ namespace Guru | |||
| 
 | ||||
| 
 | ||||
|         #region Guru Consent | ||||
|          | ||||
| 
 | ||||
|         private bool _hasConsentCalled = false; | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// 启动Consent流程 | ||||
|         /// 因为之后规划广告流程会放在 Consent 初始化之后, 因此请求广告的时候会需要先请求 Consent | ||||
|         /// </summary> | ||||
|         private void StartConsentFlow() | ||||
|         { | ||||
|             LogI($"StartConsentFlow"); | ||||
|             GuruConsent.StartConsent(OnConsentOver); | ||||
|             if (_hasConsentCalled) return; | ||||
|             _hasConsentCalled = true; | ||||
| 
 | ||||
|             bool enableCountryCheck = _appServicesConfig.DMACountryCheck(); | ||||
|             string dmaMapRule = _appServicesConfig.DMAMapRule(); | ||||
|              | ||||
|             Debug.Log($"{Tag}  --- StartConsentFlow ---"); | ||||
|             GuruConsent.StartConsent(OnConsentOver, dmaMapRule:dmaMapRule, enableCountryCheck:enableCountryCheck); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         private void OnConsentOver(int code) | ||||
|         { | ||||
| #if UNITY_IOS | ||||
|  | @ -73,10 +83,10 @@ namespace Guru | |||
|             { | ||||
|                 case GuruConsent.StatusCode.OBTAINED: | ||||
|                 case GuruConsent.StatusCode.NOT_AVAILABLE: | ||||
|                     // 已获取授权, 或者地区不可用 | ||||
| #if UNITY_IOS | ||||
|                     CheckAttStatus(); | ||||
| #endif | ||||
|                     // 已获取授权, 或者地区不可用, ATT 尚未启动 | ||||
| // #if UNITY_IOS | ||||
| //                     CheckAttStatus();  // 删除主动触发的逻辑 | ||||
| // #endif | ||||
|                     break; | ||||
|             } | ||||
|              | ||||
|  |  | |||
|  | @ -144,12 +144,6 @@ namespace Guru | |||
|         private void OnFirebaseReady() | ||||
|         { | ||||
|             IsInitialSuccess = true; | ||||
|     | ||||
|             if (!InitConfig.UseCustomConsent) | ||||
|             { | ||||
|                 // LogI($"--- #3 Start Consent Flow ---"); | ||||
|                 StartConsentFlow(); | ||||
|             } | ||||
|              | ||||
|             if(!string.IsNullOrEmpty(IPMConfig.IPM_UID)) SetUID(IPMConfig.IPM_UID); | ||||
| 
 | ||||
|  | @ -198,12 +192,13 @@ namespace Guru | |||
|         { | ||||
|             bool useKeywords = false; | ||||
|             bool useIAP = true; | ||||
|             bool appleReview = false; | ||||
|              | ||||
|             var services = GetRemoteServicesConfig(); | ||||
|             if (services != null) | ||||
|             { | ||||
|                 _appServicesConfig = services; | ||||
|                 useKeywords = _appServicesConfig.IsKeywordsEnabled(); | ||||
|                 useKeywords = _appServicesConfig.KeywordsEnabled(); | ||||
|                 useIAP = _appServicesConfig.IsIAPEnabled(); | ||||
|                  | ||||
|            | ||||
|  | @ -219,18 +214,23 @@ namespace Guru | |||
|                  | ||||
|                 if (null != _appServicesConfig.app_settings) | ||||
|                 { | ||||
|                     if (_appServicesConfig.app_settings.tch_020 > 0) | ||||
|                     if (_appServicesConfig.Tch02Value() > 0) | ||||
|                     { | ||||
|                         Analytics.EnableTch02Event = true; | ||||
|                         Analytics.SetTch02TargetValue(_appServicesConfig.app_settings.tch_020); | ||||
|                         Analytics.SetTch02TargetValue(_appServicesConfig.Tch02Value()); | ||||
|                     } | ||||
|                       | ||||
|                     // 设置获取设备 UUID 的方法 | ||||
|                     if (_appServicesConfig.app_settings.using_uuid) | ||||
|                     if (_appServicesConfig.UseUUID()) | ||||
|                     { | ||||
|                         IPMConfig.UsingUUID = true; // 开始使用 UUID 作为 DeviceID 标识 | ||||
|                     } | ||||
| 
 | ||||
| #if UNITY_IOS | ||||
|                     // 苹果审核标志位 | ||||
|                     appleReview = _appServicesConfig.IsAppReview(); | ||||
| #endif | ||||
|                      | ||||
|                     if (null !=  GuruSettings) | ||||
|                     { | ||||
|                         // 更新和升级 GuruSettings 对应的值 | ||||
|  | @ -255,6 +255,19 @@ namespace Guru | |||
|             { | ||||
|                 KeywordsManager.Install(Model.IsIAPUser, Model.SuccessLevelCount); // 启动Keyword管理器 | ||||
|             } | ||||
| 
 | ||||
| #if UNITY_IOS | ||||
|             if (appleReview) | ||||
|             { | ||||
|                 StartAppleReviewFlow(); // 直接显示 ATT 弹窗, 跳过 Consent 流程 | ||||
|                 return; | ||||
|             } | ||||
| #endif | ||||
|             if (!InitConfig.UseCustomConsent && !appleReview) | ||||
|             { | ||||
|                 // LogI($"--- #3 Start Consent Flow ---"); | ||||
|                 StartConsentFlow(); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         private GuruServicesConfig GetRemoteServicesConfig() | ||||
|  | @ -266,8 +279,24 @@ namespace Guru | |||
|             } | ||||
|             return null; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|          | ||||
| 
 | ||||
|         #endregion | ||||
| 
 | ||||
|         #region Apple 审核流程逻辑 | ||||
| 
 | ||||
| #if UNITY_IOS | ||||
|         private void StartAppleReviewFlow() | ||||
|         { | ||||
|             CheckAttStatus(); | ||||
|         } | ||||
| #endif | ||||
|         #endregion | ||||
|          | ||||
|         #region 数据 | ||||
| 
 | ||||
|         private void OnBLevelChanged(int blevel) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue