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