From 426ef62b6d799496d166a23cb744216d763054f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=89=E5=B3=B0?= Date: Thu, 18 Sep 2025 15:03:56 +0800 Subject: [PATCH 1/5] =?UTF-8?q?1.Native=E9=A2=9C=E8=89=B2=202.=E6=8F=92?= =?UTF-8?q?=E5=B1=8F=E6=8C=87=E5=AE=9A=E5=B9=BF=E5=91=8A=E4=BD=8D=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E8=83=BD=E6=92=AD=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SDKManager/AdsSDKManager/AdsSDKManager.cs | 23 +++--- Assets/Script/SDKManager/RushSDKManager.cs | 72 +++++++++++++------ 2 files changed, 64 insertions(+), 31 deletions(-) diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs index 20cddd9..825a8d1 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs @@ -331,7 +331,7 @@ namespace WZ #region IvRules - public bool IvRulesShow(IvType ivadType) + public bool IvRulesShow(IvType ivadType, bool isShow = true) { //1.获取远程配置 string json = FireBaseRemoteConfigManager.Instance.GetRemoteConfigString("IV_RULES"); @@ -367,7 +367,10 @@ namespace WZ LoggerUtils.Debug($"[SDK] {ivadType.ToString()} 前N次不展示插屏, 本地次数是{currentSkipLevel + 1}, 远程参数是{skipLevel}"); if (currentSkipLevel < skipLevel) { - PlayerPrefsUtils.SavePlayerPrefsInt($"{IvRulesKey.KEY_SKIPLEVEL}_{ivadType.ToString()}", currentSkipLevel + 1); + if (isShow) + { + PlayerPrefsUtils.SavePlayerPrefsInt($"{IvRulesKey.KEY_SKIPLEVEL}_{ivadType.ToString()}", currentSkipLevel + 1); + } return false; } //5.判断overLevel(每跳过几次触发) 第一次会展示 之后每展示一次间隔+1 @@ -376,14 +379,18 @@ namespace WZ LoggerUtils.Debug($"[SDK] {ivadType.ToString()} 当前间隔次数: 本地次数是{currentOverLevel + 1}, 远程参数是{overLevel}"); if (currentOverLevel != 0) { - if (currentOverLevel >= overLevel) + if (isShow) { - IvRulesConst.OverLevels[ivadType.ToString()] = 0; - } - else - { - IvRulesConst.OverLevels[ivadType.ToString()] += 1; + if (currentOverLevel >= overLevel) + { + IvRulesConst.OverLevels[ivadType.ToString()] = 0; + } + else + { + IvRulesConst.OverLevels[ivadType.ToString()] += 1; + } } + return false; } diff --git a/Assets/Script/SDKManager/RushSDKManager.cs b/Assets/Script/SDKManager/RushSDKManager.cs index 37f6227..0dc94e2 100644 --- a/Assets/Script/SDKManager/RushSDKManager.cs +++ b/Assets/Script/SDKManager/RushSDKManager.cs @@ -159,6 +159,11 @@ public class RushSDKManager : D_MonoSingleton return AdsSDKManager.Instance.IsInterstitialReady(); } + public bool CanShowInterstitialAd(IvType ivType) + { + return AdsSDKManager.Instance.IvRulesShow(ivType, false); + } + /// /// 展示插屏广告 /// @@ -250,7 +255,7 @@ public class RushSDKManager : D_MonoSingleton return AdsSDKManager.Instance.IsNativeAdReady(adUnitId); } - public void ShowFullNative(RectTransform rectTransform, Camera pCom = null, string position = "") + public void ShowFullNative(RectTransform rectTransform, Camera pCom = null, string position = "", NativeTemplateStyle nativeTemplateStyle = null) { AdsActionEvents.TrackAdPosition(AdsType.Native, position); if (!IsNativeFullReady()) @@ -260,11 +265,17 @@ public class RushSDKManager : D_MonoSingleton } var adUnitId = StaticValue.AdmobFullNativeId; - var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle + + if (nativeTemplateStyle == null) { - TemplateId = NativeTemplateId.Medium, - MainBackgroundColor = Color.white - }, rectTransform, pCom); + nativeTemplateStyle = new NativeTemplateStyle + { + TemplateId = NativeTemplateId.Medium, + MainBackgroundColor = Color.white + }; + } + + var nativeAdPosition = NativeAdPosition.Create(nativeTemplateStyle, rectTransform, pCom); AdsSDKManager.Instance.ShowNativeAd(position, adUnitId, nativeAdPosition); } @@ -296,7 +307,7 @@ public class RushSDKManager : D_MonoSingleton return AdsSDKManager.Instance.IsNativeAdReady(adUnitId); } - public void ShowNative(RectTransform rectTransform, Camera pCom = null, string position = "") + public void ShowNative(RectTransform rectTransform, Camera pCom = null, string position = "", NativeTemplateStyle nativeTemplateStyle = null) { AdsActionEvents.TrackAdPosition(AdsType.Native, position); if (!IsNativeReady()) @@ -304,13 +315,18 @@ public class RushSDKManager : D_MonoSingleton AdsActionEvents.TrackAdFailToShow(AdsType.Native, position, AdsShowFailType.NoFill); return; } + + if (nativeTemplateStyle == null) + { + nativeTemplateStyle = new NativeTemplateStyle + { + TemplateId = NativeTemplateId.Small, + MainBackgroundColor = Color.white + }; + } var adUnitId = StaticValue.AdmobNativeId; - var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle - { - TemplateId = NativeTemplateId.Small, - MainBackgroundColor = Color.white - }, rectTransform, pCom); + var nativeAdPosition = NativeAdPosition.Create(nativeTemplateStyle, rectTransform, pCom); AdsSDKManager.Instance.ShowNativeAd(position, adUnitId, nativeAdPosition); } @@ -327,7 +343,7 @@ public class RushSDKManager : D_MonoSingleton return AdsSDKManager.Instance.IsNativeAdReady(adUnitId); } - public void ShowSmallNative(RectTransform rectTransform, Camera pCom = null, string position = "") + public void ShowSmallNative(RectTransform rectTransform, Camera pCom = null, string position = "", NativeTemplateStyle nativeTemplateStyle = null) { AdsActionEvents.TrackAdPosition(AdsType.Native, position); if (!IsSmallNativeReady()) @@ -335,13 +351,18 @@ public class RushSDKManager : D_MonoSingleton AdsActionEvents.TrackAdFailToShow(AdsType.Native, position, AdsShowFailType.NoFill); return; } + + if (nativeTemplateStyle == null) + { + nativeTemplateStyle = new NativeTemplateStyle + { + TemplateId = NativeTemplateId.Small, + MainBackgroundColor = Color.white + }; + } var adUnitId = StaticValue.AdmobSmallNativeId; - var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle - { - TemplateId = NativeTemplateId.Small, - MainBackgroundColor = Color.white - }, rectTransform, pCom); + var nativeAdPosition = NativeAdPosition.Create(nativeTemplateStyle, rectTransform, pCom); AdsSDKManager.Instance.ShowNativeAd(position, adUnitId, nativeAdPosition); } @@ -358,7 +379,7 @@ public class RushSDKManager : D_MonoSingleton return AdsSDKManager.Instance.IsNativeAdReady(adUnitId); } - public void ShowMinddleNative(RectTransform rectTransform, Camera pCom = null, string position = "") + public void ShowMinddleNative(RectTransform rectTransform, Camera pCom = null, string position = "", NativeTemplateStyle nativeTemplateStyle = null) { AdsActionEvents.TrackAdPosition(AdsType.Native, position); if (!IsMinddleNativeReady()) @@ -366,13 +387,18 @@ public class RushSDKManager : D_MonoSingleton AdsActionEvents.TrackAdFailToShow(AdsType.Native, position, AdsShowFailType.NoFill); return; } + + if (nativeTemplateStyle == null) + { + nativeTemplateStyle = new NativeTemplateStyle + { + TemplateId = NativeTemplateId.Small, + MainBackgroundColor = Color.white + }; + } var adUnitId = StaticValue.AdmobMinddleNativeId; - var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle - { - TemplateId = NativeTemplateId.Small, - MainBackgroundColor = Color.white - }, rectTransform, pCom); + var nativeAdPosition = NativeAdPosition.Create(nativeTemplateStyle, rectTransform, pCom); AdsSDKManager.Instance.ShowNativeAd(position, adUnitId, nativeAdPosition); } From df5dccc8cf9f186c22d2871db8fb119b5c453b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=89=E5=B3=B0?= Date: Thu, 18 Sep 2025 16:45:48 +0800 Subject: [PATCH 2/5] =?UTF-8?q?object=E7=B1=BB=E5=9E=8B=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FirebaseManager/FireBaseAnalyticsManager.cs | 8 ++++++-- Assets/Script/SDKManager/RushSDKManager.cs | 14 ++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Assets/Script/SDKManager/FirebaseManager/FireBaseAnalyticsManager.cs b/Assets/Script/SDKManager/FirebaseManager/FireBaseAnalyticsManager.cs index 61721a5..a115339 100644 --- a/Assets/Script/SDKManager/FirebaseManager/FireBaseAnalyticsManager.cs +++ b/Assets/Script/SDKManager/FirebaseManager/FireBaseAnalyticsManager.cs @@ -230,9 +230,13 @@ namespace WZ private Parameter GetParameter(string key, object value) { - Type type = value.GetType(); - // 根据类型进行转换 + if (value == null) + { + return new Parameter(key, ""); + } + + Type type = value.GetType(); if (type == typeof(string)) { return new Parameter(key, value as string); diff --git a/Assets/Script/SDKManager/RushSDKManager.cs b/Assets/Script/SDKManager/RushSDKManager.cs index 0dc94e2..642ba1d 100644 --- a/Assets/Script/SDKManager/RushSDKManager.cs +++ b/Assets/Script/SDKManager/RushSDKManager.cs @@ -159,6 +159,11 @@ public class RushSDKManager : D_MonoSingleton return AdsSDKManager.Instance.IsInterstitialReady(); } + /// + /// 是否能展示插屏 + /// + /// + /// public bool CanShowInterstitialAd(IvType ivType) { return AdsSDKManager.Instance.IvRulesShow(ivType, false); @@ -255,6 +260,13 @@ public class RushSDKManager : D_MonoSingleton return AdsSDKManager.Instance.IsNativeAdReady(adUnitId); } + /// + /// + /// + /// + /// + /// + /// public void ShowFullNative(RectTransform rectTransform, Camera pCom = null, string position = "", NativeTemplateStyle nativeTemplateStyle = null) { AdsActionEvents.TrackAdPosition(AdsType.Native, position); @@ -320,7 +332,9 @@ public class RushSDKManager : D_MonoSingleton { nativeTemplateStyle = new NativeTemplateStyle { + //除了中型Native,其他的都是Small TemplateId = NativeTemplateId.Small, + //背景颜色 MainBackgroundColor = Color.white }; } From 37e00c0bede581ea8ceb397e0cf2858cb8180a99 Mon Sep 17 00:00:00 2001 From: luojian Date: Thu, 18 Sep 2025 17:37:37 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=8A=A0=E6=97=A5=E5=BF=97=EF=BC=8C?= =?UTF-8?q?=E5=9C=A8=E9=9A=90=E8=97=8F=E4=B8=80=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdmobAdsManager/AdmobNativeAdManager.cs | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs index 2d9d712..8f2d9b7 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs @@ -233,10 +233,33 @@ namespace WZ // and anchored to the bottom of the screne. ad.RenderTemplate(style, new AdSize(position.Width, position.Height), position.X, position.Y); + var showNativePosition = showingNativeAds[adUnitId]; + + + var lastAdResponseId = lastAd?.GetResponseInfo()?.GetResponseId(); + var lastShowAdResponseId = lastShowAd?.GetResponseInfo()?.GetResponseId(); + var lastShowAdResponseId2 = showNativePosition?.NativeOverlayAd?.GetResponseInfo()?.GetResponseId(); + + var showAdResponseId = ad.GetResponseInfo()?.GetResponseId(); + + LoggerUtils.Debug( + $"[Admob] Native ad ShowAd [showingNativeAds] {adUnitId} , lastAdResponseId = {lastAdResponseId} , lastShowAdResponseId = {lastShowAdResponseId} , lastShowAdResponseId2 = {lastShowAdResponseId2} , showAdResponseId = {showAdResponseId}"); + showingNativeAds[adUnitId] = new ShowNativePosition(ad, position); ad.Show(); - lastAd?.Hide(); - lastShowAd?.Hide(); + + try + { + lastAd?.Hide(); + lastShowAd?.Hide(); + showNativePosition?.NativeOverlayAd?.Hide(); + } + catch (Exception e) + { + LoggerUtils.Error($"[Admob] Native ad Hide fail {adUnitId} , e : {e.Message}"); + } + + TimingRefresh(adUnitId); } } @@ -365,8 +388,9 @@ namespace WZ { foreach (var key in showingNativeAds.Keys.ToList()) { - LoggerUtils.Debug($"[Admob] Native ad removing NativeAd {adUnitId}"); - showingNativeAds[key].NativeOverlayAd.Hide(); + var ad = showingNativeAds[key].NativeOverlayAd; + LoggerUtils.Debug($"[Admob] Native ad removing [showingNativeAds] {adUnitId} , ad {ad.GetResponseInfo()?.GetResponseId()}"); + ad.Hide(); // 从字典中删除元素 showingNativeAds.Remove(key); LoadAd(key); @@ -377,8 +401,9 @@ namespace WZ if (showingNativeAds.TryGetValue(adUnitId, out var tempAd)) { - LoggerUtils.Debug($"[Admob] Native ad removing NativeAd {adUnitId}"); - tempAd.NativeOverlayAd.Hide(); + var ad = tempAd.NativeOverlayAd; + LoggerUtils.Debug($"[Admob] Native ad removing [showingNativeAds] {adUnitId} , ad {ad.GetResponseInfo()?.GetResponseId()}"); + ad.Hide(); showingNativeAds.Remove(adUnitId); LoadAd(adUnitId); } From 0f084245bc95b2fe79a9dd7130c7f79ca5e9f023 Mon Sep 17 00:00:00 2001 From: luojian Date: Thu, 18 Sep 2025 17:40:33 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=94=B9=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs index 8f2d9b7..2a664e3 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs @@ -243,7 +243,7 @@ namespace WZ var showAdResponseId = ad.GetResponseInfo()?.GetResponseId(); LoggerUtils.Debug( - $"[Admob] Native ad ShowAd [showingNativeAds] {adUnitId} , lastAdResponseId = {lastAdResponseId} , lastShowAdResponseId = {lastShowAdResponseId} , lastShowAdResponseId2 = {lastShowAdResponseId2} , showAdResponseId = {showAdResponseId}"); + $"[Admob] Native ad ShowAd [showingNativeAds] {adUnitId} , showAdResponseId = {showAdResponseId} , lastAdResponseId = {lastAdResponseId} , lastShowAdResponseId = {lastShowAdResponseId} , lastShowAdResponseId2 = {lastShowAdResponseId2}"); showingNativeAds[adUnitId] = new ShowNativePosition(ad, position); ad.Show(); From 8d0362c9bcec6cfa82644f280e06ee9f978eaee0 Mon Sep 17 00:00:00 2001 From: luojian Date: Thu, 18 Sep 2025 18:02:24 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=AF=AD=E6=B3=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs index 2a664e3..d3a2b1d 100644 --- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs +++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobNativeAdManager.cs @@ -233,7 +233,8 @@ namespace WZ // and anchored to the bottom of the screne. ad.RenderTemplate(style, new AdSize(position.Width, position.Height), position.X, position.Y); - var showNativePosition = showingNativeAds[adUnitId]; + + var showNativePosition = showingNativeAds.GetValueOrDefault(adUnitId, null); var lastAdResponseId = lastAd?.GetResponseInfo()?.GetResponseId();