From 62bf31437f3c212fc0d8bb747f9cbe0633950a4f Mon Sep 17 00:00:00 2001 From: huyufei Date: Mon, 15 Apr 2024 13:31:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20RADS=20=E5=B9=BF?= =?UTF-8?q?=E5=91=8A=E5=8A=A0=E8=BD=BD=E6=97=B6=E9=95=BF=E4=B8=8D=E5=87=86?= =?UTF-8?q?=E7=A1=AE=E7=9A=84=20BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Runtime/GuruCore/Runtime/Ads/ADService.cs | 3 ++- Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs | 25 ++++++++++++++----- .../Runtime/Ads/Channels/Max/AdChanelMax.cs | 8 +++--- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/Runtime/GuruCore/Runtime/Ads/ADService.cs b/Runtime/GuruCore/Runtime/Ads/ADService.cs index 7a754a2..c5c2756 100644 --- a/Runtime/GuruCore/Runtime/Ads/ADService.cs +++ b/Runtime/GuruCore/Runtime/Ads/ADService.cs @@ -164,11 +164,12 @@ namespace Guru /// private void OnChannelLoadRewardAD() { + // 各 Channel 都去加载激励视频 foreach (var channel in _adChannels) { channel?.LoadRewardAD(); } - // if (_asyncLoader == null) + // 最后 Max 渠道进行加载 OnLoadMaxRV(); } diff --git a/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs b/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs index 0468424..84a248f 100644 --- a/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs +++ b/Runtime/GuruCore/Runtime/Ads/ADServiceBase.cs @@ -227,7 +227,7 @@ namespace Guru private int GetAdsLoadDuration(ref float startTime) { int duration = (int)((Time.realtimeSinceStartup - startTime) * 1000); - startTime = 0; + startTime = Time.realtimeSinceStartup; return duration; } @@ -264,7 +264,16 @@ namespace Guru _badsloadStartTime = Time.realtimeSinceStartup; } + protected virtual void OnBadsLoaded() + { + _badsloadStartTime = Time.realtimeSinceStartup; + OnBannerLoaded?.Invoke(); + } + /// + /// 显示 Banner + /// + /// public virtual void ShowBanner(string category = "") { _badsCategory = category; @@ -272,13 +281,19 @@ namespace Guru MaxSdk.ShowBanner(adUnitId); MaxSdk.SetBannerBackgroundColor(adUnitId, _backColor); OnBannerImpEvent(adUnitId); + MaxSdk.StartBannerAutoRefresh(adUnitId); _bannerVisible = true; } + /// + /// 隐藏 Banner + /// public virtual void HideBanner() { MaxSdk.HideBanner(GetBannerID()); + MaxSdk.StopBannerAutoRefresh(GetBannerID()); _bannerVisible = false; + } /// @@ -295,8 +310,7 @@ namespace Guru // Analytics.ADBadsLoaded(adUnitId, GetAdsLoadDuration(ref _badsloadStartTime), _badsCategory); Analytics.ADBadsLoaded(AdParams.Build(adUnitId, adInfo, duration: GetAdsLoadDuration(ref _badsloadStartTime), category: _badsCategory)); - - OnBannerLoaded?.Invoke(); + OnBadsLoaded(); } private void OnBannerFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo) @@ -331,8 +345,7 @@ namespace Guru { OnAdRevenuePaidEvent(adUnitId, adInfo); // Banner 只有显示时才上报收益值 } - } - + } #endregion @@ -561,7 +574,7 @@ namespace Guru // this.Log("OnRewardedAdLoadedEvent"); // Analytics.ADRadsLoaded(adUnitId, GetAdsLoadDuration(ref _radsLoadStartTime), _rewardCategory); Analytics.ADRadsLoaded(AdParams.Build(adUnitId, - duration: GetAdsLoadDuration(ref _iadsLoadStartTime), category: _iadsCategory)); + duration: GetAdsLoadDuration(ref _radsLoadStartTime), category: _iadsCategory)); _rewardRetryAttempt = 0; OnRewardLoaded?.Invoke(); diff --git a/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs b/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs index 45c2ca6..902bdb6 100644 --- a/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs +++ b/Runtime/GuruCore/Runtime/Ads/Channels/Max/AdChanelMax.cs @@ -2,6 +2,7 @@ namespace Guru { using UnityEngine; + using System; /// /// MAX 自有渠道初始化 @@ -15,15 +16,14 @@ namespace Guru public bool IsEnabled => true; public Color BannerBackColor { get; set; } - #endregion #region 广告位 // ---------------- Max 广告位ID -------------------- - private string MaxBannerSlotID => GuruSettings.Instance.ADSetting.GetBannerID(); - private string MaxIVSlotID => GuruSettings.Instance.ADSetting.GetInterstitialID(); - private string MaxRVSlotID => GuruSettings.Instance.ADSetting.GetRewardedVideoID(); + internal string MaxBannerSlotID => GuruSettings.Instance.ADSetting.GetBannerID(); + internal string MaxIVSlotID => GuruSettings.Instance.ADSetting.GetInterstitialID(); + internal string MaxRVSlotID => GuruSettings.Instance.ADSetting.GetRewardedVideoID(); #endregion