新用户默认不展示开屏广告

This commit is contained in:
juncong lee 2025-11-03 15:58:12 +08:00
parent 5033e63844
commit 9a6dc9078e
9 changed files with 55 additions and 30 deletions

View File

@ -3,7 +3,7 @@ using UnityEngine;
namespace BigoAds.Scripts.Platforms.Android namespace BigoAds.Scripts.Platforms.Android
{ {
internal static class AndroidPlatformTool internal static class KwaiAndroidPlatformTool
{ {
public const string ClassPackage = "com.kwai.network.sdk"; public const string ClassPackage = "com.kwai.network.sdk";
private const string CurrentActivityMethod = "currentActivity"; private const string CurrentActivityMethod = "currentActivity";

View File

@ -11,9 +11,9 @@ namespace KwaiAds.Scripts.Platforms.Android
public class KwaiAdSDKInit public class KwaiAdSDKInit
{ {
private const string TAG = "[KwaiAdSDK-INIT]"; private const string TAG = "[KwaiAdSDK-INIT]";
private const string SDKClientClassName = AndroidPlatformTool.ClassPackage + ".KwaiAdSDK"; private const string SDKClientClassName = KwaiAndroidPlatformTool.ClassPackage + ".KwaiAdSDK";
private const string SDKClientBuilder = AndroidPlatformTool.ClassPackage + ".api.SdkConfig$Builder"; private const string SDKClientBuilder = KwaiAndroidPlatformTool.ClassPackage + ".api.SdkConfig$Builder";
private const string SDKClientInitCallback = AndroidPlatformTool.ClassPackage + ".api.KwaiInitCallback"; private const string SDKClientInitCallback = KwaiAndroidPlatformTool.ClassPackage + ".api.KwaiInitCallback";
private static AndroidJavaClass kwaiAdSdkClass; private static AndroidJavaClass kwaiAdSdkClass;
private static KwaiAdConfig config; private static KwaiAdConfig config;
@ -122,7 +122,7 @@ namespace KwaiAds.Scripts.Platforms.Android
sdkConfigBuilder.Call<AndroidJavaObject>("debug", config.DebugLog); sdkConfigBuilder.Call<AndroidJavaObject>("debug", config.DebugLog);
} }
AndroidJavaObject currentActivity = AndroidPlatformTool.GetGameActivity(); AndroidJavaObject currentActivity = KwaiAndroidPlatformTool.GetGameActivity();
if (currentActivity != null) if (currentActivity != null)
{ {
AndroidJavaObject contextObject = currentActivity.Call<AndroidJavaObject>("getApplicationContext"); AndroidJavaObject contextObject = currentActivity.Call<AndroidJavaObject>("getApplicationContext");

View File

@ -9,10 +9,10 @@ namespace KwaiAds.Scripts.Platforms.Android
public class KwaiInterstitialAdController : IInterstitialAdController public class KwaiInterstitialAdController : IInterstitialAdController
{ {
private const string TAG = "[KwaiAdSDK-InterstitialAdController]"; private const string TAG = "[KwaiAdSDK-InterstitialAdController]";
private const string InterstitialAdConfigBuilderClassName = AndroidPlatformTool.ClassPackage + ".loader.business.interstitial.data.KwaiInterstitialAdConfig$Builder"; private const string InterstitialAdConfigBuilderClassName = KwaiAndroidPlatformTool.ClassPackage + ".loader.business.interstitial.data.KwaiInterstitialAdConfig$Builder";
private const string KwaiInterstitialAdListenerClassName = AndroidPlatformTool.ClassPackage + ".loader.business.interstitial.interf.IKwaiInterstitialAdListener"; private const string KwaiInterstitialAdListenerClassName = KwaiAndroidPlatformTool.ClassPackage + ".loader.business.interstitial.interf.IKwaiInterstitialAdListener";
private const string AdLoadListenerClassName = AndroidPlatformTool.ClassPackage + ".loader.common.interf.AdLoadListener"; private const string AdLoadListenerClassName = KwaiAndroidPlatformTool.ClassPackage + ".loader.common.interf.AdLoadListener";
private const string KwaiInterstitialAdRequestClassName = AndroidPlatformTool.ClassPackage + ".loader.business.interstitial.data.KwaiInterstitialAdRequest"; private const string KwaiInterstitialAdRequestClassName = KwaiAndroidPlatformTool.ClassPackage + ".loader.business.interstitial.data.KwaiInterstitialAdRequest";
private const string KwaiAdLoaderManagerMethodName = "getKwaiAdLoaderManager"; private const string KwaiAdLoaderManagerMethodName = "getKwaiAdLoaderManager";
private const string WithKwaiInterstitialAdListenerMethodName = "withKwaiInterstitialAdListener"; private const string WithKwaiInterstitialAdListenerMethodName = "withKwaiInterstitialAdListener";
private const string BuildInterstitialAdLoaderMethodName = "buildInterstitialAdLoader"; private const string BuildInterstitialAdLoaderMethodName = "buildInterstitialAdLoader";
@ -66,7 +66,7 @@ namespace KwaiAds.Scripts.Platforms.Android
{ {
if (IsReady()) if (IsReady())
{ {
AndroidJavaObject currentActivity = AndroidPlatformTool.GetGameActivity(); AndroidJavaObject currentActivity = KwaiAndroidPlatformTool.GetGameActivity();
if (currentActivity == null) if (currentActivity == null)
{ {
Debug.Log($"{TAG}: Current Game Activity not found."); Debug.Log($"{TAG}: Current Game Activity not found.");

View File

@ -9,10 +9,10 @@ namespace KwaiAds.Scripts.Platforms.Android
public class KwaiRewardAdController : IRewardAdController public class KwaiRewardAdController : IRewardAdController
{ {
private const string TAG = "[KwaiAdSDK-RewardAdController]"; private const string TAG = "[KwaiAdSDK-RewardAdController]";
private const string RewardedAdConfigBuilderClassName = AndroidPlatformTool.ClassPackage + ".loader.business.reward.data.KwaiRewardAdConfig$Builder"; private const string RewardedAdConfigBuilderClassName = KwaiAndroidPlatformTool.ClassPackage + ".loader.business.reward.data.KwaiRewardAdConfig$Builder";
private const string KwaiRewardAdListenerClassName = AndroidPlatformTool.ClassPackage + ".loader.business.reward.interf.IKwaiRewardAdListener"; private const string KwaiRewardAdListenerClassName = KwaiAndroidPlatformTool.ClassPackage + ".loader.business.reward.interf.IKwaiRewardAdListener";
private const string AdLoadListenerClassName = AndroidPlatformTool.ClassPackage + ".loader.common.interf.AdLoadListener"; private const string AdLoadListenerClassName = KwaiAndroidPlatformTool.ClassPackage + ".loader.common.interf.AdLoadListener";
private const string KwaiRewardAdRequestClassName = AndroidPlatformTool.ClassPackage + ".loader.business.reward.data.KwaiRewardAdRequest"; private const string KwaiRewardAdRequestClassName = KwaiAndroidPlatformTool.ClassPackage + ".loader.business.reward.data.KwaiRewardAdRequest";
private const string KwaiAdLoaderManagerMethodName = "getKwaiAdLoaderManager"; private const string KwaiAdLoaderManagerMethodName = "getKwaiAdLoaderManager";
private const string WithKwaiRewardAdListenerMethodName = "withKwaiRewardAdListener"; private const string WithKwaiRewardAdListenerMethodName = "withKwaiRewardAdListener";
private const string BuildRewardAdLoaderMethodName = "buildRewardAdLoader"; private const string BuildRewardAdLoaderMethodName = "buildRewardAdLoader";
@ -66,7 +66,7 @@ namespace KwaiAds.Scripts.Platforms.Android
{ {
if (IsReady()) if (IsReady())
{ {
AndroidJavaObject currentActivity = AndroidPlatformTool.GetGameActivity(); AndroidJavaObject currentActivity = KwaiAndroidPlatformTool.GetGameActivity();
if (currentActivity == null) if (currentActivity == null)
{ {
Debug.Log($"{TAG}: Current Game Activity not found."); Debug.Log($"{TAG}: Current Game Activity not found.");

View File

@ -287,13 +287,13 @@ namespace WZ
{ {
AdsActionEvents.TrackAdClosed(Platfrom, adSource, adUnitId, AdsType.Splash, "", revenue); AdsActionEvents.TrackAdClosed(Platfrom, adSource, adUnitId, AdsType.Splash, "", revenue);
AdsSDKManager.Instance.otherAdsOnShow = false; AdsSDKManager.Instance.otherAdsOnShow = false;
AdsSDKManager.Instance.OnSplashAdCloseCallback?.Invoke(); AdsSplashManager.Instance.OnSplashAdCloseCallback?.Invoke();
} }
private void OnSplashAdError(string adUnitId, int errorCode, string errorMsg) private void OnSplashAdError(string adUnitId, int errorCode, string errorMsg)
{ {
AdsSDKManager.Instance.otherAdsOnShow = false; AdsSDKManager.Instance.otherAdsOnShow = false;
AdsSDKManager.Instance.OnSplashAdCloseCallback?.Invoke(); AdsSplashManager.Instance.OnSplashAdCloseCallback?.Invoke();
} }
private void OnSplashAdClicked(string adSource,string adUnitId,double revenue) private void OnSplashAdClicked(string adSource,string adUnitId,double revenue)

View File

@ -13,13 +13,9 @@ namespace WZ
private List<IAdService> _adNetworks = new List<IAdService>(); private List<IAdService> _adNetworks = new List<IAdService>();
// 是否有激励视频或者插屏广告在展示 // 是否有激励视频或者插屏广告在展示
public bool otherAdsOnShow = false; public bool otherAdsOnShow = false;
public void InitSDK()
public Action OnSplashAdCloseCallback;
public void InitSDK(Action action)
{ {
LoggerUtils.Debug("init ads sdk"); LoggerUtils.Debug("init ads sdk");
OnSplashAdCloseCallback = action;
// 初始化广告平台状态,用于竞价失败后刷新 // 初始化广告平台状态,用于竞价失败后刷新
BidPlatformManager.Instance.InitializePlatformStates(AdConfigParser.GetAdExpireInSec()); BidPlatformManager.Instance.InitializePlatformStates(AdConfigParser.GetAdExpireInSec());
InitializeAdNetworks(); InitializeAdNetworks();

View File

@ -1,3 +1,4 @@
using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using Firebase.RemoteConfig; using Firebase.RemoteConfig;
@ -13,9 +14,20 @@ namespace WZ
public float backgroundTime = 0; public float backgroundTime = 0;
private int timeoutDuration = 5; private int timeoutDuration = 5;
private bool _coldLaunch = true; private bool _coldLaunch = true;
public Action OnSplashAdCloseCallback;
public void SetSplashAdCloseCallback(Action action)
{
OnSplashAdCloseCallback = action;
}
public void InitSplash() public void InitSplash()
{ {
timeoutDuration = GetSplashConfigItem().loadtime; timeoutDuration = GetSplashConfigItem().loadtime;
var isNew = PlayerPrefsUtils.GetPlayerPrefsInt("Firstcold_Splash_Switch", 0) == 0;
if (isNew)
{
timeoutDuration = 0;
}
StartCoroutine(LoadSplashAdAdWithTimeout()); StartCoroutine(LoadSplashAdAdWithTimeout());
LoggerUtils.Debug(" [AppOpen] 加载开屏:"+timeoutDuration); LoggerUtils.Debug(" [AppOpen] 加载开屏:"+timeoutDuration);
} }
@ -112,7 +124,8 @@ namespace WZ
if (!isFirstShow) if (!isFirstShow)
{ {
// 新用户首次不展示 // 新用户首次不展示
AdsSDKManager.Instance.OnSplashAdCloseCallback?.Invoke(); LoggerUtils.Debug(" [AppOpen] 冷启动 新用户首次启动 不展示 :"+OnSplashAdCloseCallback);
OnSplashAdCloseCallback?.Invoke();
} }
else else
{ {
@ -124,7 +137,7 @@ namespace WZ
else else
{ {
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "", AdsShowFailType.NoFill); AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "", AdsShowFailType.NoFill);
AdsSDKManager.Instance.OnSplashAdCloseCallback?.Invoke(); OnSplashAdCloseCallback?.Invoke();
AdsSDKManager.Instance.LoadSplashAd(); AdsSDKManager.Instance.LoadSplashAd();
LoggerUtils.Debug(" [AppOpen] 冷启动广告未准备好"); LoggerUtils.Debug(" [AppOpen] 冷启动广告未准备好");
} }
@ -143,13 +156,13 @@ namespace WZ
else else
{ {
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "", AdsShowFailType.NoFill); AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "", AdsShowFailType.NoFill);
AdsSDKManager.Instance.OnSplashAdCloseCallback?.Invoke(); OnSplashAdCloseCallback?.Invoke();
AdsSDKManager.Instance.LoadSplashAd(); AdsSDKManager.Instance.LoadSplashAd();
} }
} }
else else
{ {
AdsSDKManager.Instance.OnSplashAdCloseCallback?.Invoke(); OnSplashAdCloseCallback?.Invoke();
} }
} }
} }
@ -161,7 +174,7 @@ namespace WZ
} }
private static string Splash_AD_RULES = "Splash_AD_RULES"; private static string Splash_AD_RULES = "Splash_AD_RULES";
private static string Splash_AD_RULES_DEFAULT_VALUE = "[{\"firstcold_splash_switch\":1,\"cold_splash_switch\":1,\"hot_splash_switch\":1,\"hot_timegap\":30,\"loadtime\":5}]"; private static string Splash_AD_RULES_DEFAULT_VALUE = "[{\"firstcold_splash_switch\":0,\"cold_splash_switch\":1,\"hot_splash_switch\":1,\"hot_timegap\":30,\"loadtime\":5}]";
public SplashConfigItem GetSplashConfigItem() public SplashConfigItem GetSplashConfigItem()
{ {
@ -169,7 +182,7 @@ namespace WZ
SplashConfigItem[] configItems = DataUtils.FromJsonArray<SplashConfigItem>(jsonData); SplashConfigItem[] configItems = DataUtils.FromJsonArray<SplashConfigItem>(jsonData);
if (configItems.Length == 0 || configItems == null) if (configItems.Length == 0 || configItems == null)
{ {
return new SplashConfigItem() { firstcold_splash_switch = 1, cold_splash_switch = 1, hot_splash_switch = 1, hot_timegap = 30, loadtime = 15 }; return new SplashConfigItem() { firstcold_splash_switch = 0, cold_splash_switch = 1, hot_splash_switch = 1, hot_timegap = 30, loadtime = 15 };
} }
else else
{ {

View File

@ -21,7 +21,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
public static string GetSDKVersion() public static string GetSDKVersion()
{ {
return "1.0.5.0"; return "1.0.5.1";
} }
protected override void Initialized() protected override void Initialized()
{ {
@ -34,12 +34,13 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
#if UNITY_PURCHASE #if UNITY_PURCHASE
IAPPurchaseManager.Instance.PreInitialize(); IAPPurchaseManager.Instance.PreInitialize();
#endif #endif
AdsSplashManager.Instance.SetSplashAdCloseCallback(action);
FireBaseSDKManager.Instance.Init(); FireBaseSDKManager.Instance.Init();
ShuShuMangage.Instance.Init(); ShuShuMangage.Instance.Init();
AdmobAdsManager.Instance.RefreshAdsData(); AdmobAdsManager.Instance.RefreshAdsData();
AdmobAdsManager.Instance.Initialize(); AdmobAdsManager.Instance.Initialize();
AdjustManager.Instance.Init(); AdjustManager.Instance.Init();
AdsSDKManager.Instance.InitSDK(action); AdsSDKManager.Instance.InitSDK();
EFSdkManager.Instance.Init(); EFSdkManager.Instance.Init();
#if UNITY_PURCHASE #if UNITY_PURCHASE
IAPPurchaseManager.Instance.Initialize(); IAPPurchaseManager.Instance.Initialize();

View File

@ -1,3 +1,18 @@
# Version 1.0.5.1 2025.11.3
## Bugs
- None
## Known issues
- None
## Changelog
- 新用户默认不展示开屏广告
- 更新kwai SDK
# Version 1.0.5.0 2025.10.2 # Version 1.0.5.0 2025.10.2
## Bugs ## Bugs