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,16 +153,8 @@ 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 填充
|
||||
|
|
@ -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,15 +76,23 @@ 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;
|
||||
}
|
||||
|
||||
[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 = false;
|
||||
public bool using_uuid = true;
|
||||
public string dma_map_rule = "";
|
||||
public bool dma_country_check = false;
|
||||
public bool apple_review = false; // 苹果审核标志位
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -54,15 +54,25 @@ 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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -145,12 +145,6 @@ namespace Guru
|
|||
{
|
||||
IsInitialSuccess = true;
|
||||
|
||||
if (!InitConfig.UseCustomConsent)
|
||||
{
|
||||
// LogI($"--- #3 Start Consent Flow ---");
|
||||
StartConsentFlow();
|
||||
}
|
||||
|
||||
if(!string.IsNullOrEmpty(IPMConfig.IPM_UID)) SetUID(IPMConfig.IPM_UID);
|
||||
|
||||
// 开始Remote Manager初始化
|
||||
|
|
@ -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,6 +279,22 @@ namespace Guru
|
|||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Apple 审核流程逻辑
|
||||
|
||||
#if UNITY_IOS
|
||||
private void StartAppleReviewFlow()
|
||||
{
|
||||
CheckAttStatus();
|
||||
}
|
||||
#endif
|
||||
#endregion
|
||||
|
||||
#region 数据
|
||||
|
|
|
|||
Loading…
Reference in New Issue