Compare commits

...

2 Commits

Author SHA1 Message Date
luojian 567c688b80 刷新隐藏显示中的native 2025-09-17 18:42:58 +08:00
luojian 84eeb3c191 修复定时刷新没有隐藏的问题 2025-09-17 18:30:03 +08:00
1 changed files with 30 additions and 6 deletions

View File

@ -64,11 +64,15 @@ namespace WZ
LoggerUtils.Debug($"[Admob] Native Ad unit {adUnitId} load end, timingRefresh {timingRefresh}. {ad} error {error}");
if (error != null || ad == null)
{
if (!_retryCounters.TryAdd(adUnitId, 0))
if (!timingRefresh)
{
_retryCounters[adUnitId]++;
if (!_retryCounters.TryAdd(adUnitId, 0))
{
_retryCounters[adUnitId]++;
}
}
var adSource = "";
if (ad != null)
{
@ -89,8 +93,21 @@ namespace WZ
Time.realtimeSinceStartup - _adStartLoadTimes[adUnitId],
reason);
// 定时任务的刷新,由定时任务自己去刷新
if (timingRefresh)
{
if (!showingNativeAds.ContainsKey(adUnitId))
{
LoggerUtils.Debug($"[Admob] Native Ad unit {adUnitId}, 已经隐藏了失败了也不需要在重新load了");
return;
}
TimingRefresh(adUnitId);
return;
}
var retryDelay = Math.Pow(2, Math.Min(6, _retryCounters[adUnitId]));
TimerUtils.Instance.DelayExecute((float)retryDelay, () => { LoadAd(adUnitId, timingRefresh); });
TimerUtils.Instance.DelayExecute((float)retryDelay, () => { LoadAd(adUnitId); });
LoggerUtils.Error($"[Admob] Native Ad unit {adUnitId}, timingRefresh {timingRefresh} ad failed to load an ad with error : " + error + " \n retryDelay :" + retryDelay);
return;
}
@ -155,12 +172,18 @@ namespace WZ
{
if (showingNativeAds.TryGetValue(adUnitId, out var showing))
{
var showingNativeOverlayAd = showing.NativeOverlayAd;
if (showingNativeOverlayAd != tempAd)
{
LoggerUtils.Error("[Admob] Native ad Error!!!! showing.NativeOverlayAd != tempAd");
}
LoggerUtils.Warning("[Admob] Native ad timing refresh , show ad");
ShowAd(showing.Position, adUnitId, tempAd);
ShowAd(showing.Position, adUnitId, tempAd, showingNativeOverlayAd);
}
else
{
LoggerUtils.Warning($"[Admob] Native ad timing refresh , show fail , showing native ads not ad unit id , {adUnitId}");
LoggerUtils.Warning($"[Admob] Native ad timing refresh , show fail , showing native ads not ad unit id , {adUnitId} , 广告已经隐藏了,刷新成功,不需要再去显示出来");
}
}
});
@ -180,7 +203,7 @@ namespace WZ
}
// 显示特定广告位的广告
public void ShowAd(NativeAdPosition position, string adUnitId, NativeOverlayAd lastAd = null)
public void ShowAd(NativeAdPosition position, string adUnitId, NativeOverlayAd lastAd = null, NativeOverlayAd lastShowAd = null)
{
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Native, adUnitId))
{
@ -213,6 +236,7 @@ namespace WZ
showingNativeAds[adUnitId] = new ShowNativePosition(ad, position);
ad.Show();
lastAd?.Hide();
lastShowAd?.Hide();
TimingRefresh(adUnitId);
}
}