diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs
index c887112..308af49 100644
--- a/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs
+++ b/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs
@@ -53,7 +53,7 @@ namespace WZ
network.RefreshAdsData();
}
}
-
+#region 激励视频广告
public bool IsRewardAdReady()
{
return _adNetworks.Any(network => network.IsRewardedAvailable());
@@ -63,7 +63,7 @@ namespace WZ
/// 展示激励广告
///
///
- public void ShowRewardAd(string _adPos, Action _rewardCallback = null, Action _showFailedCallback = null)
+ public void ShowRewardAd(string _adPos, Action _rewardCallback = null, Action _showFailedCallback = null)
{
AdsActionEvents.TrackAdPosition(AdsType.Rewarded, _adPos);
if (!IsRewardAdReady())
@@ -100,7 +100,9 @@ namespace WZ
AdPlayCountManager.IncrementAdPlayCount(AdsType.Rewarded);
CheckAndRefreshExpiredBids(AdsType.Rewarded);
}
+#endregion
+#region 插屏广告
public bool IsInterstitialReady()
{
return _adNetworks.Any(network => network.IsInterstitialAvailable());
@@ -151,6 +153,51 @@ namespace WZ
// 刷新其他类型广告
CheckAndRefreshExpiredBids(AdsType.Interstitial);
}
+ #endregion
+
+ #region 横幅广告
+ public bool IsBannerAdReady()
+ {
+ return AdmobAdsManager.Instance.IsBannerAvailable();
+ }
+
+ public void ShowBanner()
+ {
+ AdsActionEvents.TrackAdPosition(AdsType.Interstitial, "");
+ if (IsBannerAdReady())
+ {
+ AdmobAdsManager.Instance.DisplayBanner();
+ AdPlayCountManager.IncrementAdPlayCount(AdsType.Banner);
+ }
+ }
+
+ public void HideBanner()
+ {
+ AdmobAdsManager.Instance.HideBanner();
+ }
+ #endregion
+
+
+ #region 原生广告
+ public bool IsNativeAdReady()
+ {
+ return AdmobAdsManager.Instance.IsNativeAvailable();
+ }
+
+ public void ShowNativeAd(NativeAdPosition position)
+ {
+ if (IsNativeAdReady())
+ {
+ AdmobAdsManager.Instance.DisplayNative(position);
+ AdPlayCountManager.IncrementAdPlayCount(AdsType.Native);
+ }
+ }
+
+ public void RemoveNativeAd()
+ {
+ AdmobAdsManager.Instance.RemoveNative();
+ }
+ #endregion
#region 开屏广告
public bool IsSplashAvailable()
@@ -197,7 +244,80 @@ namespace WZ
}
}
- // 检查并刷新过期竞价
+ ///
+ /// 广告看完回调
+ ///
+ public void OnRewardAdCallback(double price)
+ {
+ AdRewardCallback?.Invoke(price);
+ AdRewardCallback = null;
+ }
+
+ ///
+ /// 根据IvRules判断是否可以展示插屏
+ ///
+ ///
+ public bool IvRulesShow(IvType ivadType)
+ {
+ //1.获取远程配置
+ string json = FireBaseRemoteConfigManager.Instance.GetRemoteConfigString("IV_RULES");
+ if (string.IsNullOrEmpty(json))
+ {
+ return true;
+ }
+ //2.解析配置
+ var dates = JsonConvert.DeserializeObject(json);
+ if (dates == null && dates.Length == 0)
+ {
+ return true;
+ }
+ //3.获取IVADType对应的配置
+ IvRulesData ivRulesData = null;
+ foreach (var data in dates)
+ {
+ if (data.type == (int)ivadType)
+ {
+ ivRulesData = data;
+ }
+ }
+ if (ivRulesData == null)
+ {
+ return true;
+ }
+ //4.判断skip(次安装跳过几次触发不展示广告)
+ int skipLevel = ivRulesData.skipLevel;
+ int currentSkipLevel = PlayerPrefsUtils.GetPlayerPrefsInt(IvRulesKey.KEY_SKIPLEVEL, 0);
+ if (currentSkipLevel < skipLevel)
+ {
+ LoggerUtils.Debug($"[SDK] skipLevel limit");
+ PlayerPrefsUtils.SavePlayerPrefsInt(IvRulesKey.KEY_SKIPLEVEL, currentSkipLevel + 1);
+ return false;
+ }
+ //5.判断overLevel(没跳过几次触发)
+ int overLevel = ivRulesData.overLevel;
+ int currentOverLevel = IvRulesConst.CurrentOverLevel;
+ if (currentOverLevel < overLevel)
+ {
+ LoggerUtils.Debug($"[SDK] overLevel limit");
+ IvRulesConst.CurrentOverLevel++;
+ return false;
+ }
+
+ //6.判断interval(广告时间间隔)
+ int interval = ivRulesData.interval;
+ long currentInterval = IvRulesConst.CurrentInterval;
+ long localTimestamp = TimeUtils.GetLocalTimestamp();
+
+ if (localTimestamp < currentInterval + (interval * 1000L))
+ {
+ LoggerUtils.Debug($"[SDK] interval limit");
+ return false;
+ }
+
+ return true;
+ }
+
+ #region 检查并刷新过期竞价
private void CheckAndRefreshExpiredBids(AdsType _adsType)
{
Dictionary> expiredBids = BidPlatformManager.Instance.GetExpiredBids();
@@ -327,78 +447,6 @@ namespace WZ
break;
}
}
-
- ///
- /// 广告看完回调
- ///
- public void OnRewardAdCallback(double price)
- {
- AdRewardCallback?.Invoke(price);
- AdRewardCallback = null;
- }
-
- ///
- /// 根据IvRules判断是否可以展示插屏
- ///
- ///
- public bool IvRulesShow(IvType ivadType)
- {
- //1.获取远程配置
- string json = FireBaseRemoteConfigManager.Instance.GetRemoteConfigString("IV_RULES");
- if (string.IsNullOrEmpty(json))
- {
- return true;
- }
- //2.解析配置
- var dates = JsonConvert.DeserializeObject(json);
- if (dates == null && dates.Length == 0)
- {
- return true;
- }
- //3.获取IVADType对应的配置
- IvRulesData ivRulesData = null;
- foreach (var data in dates)
- {
- if (data.type == (int)ivadType)
- {
- ivRulesData = data;
- }
- }
- if (ivRulesData == null)
- {
- return true;
- }
- //4.判断skip(次安装跳过几次触发不展示广告)
- int skipLevel = ivRulesData.skipLevel;
- int currentSkipLevel = PlayerPrefsUtils.GetPlayerPrefsInt(IvRulesKey.KEY_SKIPLEVEL, 0);
- if (currentSkipLevel < skipLevel)
- {
- LoggerUtils.Debug($"[SDK] skipLevel limit");
- PlayerPrefsUtils.SavePlayerPrefsInt(IvRulesKey.KEY_SKIPLEVEL, currentSkipLevel + 1);
- return false;
- }
- //5.判断overLevel(没跳过几次触发)
- int overLevel = ivRulesData.overLevel;
- int currentOverLevel = IvRulesConst.CurrentOverLevel;
- if (currentOverLevel < overLevel)
- {
- LoggerUtils.Debug($"[SDK] overLevel limit");
- IvRulesConst.CurrentOverLevel++;
- return false;
- }
-
- //6.判断interval(广告时间间隔)
- int interval = ivRulesData.interval;
- long currentInterval = IvRulesConst.CurrentInterval;
- long localTimestamp = TimeUtils.GetLocalTimestamp();
-
- if (localTimestamp < currentInterval + (interval * 1000L))
- {
- LoggerUtils.Debug($"[SDK] interval limit");
- return false;
- }
-
- return true;
- }
+#endregion
}
}
\ No newline at end of file