广告展示逻辑
This commit is contained in:
parent
663a5747a4
commit
de76a6faf3
|
|
@ -10,7 +10,6 @@ namespace WZ
|
|||
{
|
||||
public class AdsSDKManager : D_MonoSingleton<AdsSDKManager>
|
||||
{
|
||||
private List<IAdService> _adNetworks = new List<IAdService>();
|
||||
// 是否有激励视频或者插屏广告在展示
|
||||
public bool otherAdsOnShow = false;
|
||||
public void InitSDK()
|
||||
|
|
@ -20,77 +19,99 @@ namespace WZ
|
|||
|
||||
|
||||
#region 激励视频广告
|
||||
public bool IsRewardAdReady()
|
||||
public bool IsRewardAdReady(PlatformType _platformType)
|
||||
{
|
||||
return _adNetworks.Any(network => network.IsRewardedAvailable());
|
||||
if(_platformType == PlatformType.Admob)
|
||||
{
|
||||
return AdmobAdsManager.Instance.IsRewardedAvailable();
|
||||
}
|
||||
return TpnAdsManager.Instance.IsRewardedAvailable();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 展示激励广告
|
||||
/// </summary>
|
||||
/// <param name="callback"></param>
|
||||
public void ShowRewardAd(string _adPos, Action<bool, double> _rewardCallback = null, Action _showFailedCallback = null)
|
||||
public void ShowRewardAd(string _adPos, Action<bool, double> _rewardCallback, Action _showFailedCallback,PlatformType _platformType)
|
||||
{
|
||||
LoggerUtils.Debug("ShowRewardAd _adPos:"+_adPos+" ready:"+IsRewardAdReady());
|
||||
LoggerUtils.Debug("ShowRewardAd _adPos:"+_adPos+" ready:"+IsRewardAdReady(_platformType));
|
||||
otherAdsOnShow = true;
|
||||
/// yangwu todo
|
||||
{
|
||||
_showFailedCallback?.Invoke();
|
||||
}
|
||||
AdPlayCountManager.IncrementAdsActionCount(AdsType.Rewarded,AdPlayCountManager.PLAY_COUNT_SUFFIX);
|
||||
AdjustTrackEvent.Instance.TrackEventName("RV_Show", new Dictionary<string, object>());
|
||||
|
||||
if(_platformType == PlatformType.Admob)
|
||||
{
|
||||
AdmobAdsManager.Instance.DisplayRewarded(_adPos,_rewardCallback,_showFailedCallback);
|
||||
}
|
||||
else
|
||||
{
|
||||
TpnAdsManager.Instance.DisplayRewarded(_adPos,_rewardCallback,_showFailedCallback);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 插屏广告
|
||||
public bool IsInterstitialReady()
|
||||
public bool IsInterstitialReady(PlatformType _platformType)
|
||||
{
|
||||
return _adNetworks.Any(network => network.IsInterstitialAvailable());
|
||||
if(_platformType == PlatformType.Admob)
|
||||
{
|
||||
return AdmobAdsManager.Instance.IsInterstitialAvailable();
|
||||
}
|
||||
return TpnAdsManager.Instance.IsInterstitialAvailable();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 展示激励广告
|
||||
/// </summary>
|
||||
/// <param name="callback"></param>
|
||||
public void ShowInterstitialAd(string _adPos, IvType _IvType = IvType.IV1, Action<double> _closeCallback = null)
|
||||
public void ShowInterstitialAd(string _adPos, IvType _IvType, Action<double> _closeCallback,PlatformType _platformType)
|
||||
{
|
||||
AdsSDKManager.Instance.otherAdsOnShow = true;
|
||||
// yangwu todo
|
||||
{
|
||||
_closeCallback?.Invoke(0);
|
||||
}
|
||||
|
||||
AdPlayCountManager.IncrementAdsActionCount(AdsType.Interstitial,AdPlayCountManager.PLAY_COUNT_SUFFIX);
|
||||
AdjustTrackEvent.Instance.TrackEventName("IV_Show", new Dictionary<string, object>());
|
||||
// 刷新其他类型广告
|
||||
|
||||
if(_platformType == PlatformType.Admob)
|
||||
{
|
||||
AdmobAdsManager.Instance.DisplayInterstitial(_adPos, _IvType, _closeCallback);
|
||||
}
|
||||
else
|
||||
{
|
||||
TpnAdsManager.Instance.DisplayInterstitial(_adPos, _IvType, _closeCallback);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 横幅广告
|
||||
public bool IsBannerAdReady(BannerType bannerType)
|
||||
public bool IsBannerAdReady(BannerType bannerType,PlatformType platformType)
|
||||
{
|
||||
return AdmobAdsManager.Instance.IsBannerAvailable(bannerType);
|
||||
if(platformType == PlatformType.Admob)
|
||||
{
|
||||
return AdmobAdsManager.Instance.IsBannerAvailable(bannerType);
|
||||
}else
|
||||
{
|
||||
return TpnAdsManager.Instance.IsBannerAvailable();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void ShowBanner(BannerType bannerType,BannerAlignType bannerAlignType)
|
||||
public void ShowBanner(BannerType bannerType,BannerAlignType bannerAlignType,PlatformType platformType)
|
||||
{
|
||||
|
||||
AdmobAdsManager.Instance.DisplayBanner(bannerType,bannerAlignType);
|
||||
|
||||
AdPlayCountManager.IncrementAdsActionCount(AdsType.Banner,AdPlayCountManager.PLAY_COUNT_SUFFIX);
|
||||
AdjustTrackEvent.Instance.TrackEventName("Banner_Show", new Dictionary<string, object>());
|
||||
if (platformType == PlatformType.Admob)
|
||||
{
|
||||
AdmobAdsManager.Instance.DisplayBanner(bannerType,bannerAlignType);
|
||||
}else
|
||||
{
|
||||
TpnAdsManager.Instance.ShowBanner();
|
||||
}
|
||||
}
|
||||
|
||||
public void HideBanner(BannerType bannerType)
|
||||
{
|
||||
AdmobAdsManager.Instance.HideBanner(bannerType);
|
||||
TpnAdsManager.Instance.HideBanner();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
|
@ -103,7 +124,6 @@ namespace WZ
|
|||
|
||||
public void ShowNativeAd(string _adPos, string adUnitId, NativeAdPosition position)
|
||||
{
|
||||
|
||||
AdmobAdsManager.Instance.DisplayNative(_adPos, adUnitId, position);
|
||||
AdjustTrackEvent.Instance.TrackEventName("NA_Show", new Dictionary<string, object>());
|
||||
AdPlayCountManager.IncrementAdsActionCount(AdsType.Native,AdPlayCountManager.PLAY_COUNT_SUFFIX);
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ namespace WZ
|
|||
|
||||
public bool IsRewardedAvailable()
|
||||
{
|
||||
if(!_initialized && AdmobAdsManager.Instance._initialized) Initialize();
|
||||
return string.IsNullOrEmpty(_topon_rewarded_units) ? false : ATRewardedAutoVideo.Instance.autoLoadRewardedVideoReadyForPlacementID(_topon_rewarded_units);
|
||||
}
|
||||
|
||||
|
|
@ -117,6 +118,7 @@ namespace WZ
|
|||
|
||||
public bool IsInterstitialAvailable()
|
||||
{
|
||||
if(!_initialized && AdmobAdsManager.Instance._initialized) Initialize();
|
||||
return string.IsNullOrEmpty(_topon_interstitial_units) ? false : ATInterstitialAutoAd.Instance.autoLoadInterstitialAdReadyForPlacementID(_topon_interstitial_units);
|
||||
}
|
||||
#endregion
|
||||
|
|
@ -143,6 +145,7 @@ namespace WZ
|
|||
|
||||
public bool IsBannerAvailable()
|
||||
{
|
||||
if(!_initialized && AdmobAdsManager.Instance._initialized) Initialize();
|
||||
return string.IsNullOrEmpty(_topon_banner_units) ? false : bannerReady;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
|
|||
|
||||
public static string GetSDKVersion()
|
||||
{
|
||||
return "1.0.5.2";
|
||||
return "1.0.0";
|
||||
}
|
||||
protected override void Initialized()
|
||||
{
|
||||
|
|
@ -36,10 +36,8 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
|
|||
AdsSplashManager.Instance.SetSplashAdCloseCallback(action);
|
||||
FireBaseSDKManager.Instance.Init();
|
||||
ShuShuMangage.Instance.Init();
|
||||
AdmobAdsManager.Instance.RefreshAdsData();
|
||||
AdmobAdsManager.Instance.Initialize();
|
||||
AdjustManager.Instance.Init();
|
||||
AdsSDKManager.Instance.InitSDK();
|
||||
|
||||
#if UNITY_PURCHASE
|
||||
IAPPurchaseManager.Instance.Initialize();
|
||||
#endif
|
||||
|
|
@ -191,14 +189,6 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
|
|||
|
||||
#region ad
|
||||
|
||||
/// <summary>
|
||||
/// 是否已缓存激励广告
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public bool IsRewardedAdReady()
|
||||
{
|
||||
return AdsSDKManager.Instance.IsRewardAdReady(); ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 展示激励广告
|
||||
|
|
@ -208,7 +198,11 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
|
|||
public void ShowRewardAd(string position, Action<bool, double> callback = null)
|
||||
{
|
||||
AdsActionEvents.TrackAdPosition(AdsType.Rewarded, position);
|
||||
bool isRewardAdReady = AdsSDKManager.Instance.IsRewardAdReady();
|
||||
|
||||
var _platform = TransferAndroidClass.IsVpnConnected() ? PlatformType.Admob : PlatformType.Topon;
|
||||
|
||||
bool isRewardAdReady = AdsSDKManager.Instance.IsRewardAdReady(_platform);
|
||||
|
||||
if (isRewardAdReady)
|
||||
{
|
||||
AdsSDKManager.Instance.ShowRewardAd(position, (isReward, revenue) =>
|
||||
|
|
@ -223,7 +217,10 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
|
|||
{
|
||||
callback?.Invoke(false, 0);
|
||||
}
|
||||
});
|
||||
}, () =>
|
||||
{
|
||||
callback?.Invoke(false, 0);
|
||||
},_platform);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -232,42 +229,23 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 是否已缓存插屏
|
||||
/// </summary>
|
||||
public bool IsInterstitialAdReady()
|
||||
{
|
||||
return AdsSDKManager.Instance.IsInterstitialReady();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 是否能展示插屏
|
||||
/// </summary>
|
||||
/// <param name="ivType"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanShowInterstitialAd(IvType ivType)
|
||||
{
|
||||
return AdsSDKManager.Instance.IvRulesShow(ivType, false);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 展示插屏广告
|
||||
/// </summary>
|
||||
/// <param name="position"></param>
|
||||
/// <param name="ivadType"></param>
|
||||
/// <param name="callback"></param>
|
||||
public void ShowInterstitial(string position, IvType ivadType = IvType.IV1, Action<double> callback = null, bool ivRules = true)
|
||||
public void ShowInterstitial(string position, IvType ivadType = IvType.IV1, Action<double> callback = null)
|
||||
{
|
||||
AdsActionEvents.TrackAdPosition(AdsType.Interstitial, position);
|
||||
//插屏展示逻辑
|
||||
bool ivRulesShow = AdsSDKManager.Instance.IvRulesShow(ivadType);
|
||||
if (!ivRules)
|
||||
var _platform = TransferAndroidClass.IsVpnConnected() ? PlatformType.Admob : PlatformType.Topon;
|
||||
|
||||
if (ivRulesShow)
|
||||
{
|
||||
//激励竞价不能被规则限制
|
||||
//是否有缓存
|
||||
bool isInterstitialReady = AdsSDKManager.Instance.IsInterstitialReady();
|
||||
bool isInterstitialReady = AdsSDKManager.Instance.IsInterstitialReady(_platform);
|
||||
if (isInterstitialReady)
|
||||
{
|
||||
AdsSDKManager.Instance.ShowInterstitialAd(position, ivadType, (revenue) =>
|
||||
|
|
@ -277,28 +255,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
|
|||
IvRulesConst.Intervals[ivadType.ToString()] = TimeUtils.GetLocalTimestamp();
|
||||
AdsSplashManager.Instance.backgroundTime = Time.realtimeSinceStartup;
|
||||
callback?.Invoke(revenue);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
AdsActionEvents.TrackAdFailToShow(AdsType.Interstitial, position, AdsShowFailType.NoFill);
|
||||
callback?.Invoke(-1);
|
||||
}
|
||||
}
|
||||
else if (ivRulesShow && ivRules)
|
||||
{
|
||||
//是否有缓存
|
||||
bool isInterstitialReady = AdsSDKManager.Instance.IsInterstitialReady();
|
||||
if (isInterstitialReady)
|
||||
{
|
||||
AdsSDKManager.Instance.ShowInterstitialAd(position, ivadType, (revenue) =>
|
||||
{
|
||||
//展示完一个插屏之后调用
|
||||
IvRulesConst.OverLevels[ivadType.ToString()] = 1;
|
||||
IvRulesConst.Intervals[ivadType.ToString()] = TimeUtils.GetLocalTimestamp();
|
||||
AdsSplashManager.Instance.backgroundTime = Time.realtimeSinceStartup;
|
||||
callback?.Invoke(revenue);
|
||||
});
|
||||
},_platform);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -322,9 +279,10 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
|
|||
{
|
||||
AdsActionEvents.TrackAdPosition(AdsType.Banner, "");
|
||||
|
||||
if (AdsSDKManager.Instance.IsBannerAdReady(bannerType))
|
||||
var _platform = TransferAndroidClass.IsVpnConnected() ? PlatformType.Admob : PlatformType.Topon;
|
||||
if (AdsSDKManager.Instance.IsBannerAdReady(bannerType,_platform))
|
||||
{
|
||||
AdsSDKManager.Instance.ShowBanner(bannerType, bannerAlignType);
|
||||
AdsSDKManager.Instance.ShowBanner(bannerType, bannerAlignType, _platform);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -36,11 +36,6 @@ namespace WZ
|
|||
RetryingAdMobCheck
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void OnAdjustCallbackReceived()
|
||||
{
|
||||
Debug.Log("收到Adjust回调,开始处理广告初始化");
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ public class Test : MonoBehaviour
|
|||
|
||||
public void OnInterShow()
|
||||
{
|
||||
AdsSDKManager.Instance.ShowInterstitialAd("endgame", IvType.IV1, (revenue) => { LoggerUtils.Debug("oninter show call revenue:" + revenue); });
|
||||
}
|
||||
|
||||
public void ToponDebug()
|
||||
|
|
|
|||
Loading…
Reference in New Issue