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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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