diff --git a/Runtime/GuruAds/Common.meta b/Runtime/GuruAds/Common.meta deleted file mode 100644 index d6e7b7c..0000000 --- a/Runtime/GuruAds/Common.meta +++ /dev/null @@ -1,3 +0,0 @@ -fileFormatVersion: 2 -guid: 811ed48c0c0a487486c74abd56463199 -timeCreated: 1709268219 \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs b/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs index d632bde..c3f75bb 100644 --- a/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs +++ b/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs @@ -23,8 +23,6 @@ namespace Guru protected bool IsNetworkEnabled => Application.internetReachability != NetworkReachability.NotReachable; private bool _isServiceStarted; - protected bool _isDebugMode; - protected bool _isAutoLoadAds; private Action _onSdkInitReady; @@ -37,6 +35,7 @@ namespace Guru public static Action OnRewardFailed; private AdsModel _model; + private AdsInitSpec _initSpec = null; /// /// 启动广告服务 @@ -44,13 +43,12 @@ namespace Guru /// 广告初始化回调 /// 自动启动广告加载 /// debug模式 - public virtual void StartService(Action callback = null, bool autoLoadAds = true, bool isDebugMode = false) + public virtual void StartService(Action callback = null, AdsInitSpec initSpec = null) { if (IsInitialized) return; // 已经初始化后, 无需再次初始化 + _initSpec = initSpec; _isServiceStarted = true; - _isAutoLoadAds = autoLoadAds; - _isDebugMode = isDebugMode; _onSdkInitReady = callback; _model = AdsModel.Create(); this.Log("AD SDK Start Init"); @@ -82,7 +80,8 @@ namespace Guru MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent; //-------------- SDK 初始化 ------------------- - MaxSdk.SetVerboseLogging(_isDebugMode); + if (_initSpec == null) _initSpec = AdsInitSpec.BuildDefault(); + MaxSdk.SetVerboseLogging(_initSpec.isDebug); InitService(); } @@ -94,16 +93,16 @@ namespace Guru private void OnMaxSdkInitializedCallBack(MaxSdkBase.SdkConfiguration sdkConfiguration) { this.Log("AD SDK Init Success"); - if (_isAutoLoadAds) OnMaxSdkReady(); + if (_initSpec.autoLoad) OnMaxSdkReady(); _onSdkInitReady?.Invoke(); } protected virtual void OnMaxSdkReady() { - //TODO:各个项目根据自己情况进行修改,模版默认做法是SDK初始化完成后就进行广告请求 - RequestBannerAD(); - RequestInterstitialAD(); - RequestRewardedAD(); + //应用启动策略 + if(_initSpec.loadBanner) RequestBannerAD(); + if(_initSpec.loadInterstitial) RequestInterstitialAD(); + if(_initSpec.loadRewarded) RequestRewardedAD(); } /// @@ -115,6 +114,13 @@ namespace Guru return IsInitialized && IsNetworkEnabled; } + public bool IsBuyNoAds + { + get => _model.BuyNoAds; + set=> _model.BuyNoAds = value; + } + + #region ILRD private double TchAD001RevValue diff --git a/Runtime/GuruCore/Runtime/Ads/AdsInitSpec.cs b/Runtime/GuruCore/Runtime/Ads/AdsInitSpec.cs new file mode 100644 index 0000000..a038986 --- /dev/null +++ b/Runtime/GuruCore/Runtime/Ads/AdsInitSpec.cs @@ -0,0 +1,36 @@ +namespace Guru +{ + public class AdsInitSpec + { + public bool loadBanner; + public bool loadInterstitial; + public bool loadRewarded; + public bool autoLoad; + public bool isDebug; + + + public static AdsInitSpec Build(bool loadBanner = true, bool loadInterstitial = true, bool loadReward = true, + bool autoLoad = true, bool isDebug = false) + { + return new AdsInitSpec + { + loadBanner = loadBanner, + loadInterstitial = loadInterstitial, + loadRewarded = loadReward, + autoLoad = autoLoad, + isDebug = isDebug + }; + } + + public static AdsInitSpec BuildDefault(bool autoLoad = true, bool isDebug = false) + { + return Build(true, true, true, autoLoad, isDebug); + } + + public static AdsInitSpec BuildWithNoAds(bool autoLoad = true, bool isDebug = false) + { + return Build(false, false, true, autoLoad, isDebug); + } + + } +} \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/Ads/AdsInitSpec.cs.meta b/Runtime/GuruCore/Runtime/Ads/AdsInitSpec.cs.meta new file mode 100644 index 0000000..6ce30bc --- /dev/null +++ b/Runtime/GuruCore/Runtime/Ads/AdsInitSpec.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 90685f9b1c664c4d917d7260f62b73ff +timeCreated: 1710494122 \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/Ads/AdsModel.cs b/Runtime/GuruCore/Runtime/Ads/AdsModel.cs index 34e4b19..6bc4f52 100644 --- a/Runtime/GuruCore/Runtime/Ads/AdsModel.cs +++ b/Runtime/GuruCore/Runtime/Ads/AdsModel.cs @@ -12,6 +12,7 @@ namespace Guru public int radsRewardCount = 0; public double tchAd001Value = 0; public double tchAd02Value = 0; + public bool buyNoAds = false; public int RadsRewardCount @@ -44,6 +45,17 @@ namespace Guru } } + public bool BuyNoAds + { + get => buyNoAds; + set + { + buyNoAds = value; + Save(); + } + } + + private void Save() => _storage.Save(); public string ToJson() diff --git a/Runtime/GuruCore/Runtime/Ads/IADService.cs b/Runtime/GuruCore/Runtime/Ads/IADService.cs index 9a0d07d..6f06b30 100644 --- a/Runtime/GuruCore/Runtime/Ads/IADService.cs +++ b/Runtime/GuruCore/Runtime/Ads/IADService.cs @@ -7,7 +7,7 @@ namespace Guru #region Lifecycle - void StartService(Action onSdkReady = null, bool autoLoad = true, bool isDebugMode = false); + void StartService(Action onSdkReady = null, AdsInitSpec spec = null); #endregion