修复MobileAds多次初始化影响游戏bug、修复报错

This commit is contained in:
玉峰 2025-09-03 22:11:37 +08:00
parent 1a5d0ac88c
commit 799a2b32eb
3 changed files with 8 additions and 7 deletions

View File

@ -40,9 +40,9 @@ namespace WZ
{
if (_initialized) return;
MobileAds.RaiseAdEventsOnUnityMainThread = true;
_initialized = true;
MobileAds.Initialize(initStatus =>
{
_initialized = true;
if (_bannerAdUnits.Count > 0) LoadBanner();
if (_interstitialAdUnits.Count > 0) LoadInterstitial();
if (_rewardedAdUnits.Count > 0) LoadRewarded();

View File

@ -239,16 +239,18 @@ namespace WZ
public bool IvRulesShow(IvType ivadType)
{
//1.获取远程配置
//1.获取远程配置
string json = FireBaseRemoteConfigManager.Instance.GetRemoteConfigString("IV_RULES");
if (string.IsNullOrEmpty(json))
{
LoggerUtils.Debug("[SDK] 获取远程配置IV_RULES是空 没有限制");
return true;
}
//2.解析配置
var dates = JsonConvert.DeserializeObject<IvRulesData[]>(json);
if (dates == null && dates.Length == 0)
{
LoggerUtils.Debug("[SDK] 获取远程配置信息是空");
return true;
}
//3.获取IVADType对应的配置
@ -262,23 +264,24 @@ namespace WZ
}
if (ivRulesData == null)
{
LoggerUtils.Debug("[SDK] 远程配置没有配置对应的IvType");
return true;
}
//4.判断skip(次安装跳过几次触发不展示广告)
int skipLevel = ivRulesData.skipLevel;
int currentSkipLevel = PlayerPrefsUtils.GetPlayerPrefsInt($"{IvRulesKey.KEY_SKIPLEVEL}_{ivadType.ToString()}", 0);
LoggerUtils.Debug($"[SDK] {ivadType.ToString()} 前N次不展示插屏, 本地次数是{currentSkipLevel} 远程参数是{skipLevel}");
if (currentSkipLevel < skipLevel)
{
LoggerUtils.Debug($"[SDK] {ivadType} skipLevel limit");
PlayerPrefsUtils.SavePlayerPrefsInt($"{IvRulesKey.KEY_SKIPLEVEL}_{ivadType.ToString()}", currentSkipLevel + 1);
return false;
}
//5.判断overLevel(每跳过几次触发)
int overLevel = ivRulesData.overLevel;
int currentOverLevel = IvRulesConst.OverLevels.ContainsKey(ivadType.ToString()) ? IvRulesConst.OverLevels[ivadType.ToString()] : 0;
LoggerUtils.Debug($"[SDK] {ivadType.ToString()} 当前间隔次数: 本地次数是{currentOverLevel} 远程参数是{overLevel}");
if (currentOverLevel < overLevel)
{
LoggerUtils.Debug($"[SDK] {ivadType} overLevel limit");
IvRulesConst.OverLevels[ivadType.ToString()] = currentOverLevel + 1;
return false;
}
@ -287,10 +290,9 @@ namespace WZ
int interval = ivRulesData.interval;
long currentInterval = IvRulesConst.Intervals.ContainsKey(ivadType.ToString()) ? IvRulesConst.Intervals[ivadType.ToString()] : 0;
long localTimestamp = TimeUtils.GetLocalTimestamp();
LoggerUtils.Debug($"[SDK] {ivadType.ToString()} 远程参数是: {interval} CanShowFlag: {localTimestamp > (currentInterval + (interval * 1000L))}");
if (localTimestamp < currentInterval + (interval * 1000L))
{
LoggerUtils.Debug($"[SDK] {ivadType} interval limit");
return false;
}

View File

@ -2,7 +2,6 @@ using System;
using System.Collections;
using System.Collections.Generic;
using BigoAds.Scripts.Api;
using NUnit.Framework.Constraints;
using UnityEngine;