update: 添加广告启动配置, 添加 IAP 的购买广告的标志位

deeplink
胡宇飞 2024-03-15 17:20:24 +08:00
parent a7d3a5147a
commit c9301aa45e
7 changed files with 94 additions and 24 deletions

View File

@ -23,8 +23,6 @@ namespace Guru
protected bool IsNetworkEnabled => Application.internetReachability != NetworkReachability.NotReachable; protected bool IsNetworkEnabled => Application.internetReachability != NetworkReachability.NotReachable;
private bool _isServiceStarted; private bool _isServiceStarted;
protected bool _isDebugMode;
protected bool _isAutoLoadAds;
private Action _onSdkInitReady; private Action _onSdkInitReady;
@ -37,6 +35,7 @@ namespace Guru
public static Action OnRewardFailed; public static Action OnRewardFailed;
private AdsModel _model; private AdsModel _model;
private AdsInitSpec _initSpec = null;
/// <summary> /// <summary>
/// 启动广告服务 /// 启动广告服务
@ -44,13 +43,12 @@ namespace Guru
/// <param name="callback">广告初始化回调</param> /// <param name="callback">广告初始化回调</param>
/// <param name="autoLoadAds">自动启动广告加载</param> /// <param name="autoLoadAds">自动启动广告加载</param>
/// <param name="isDebugMode">debug模式</param> /// <param name="isDebugMode">debug模式</param>
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; // 已经初始化后, 无需再次初始化 if (IsInitialized) return; // 已经初始化后, 无需再次初始化
_initSpec = initSpec;
_isServiceStarted = true; _isServiceStarted = true;
_isAutoLoadAds = autoLoadAds;
_isDebugMode = isDebugMode;
_onSdkInitReady = callback; _onSdkInitReady = callback;
_model = AdsModel.Create(); _model = AdsModel.Create();
this.Log("AD SDK Start Init"); this.Log("AD SDK Start Init");
@ -82,7 +80,8 @@ namespace Guru
MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent; MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent;
//-------------- SDK 初始化 ------------------- //-------------- SDK 初始化 -------------------
MaxSdk.SetVerboseLogging(_isDebugMode); if (_initSpec == null) _initSpec = AdsInitSpec.BuildDefault();
MaxSdk.SetVerboseLogging(_initSpec.isDebug);
InitService(); InitService();
} }
@ -94,16 +93,16 @@ namespace Guru
private void OnMaxSdkInitializedCallBack(MaxSdkBase.SdkConfiguration sdkConfiguration) private void OnMaxSdkInitializedCallBack(MaxSdkBase.SdkConfiguration sdkConfiguration)
{ {
this.Log("AD SDK Init Success"); this.Log("AD SDK Init Success");
if (_isAutoLoadAds) OnMaxSdkReady(); if (_initSpec.autoLoad) OnMaxSdkReady();
_onSdkInitReady?.Invoke(); _onSdkInitReady?.Invoke();
} }
protected virtual void OnMaxSdkReady() protected virtual void OnMaxSdkReady()
{ {
//TODO:各个项目根据自己情况进行修改模版默认做法是SDK初始化完成后就进行广告请求 //应用启动策略
RequestBannerAD(); if(_initSpec.loadBanner) RequestBannerAD();
RequestInterstitialAD(); if(_initSpec.loadInterstitial) RequestInterstitialAD();
RequestRewardedAD(); if(_initSpec.loadRewarded) RequestRewardedAD();
} }
/// <summary> /// <summary>
@ -115,6 +114,13 @@ namespace Guru
return IsInitialized && IsNetworkEnabled; return IsInitialized && IsNetworkEnabled;
} }
public bool IsBuyNoAds
{
get => _model.BuyNoAds;
set=> _model.BuyNoAds = value;
}
#region ILRD #region ILRD
private double TchAD001RevValue private double TchAD001RevValue

View File

@ -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);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 90685f9b1c664c4d917d7260f62b73ff
timeCreated: 1710494122

View File

@ -12,6 +12,7 @@ namespace Guru
public int radsRewardCount = 0; public int radsRewardCount = 0;
public double tchAd001Value = 0; public double tchAd001Value = 0;
public double tchAd02Value = 0; public double tchAd02Value = 0;
public bool buyNoAds = false;
public int RadsRewardCount public int RadsRewardCount
@ -44,6 +45,17 @@ namespace Guru
} }
} }
public bool BuyNoAds
{
get => buyNoAds;
set
{
buyNoAds = value;
Save();
}
}
private void Save() => _storage.Save(); private void Save() => _storage.Save();
public string ToJson() public string ToJson()

View File

@ -7,7 +7,7 @@ namespace Guru
#region Lifecycle #region Lifecycle
void StartService(Action onSdkReady = null, bool autoLoad = true, bool isDebugMode = false); void StartService(Action onSdkReady = null, AdsInitSpec spec = null);
#endregion #endregion

View File

@ -181,7 +181,7 @@ namespace Guru
var o = appleOrders[i]; var o = appleOrders[i];
if (o.Equals(order)) if (o.Equals(order))
{ {
googleOrders.RemoveAt(i); appleOrders.RemoveAt(i);
Save(); Save();
return true; return true;
} }

View File

@ -915,7 +915,7 @@ namespace Guru
/// <summary> /// <summary>
/// 上报下一个 Google 订单 /// 上报下一个订单数据
/// </summary> /// </summary>
private void OnSendNextOrder() private void OnSendNextOrder()
{ {
@ -923,19 +923,34 @@ namespace Guru
{ {
isOrderSending = true; isOrderSending = true;
var request = _orderRequests.Dequeue(); var request = _orderRequests.Dequeue();
GoogleOrderRequest go = request as GoogleOrderRequest;
AppleOrderRequest ao = request as AppleOrderRequest; if (request == null)
if (go != null && _model.IsTokenExists(go.token))
{ {
OnSendNextOrder(); OnSendNextOrder();
return; return;
} }
if( ao != null && _model.IsReceiptExist(ao.receipt)) GoogleOrderRequest go = request as GoogleOrderRequest;
AppleOrderRequest ao = request as AppleOrderRequest;
if (go != null)
{ {
OnSendNextOrder(); if (_model.IsTokenExists(go.token))
return; {
OnSendNextOrder();
return;
}
_model.AddGoogleOrder(go.orderData); // 尝试缓存 order
}
if( ao != null)
{
if (_model.IsReceiptExist(ao.receipt))
{
OnSendNextOrder();
return;
}
_model.AddAppleOrder(ao.orderData); // 尝试缓存 order
} }
request.SetTimeOut(OrderRequestTimeout) request.SetTimeOut(OrderRequestTimeout)
@ -959,12 +974,10 @@ namespace Guru
{ {
if (go != null) if (go != null)
{ {
_model.AddGoogleOrder(go.orderData);
ReportGoogleOrderLost(go.orderData); ReportGoogleOrderLost(go.orderData);
} }
else if (ao != null) else if (ao != null)
{ {
_model.AddAppleOrder(ao.orderData);
ReportAppleOrderLost(ao.orderData); ReportAppleOrderLost(ao.orderData);
} }