This commit is contained in:
parent
85e0c0da96
commit
20b80f9e3c
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
|
||||||
<application>
|
<application tools:replace="android:enableOnBackInvokedCallback">
|
||||||
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector">
|
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?><resources><string name="com.crashlytics.android.build_id" translatable="false">44866dc4-8429-4db0-8dfb-a5a86c830b9f</string></resources>
|
<?xml version="1.0" encoding="utf-8"?><resources><string name="com.crashlytics.android.build_id" translatable="false">bccad182-0be4-4005-ab4a-2ceadacc9933</string></resources>
|
||||||
|
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: c639efe897383441bba950ffd80be3dd
|
|
||||||
PluginImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
iconMap: {}
|
|
||||||
executionOrder: {}
|
|
||||||
defineConstraints: []
|
|
||||||
isPreloaded: 0
|
|
||||||
isOverridable: 0
|
|
||||||
isExplicitlyReferenced: 0
|
|
||||||
validateReferences: 1
|
|
||||||
platformData:
|
|
||||||
- first:
|
|
||||||
Android: Android
|
|
||||||
second:
|
|
||||||
enabled: 1
|
|
||||||
settings: {}
|
|
||||||
- first:
|
|
||||||
Any:
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings: {}
|
|
||||||
- first:
|
|
||||||
Editor: Editor
|
|
||||||
second:
|
|
||||||
enabled: 0
|
|
||||||
settings:
|
|
||||||
DefaultValueInitialized: true
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Binary file not shown.
|
|
@ -1,5 +1,5 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 47e631a6b8aee480cb3272b209d73c9f
|
guid: 12ea2c2805188403481780f0aa760364
|
||||||
PluginImporter:
|
PluginImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
|
|
@ -64,7 +64,6 @@ dependencies {
|
||||||
implementation 'io.bidmachine:ads:3.3.0' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/bidmachine/Editor/Dependencies.xml:6
|
implementation 'io.bidmachine:ads:3.3.0' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/bidmachine/Editor/Dependencies.xml:6
|
||||||
implementation 'io.github.kwainetwork:adApi:1.2.21' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/kwai/Editor/Dependencies.xml:3
|
implementation 'io.github.kwainetwork:adApi:1.2.21' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/kwai/Editor/Dependencies.xml:3
|
||||||
implementation 'io.github.kwainetwork:adImpl:1.2.21' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/kwai/Editor/Dependencies.xml:4
|
implementation 'io.github.kwainetwork:adImpl:1.2.21' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/kwai/Editor/Dependencies.xml:4
|
||||||
implementation 'net.pubnative:hybid.sdk:3.6.2' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/pubnative/Editor/Dependencies.xml:6
|
|
||||||
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/kwai/Editor/Dependencies.xml:9
|
implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/kwai/Editor/Dependencies.xml:9
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/chartboost/Editor/Dependencies.xml:15
|
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/chartboost/Editor/Dependencies.xml:15
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/chartboost/Editor/Dependencies.xml:16
|
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1' // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/chartboost/Editor/Dependencies.xml:16
|
||||||
|
|
|
||||||
|
|
@ -39,9 +39,6 @@ dependencyResolutionManagement {
|
||||||
maven {
|
maven {
|
||||||
url "https://artifact.bytedance.com/repository/pangle" // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/pangle/Editor/Dependencies.xml:5
|
url "https://artifact.bytedance.com/repository/pangle" // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/pangle/Editor/Dependencies.xml:5
|
||||||
}
|
}
|
||||||
maven {
|
|
||||||
url "https://verve.jfrog.io/artifactory/verve-gradle-release" // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/pubnative/Editor/Dependencies.xml:5
|
|
||||||
}
|
|
||||||
maven {
|
maven {
|
||||||
url "https://s3.amazonaws.com/smaato-sdk-releases/" // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/smaato/Editor/Dependencies.xml:5
|
url "https://s3.amazonaws.com/smaato-sdk-releases/" // Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/smaato/Editor/Dependencies.xml:5
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,11 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
|
||||||
ShuShuEvent.Instance.SetSuperProperties(new Dictionary<string, object>() { { "adid", id } });
|
ShuShuEvent.Instance.SetSuperProperties(new Dictionary<string, object>() { { "adid", id } });
|
||||||
ShuShuEvent.Instance.UserSet(new Dictionary<string, object>() { { "adid", id } });
|
ShuShuEvent.Instance.UserSet(new Dictionary<string, object>() { { "adid", id } });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var network = GetAdjustNetwork();
|
||||||
|
|
||||||
|
LoggerUtils.Debug("初始化adjust network:"+network);
|
||||||
|
|
||||||
var network = AdjustNetwork.GetNetwork();
|
|
||||||
if (!string.IsNullOrEmpty(network))
|
if (!string.IsNullOrEmpty(network))
|
||||||
{
|
{
|
||||||
RushSDKManager.Instance.OnUserSourceListener?.Invoke(IsOrganic(network), network);
|
RushSDKManager.Instance.OnUserSourceListener?.Invoke(IsOrganic(network), network);
|
||||||
|
|
@ -111,7 +114,7 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (callGetTimes >= 3*60)
|
if (callGetTimes >= 20)
|
||||||
{
|
{
|
||||||
if (attribute != null)
|
if (attribute != null)
|
||||||
{
|
{
|
||||||
|
|
@ -121,7 +124,7 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
|
||||||
{
|
{
|
||||||
OnReceiveCallback(null);
|
OnReceiveCallback(null);
|
||||||
}
|
}
|
||||||
CancelInvoke(nameof(CallGetAttributionAsync));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -146,6 +149,7 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
|
||||||
|
|
||||||
private void OnReceiveCallback(AdjustAttribution attribution)
|
private void OnReceiveCallback(AdjustAttribution attribution)
|
||||||
{
|
{
|
||||||
|
CancelInvoke(nameof(CallGetAttributionAsync));
|
||||||
string campaign = "";
|
string campaign = "";
|
||||||
string adgroup = "";
|
string adgroup = "";
|
||||||
string creative = "";
|
string creative = "";
|
||||||
|
|
@ -171,7 +175,6 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
|
||||||
network = "Organic";
|
network = "Organic";
|
||||||
}
|
}
|
||||||
|
|
||||||
AdjustNetwork.Instance.SetNetwork(attribution.Network);
|
|
||||||
RushSDKManager.Instance.OnUserSourceListener?.Invoke(IsOrganic(network), network);
|
RushSDKManager.Instance.OnUserSourceListener?.Invoke(IsOrganic(network), network);
|
||||||
PlayerPrefsUtils.SavePlayerPrefsString(_adjustNetwork, network);
|
PlayerPrefsUtils.SavePlayerPrefsString(_adjustNetwork, network);
|
||||||
PlayerPrefsUtils.SavePlayerPrefsString(_adjustCampaign, campaign);
|
PlayerPrefsUtils.SavePlayerPrefsString(_adjustCampaign, campaign);
|
||||||
|
|
|
||||||
|
|
@ -6,34 +6,6 @@ using WZ;
|
||||||
|
|
||||||
public class AdjustNetwork : D_MonoSingleton<AdjustNetwork>
|
public class AdjustNetwork : D_MonoSingleton<AdjustNetwork>
|
||||||
{
|
{
|
||||||
private const string KEY_USER_NETWORK = "KEY_USER_NETWORK";
|
|
||||||
|
|
||||||
public void SetNetwork(string network)
|
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(network))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (network.ToLower().Replace(" ", "") == "Organic".ToLower().Replace(" ", ""))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
string curNetwork = PlayerPrefs.GetString(KEY_USER_NETWORK, "");
|
|
||||||
if (string.IsNullOrEmpty(curNetwork))
|
|
||||||
{
|
|
||||||
LogEventGetSuccess();
|
|
||||||
PlayerPrefs.SetString(KEY_USER_NETWORK, network);
|
|
||||||
PlayerPrefs.Save();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetNetwork()
|
|
||||||
{
|
|
||||||
return PlayerPrefs.GetString(KEY_USER_NETWORK);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否是自然量用户
|
/// 是否是自然量用户
|
||||||
/// 默认自然量用户
|
/// 默认自然量用户
|
||||||
|
|
@ -41,7 +13,7 @@ public class AdjustNetwork : D_MonoSingleton<AdjustNetwork>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool InOrganic()
|
public bool InOrganic()
|
||||||
{
|
{
|
||||||
string network = PlayerPrefs.GetString(KEY_USER_NETWORK, "");
|
string network = AdjustManager.Instance.GetAdjustNetwork();
|
||||||
if (string.IsNullOrEmpty(network))
|
if (string.IsNullOrEmpty(network))
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,9 @@ namespace WZ
|
||||||
|
|
||||||
public void ParseAdmobConfig()
|
public void ParseAdmobConfig()
|
||||||
{
|
{
|
||||||
var config = AdConfigParser.Parse("adUnits_adm");
|
var d = "{\"admob_app_id\":\"ca-app-pub-5381644556376235~3756187187\",\"admob_interstitial_units\":[\"ca-app-pub-4412893362169872/3366670333\"],\"admob_splash_units\":[\"ca-app-pub-4412893362169872/7716978882\"],\"admob_rewarded_units\":[\"ca-app-pub-4412893362169872/8427425327\"],\"admob_banner_units\":[\"ca-app-pub-4412893362169872/7908550574\"],\"admob_native_units\":[\"ca-app-pub-4412893362169872/5090815546\"]}";
|
||||||
|
var ads = RushSDKManager.Instance.GetRemoteConfigStr("adUnits_adm",d);
|
||||||
|
var config = AdConfigParser.Parse(ads);
|
||||||
_bannerAdUnits = config.admob_banner_units;
|
_bannerAdUnits = config.admob_banner_units;
|
||||||
_collapsibleBannerAdUnits = config.admob_collbanner_units;
|
_collapsibleBannerAdUnits = config.admob_collbanner_units;
|
||||||
_interstitialAdUnits = config.admob_interstitial_units;
|
_interstitialAdUnits = config.admob_interstitial_units;
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,9 @@ namespace WZ
|
||||||
|
|
||||||
public void ParseTpnConfig()
|
public void ParseTpnConfig()
|
||||||
{
|
{
|
||||||
var config = AdConfigParser.Parse("adUnits_tp");
|
var d = "{\"topon_app_id\":\"h1gufl4j5jktm5\",\"topon_app_key\":\"a6c7b9d35df9d06329639abb28dd9171f\",\"topon_interstitial_units\":[\"n1gnsmehrstgv8\"],\"topon_rewarded_units\":[\"n1gnsmehs6qgeh\"],\"topon_banner_units\":[\"\"],\"topon_native_units\":[\"\"],\"topon_splash_units\":[\"\"]}";
|
||||||
|
var ads = RushSDKManager.Instance.GetRemoteConfigStr("adUnits_tp",d);
|
||||||
|
var config = AdConfigParser.Parse(ads);
|
||||||
_topon_app_id = config.topon_app_id;
|
_topon_app_id = config.topon_app_id;
|
||||||
_topon_app_key = config.topon_app_key;
|
_topon_app_key = config.topon_app_key;
|
||||||
_topon_interstitial_units = config.topon_interstitial_units.FirstOrDefault();
|
_topon_interstitial_units = config.topon_interstitial_units.FirstOrDefault();
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ namespace WZ
|
||||||
// 获取广告位信息
|
// 获取广告位信息
|
||||||
TpnAdsManager.Instance.ParseTpnConfig();
|
TpnAdsManager.Instance.ParseTpnConfig();
|
||||||
AdmobAdsManager.Instance.ParseAdmobConfig();
|
AdmobAdsManager.Instance.ParseAdmobConfig();
|
||||||
|
TransferManager.Instance.isFirebaseActivated = true;
|
||||||
//AB测试分组参数
|
//AB测试分组参数
|
||||||
GroupSet();
|
GroupSet();
|
||||||
// 刷新广告位信息
|
// 刷新广告位信息
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ namespace WZ
|
||||||
public class TransferManager : D_MonoSingleton<TransferManager>
|
public class TransferManager : D_MonoSingleton<TransferManager>
|
||||||
{
|
{
|
||||||
private AdInitState currentState = AdInitState.Idle;
|
private AdInitState currentState = AdInitState.Idle;
|
||||||
private bool isFirebaseActivated = false;
|
public bool isFirebaseActivated = false;
|
||||||
private Coroutine waitingCoroutine = null;
|
private Coroutine waitingCoroutine = null;
|
||||||
|
|
||||||
private int admobRetryCount = 0;
|
private int admobRetryCount = 0;
|
||||||
|
|
@ -41,9 +41,10 @@ namespace WZ
|
||||||
|
|
||||||
public void StartAdInitialization(bool afterLoading,int level)
|
public void StartAdInitialization(bool afterLoading,int level)
|
||||||
{
|
{
|
||||||
Debug.Log("收到Adjust回调,开始处理广告初始化");
|
LoggerUtils.Debug("收到Adjust回调,开始处理广告初始化");
|
||||||
_afterLoading = afterLoading;
|
_afterLoading = afterLoading;
|
||||||
_level = level;
|
_level = level;
|
||||||
|
ChangeState(AdInitState.WaitingForAdjustCallback, "等待Adjust回调");
|
||||||
// 开始广告初始化流程
|
// 开始广告初始化流程
|
||||||
StartAdInitialization();
|
StartAdInitialization();
|
||||||
}
|
}
|
||||||
|
|
@ -52,19 +53,19 @@ namespace WZ
|
||||||
{
|
{
|
||||||
if (currentState != AdInitState.WaitingForAdjustCallback)
|
if (currentState != AdInitState.WaitingForAdjustCallback)
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"广告初始化状态不正确,当前状态: {currentState}");
|
LoggerUtils.Warning($"广告初始化状态不正确,当前状态: {currentState}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查Firebase状态
|
// 检查Firebase状态
|
||||||
if (isFirebaseActivated)
|
if (isFirebaseActivated)
|
||||||
{
|
{
|
||||||
Debug.Log("Firebase已激活,直接执行广告初始化");
|
LoggerUtils.Debug("Firebase已激活,直接执行广告初始化");
|
||||||
ExecuteAdInitialization();
|
ExecuteAdInitialization();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Log("Firebase未激活,等待激活后再执行广告初始化");
|
LoggerUtils.Debug("Firebase未激活,等待激活后再执行广告初始化");
|
||||||
ChangeState(AdInitState.WaitingForFirebase, "等待Firebase激活");
|
ChangeState(AdInitState.WaitingForFirebase, "等待Firebase激活");
|
||||||
|
|
||||||
// 开始等待Firebase激活
|
// 开始等待Firebase激活
|
||||||
|
|
@ -77,7 +78,7 @@ namespace WZ
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private IEnumerator WaitForFirebaseAndInitialize()
|
private IEnumerator WaitForFirebaseAndInitialize()
|
||||||
{
|
{
|
||||||
Debug.Log("开始等待Firebase激活...");
|
LoggerUtils.Debug("开始等待Firebase激活...");
|
||||||
|
|
||||||
float startTime = Time.time;
|
float startTime = Time.time;
|
||||||
const float timeout = 360f;
|
const float timeout = 360f;
|
||||||
|
|
@ -92,18 +93,18 @@ namespace WZ
|
||||||
|
|
||||||
if (Time.time - startTime >= 5f && !isFirebaseActivated)
|
if (Time.time - startTime >= 5f && !isFirebaseActivated)
|
||||||
{
|
{
|
||||||
Debug.Log($"已等待{Time.time - startTime:F1}秒,Firebase仍未激活");
|
LoggerUtils.Debug($"已等待{Time.time - startTime:F1}秒,Firebase仍未激活");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isFirebaseActivated)
|
if (isFirebaseActivated)
|
||||||
{
|
{
|
||||||
Debug.Log($"Firebase激活成功,等待时间: {Time.time - startTime:F1}秒");
|
LoggerUtils.Debug($"Firebase激活成功,等待时间: {Time.time - startTime:F1}秒");
|
||||||
ExecuteAdInitialization();
|
ExecuteAdInitialization();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.LogWarning($"Firebase激活等待超时({timeout}秒),继续初始化广告");
|
LoggerUtils.Warning($"Firebase激活等待超时({timeout}秒),继续初始化广告");
|
||||||
ExecuteAdInitialization();
|
ExecuteAdInitialization();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -115,7 +116,7 @@ namespace WZ
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void ExecuteAdInitialization()
|
private void ExecuteAdInitialization()
|
||||||
{
|
{
|
||||||
Debug.Log("开始执行广告初始化流程");
|
LoggerUtils.Debug("开始执行广告初始化流程");
|
||||||
StartCoroutine(AdInitializationCoroutine());
|
StartCoroutine(AdInitializationCoroutine());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -127,15 +128,15 @@ namespace WZ
|
||||||
// 状态1: 检查是否为推广用户
|
// 状态1: 检查是否为推广用户
|
||||||
ChangeState(AdInitState.CheckingPromotion, "检查推广用户状态");
|
ChangeState(AdInitState.CheckingPromotion, "检查推广用户状态");
|
||||||
|
|
||||||
if (!IsPromoteUser())
|
if (!AdjustNetwork.Instance.InOrganic())
|
||||||
{
|
{
|
||||||
Debug.Log("非推广用户,直接初始化TopOn广告");
|
LoggerUtils.Debug("非推广用户,直接初始化TopOn广告");
|
||||||
ChangeState(AdInitState.InitializingTopOn, "初始化TopOn广告");
|
ChangeState(AdInitState.InitializingTopOn, "初始化TopOn广告");
|
||||||
InitializeTopOnAds();
|
InitializeTopOnAds();
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Log("推广用户,开始VPN和AdMob检查流程");
|
LoggerUtils.Debug("推广用户,开始VPN和AdMob检查流程");
|
||||||
|
|
||||||
// 状态2: 初始化Transfer SDK
|
// 状态2: 初始化Transfer SDK
|
||||||
ChangeState(AdInitState.InitializingTransfer, "初始化Transfer SDK");
|
ChangeState(AdInitState.InitializingTransfer, "初始化Transfer SDK");
|
||||||
|
|
@ -145,12 +146,12 @@ namespace WZ
|
||||||
ChangeState(AdInitState.CheckingVpnPermission, "检查VPN权限");
|
ChangeState(AdInitState.CheckingVpnPermission, "检查VPN权限");
|
||||||
if (TransferData.HasVpnPermission)
|
if (TransferData.HasVpnPermission)
|
||||||
{
|
{
|
||||||
Debug.Log("已有VPN权限,检查AdMob可用性");
|
LoggerUtils.Debug("已有VPN权限,检查AdMob可用性");
|
||||||
yield return StartCoroutine(CheckAndInitializeAdsWithVpnPermission());
|
yield return StartCoroutine(CheckAndInitializeAdsWithVpnPermission());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Log("无VPN权限,检查是否已请求过权限");
|
LoggerUtils.Debug("无VPN权限,检查是否已请求过权限");
|
||||||
yield return StartCoroutine(HandleNoVpnPermission());
|
yield return StartCoroutine(HandleNoVpnPermission());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -187,19 +188,19 @@ namespace WZ
|
||||||
|
|
||||||
if (isAdMobAllowed)
|
if (isAdMobAllowed)
|
||||||
{
|
{
|
||||||
Debug.Log($"AdMob可用: {message},初始化AdMob广告");
|
LoggerUtils.Debug($"AdMob可用: {message},初始化AdMob广告");
|
||||||
ChangeState(AdInitState.InitializingAdMob, "初始化AdMob广告");
|
ChangeState(AdInitState.InitializingAdMob, "初始化AdMob广告");
|
||||||
InitializeAdMobAds();
|
InitializeAdMobAds();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Log($"AdMob不可用: {message},初始化TopOn广告");
|
LoggerUtils.Debug($"AdMob不可用: {message},初始化TopOn广告");
|
||||||
ChangeState(AdInitState.InitializingTopOn, "初始化TopOn广告");
|
ChangeState(AdInitState.InitializingTopOn, "初始化TopOn广告");
|
||||||
InitializeTopOnAds();
|
InitializeTopOnAds();
|
||||||
|
|
||||||
if (TransferData.HasVpnPermission)
|
if (TransferData.HasVpnPermission)
|
||||||
{
|
{
|
||||||
Debug.Log("权限引导流程已完成且AdMob检查失败,启动重试机制");
|
LoggerUtils.Debug("权限引导流程已完成且AdMob检查失败,启动重试机制");
|
||||||
StartAdMobRetry();
|
StartAdMobRetry();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -214,14 +215,14 @@ namespace WZ
|
||||||
// 已请求过VPN权限但用户拒绝
|
// 已请求过VPN权限但用户拒绝
|
||||||
if (TransferData.HasShowedReqVpnPermissionView)
|
if (TransferData.HasShowedReqVpnPermissionView)
|
||||||
{
|
{
|
||||||
Debug.Log("已请求过VPN权限但用户拒绝,初始化TopOn广告");
|
LoggerUtils.Debug("已请求过VPN权限但用户拒绝,初始化TopOn广告");
|
||||||
ChangeState(AdInitState.InitializingTopOn, "初始化TopOn广告");
|
ChangeState(AdInitState.InitializingTopOn, "初始化TopOn广告");
|
||||||
InitializeTopOnAds();
|
InitializeTopOnAds();
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 首次请求VPN权限
|
// 首次请求VPN权限
|
||||||
Debug.Log("首次请求VPN权限,弹出引导");
|
LoggerUtils.Debug("首次请求VPN权限,弹出引导");
|
||||||
ChangeState(AdInitState.RequestingVpnPermission, "请求VPN权限");
|
ChangeState(AdInitState.RequestingVpnPermission, "请求VPN权限");
|
||||||
|
|
||||||
bool permissionRequestCompleted = false;
|
bool permissionRequestCompleted = false;
|
||||||
|
|
@ -233,7 +234,7 @@ namespace WZ
|
||||||
permissionGranted = res;
|
permissionGranted = res;
|
||||||
permissionRequestCompleted = true;
|
permissionRequestCompleted = true;
|
||||||
|
|
||||||
Debug.Log($"VPN权限请求结果: {res}, 消息: {msg}");
|
LoggerUtils.Debug($"VPN权限请求结果: {res}, 消息: {msg}");
|
||||||
});
|
});
|
||||||
|
|
||||||
// 等待权限请求完成
|
// 等待权限请求完成
|
||||||
|
|
@ -241,13 +242,13 @@ namespace WZ
|
||||||
|
|
||||||
if (permissionGranted)
|
if (permissionGranted)
|
||||||
{
|
{
|
||||||
Debug.Log("VPN权限已授予,更新权限状态并检查AdMob");
|
LoggerUtils.Debug("VPN权限已授予,更新权限状态并检查AdMob");
|
||||||
TransferData.HasVpnPermission = true;
|
TransferData.HasVpnPermission = true;
|
||||||
yield return StartCoroutine(CheckAndInitializeAdsWithVpnPermission());
|
yield return StartCoroutine(CheckAndInitializeAdsWithVpnPermission());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Log("VPN权限被拒绝,初始化TopOn广告");
|
LoggerUtils.Debug("VPN权限被拒绝,初始化TopOn广告");
|
||||||
ChangeState(AdInitState.InitializingTopOn, "初始化TopOn广告");
|
ChangeState(AdInitState.InitializingTopOn, "初始化TopOn广告");
|
||||||
InitializeTopOnAds();
|
InitializeTopOnAds();
|
||||||
|
|
||||||
|
|
@ -258,17 +259,17 @@ namespace WZ
|
||||||
{
|
{
|
||||||
if (isRetryingAdMob)
|
if (isRetryingAdMob)
|
||||||
{
|
{
|
||||||
Debug.Log("AdMob重试已在运行中");
|
LoggerUtils.Debug("AdMob重试已在运行中");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (admobRetryCount >= MAX_ADMOB_RETRY_COUNT)
|
if (admobRetryCount >= MAX_ADMOB_RETRY_COUNT)
|
||||||
{
|
{
|
||||||
Debug.Log($"已达到最大重试次数({MAX_ADMOB_RETRY_COUNT}),停止重试");
|
LoggerUtils.Debug($"已达到最大重试次数({MAX_ADMOB_RETRY_COUNT}),停止重试");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Log("启动AdMob重试机制");
|
LoggerUtils.Debug("启动AdMob重试机制");
|
||||||
isRetryingAdMob = true;
|
isRetryingAdMob = true;
|
||||||
admobRetryCoroutine = StartCoroutine(AdMobRetryCoroutine());
|
admobRetryCoroutine = StartCoroutine(AdMobRetryCoroutine());
|
||||||
}
|
}
|
||||||
|
|
@ -280,7 +281,7 @@ namespace WZ
|
||||||
|
|
||||||
while (isRetryingAdMob && admobRetryCount < MAX_ADMOB_RETRY_COUNT)
|
while (isRetryingAdMob && admobRetryCount < MAX_ADMOB_RETRY_COUNT)
|
||||||
{
|
{
|
||||||
Debug.Log($"第{admobRetryCount + 1}次AdMob检查");
|
LoggerUtils.Debug($"第{admobRetryCount + 1}次AdMob检查");
|
||||||
ChangeState(AdInitState.RetryingAdMobCheck, $"第{admobRetryCount + 1}次检查AdMob");
|
ChangeState(AdInitState.RetryingAdMobCheck, $"第{admobRetryCount + 1}次检查AdMob");
|
||||||
|
|
||||||
bool checkCompleted = false;
|
bool checkCompleted = false;
|
||||||
|
|
@ -306,7 +307,7 @@ namespace WZ
|
||||||
|
|
||||||
if (isAdMobAllowed)
|
if (isAdMobAllowed)
|
||||||
{
|
{
|
||||||
Debug.Log($"第{admobRetryCount + 1}次AdMob检查成功: {message}");
|
LoggerUtils.Debug($"第{admobRetryCount + 1}次AdMob检查成功: {message}");
|
||||||
StopAdMobRetry();
|
StopAdMobRetry();
|
||||||
|
|
||||||
InitializeAdMobAds();
|
InitializeAdMobAds();
|
||||||
|
|
@ -314,19 +315,19 @@ namespace WZ
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Log($"第{admobRetryCount + 1}次AdMob检查失败: {message}");
|
LoggerUtils.Debug($"第{admobRetryCount + 1}次AdMob检查失败: {message}");
|
||||||
admobRetryCount++;
|
admobRetryCount++;
|
||||||
|
|
||||||
// 达到最大重试次数
|
// 达到最大重试次数
|
||||||
if (admobRetryCount >= MAX_ADMOB_RETRY_COUNT)
|
if (admobRetryCount >= MAX_ADMOB_RETRY_COUNT)
|
||||||
{
|
{
|
||||||
Debug.Log($"达到最大重试次数({MAX_ADMOB_RETRY_COUNT}),停止重试");
|
LoggerUtils.Debug($"达到最大重试次数({MAX_ADMOB_RETRY_COUNT}),停止重试");
|
||||||
StopAdMobRetry();
|
StopAdMobRetry();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 等待30秒后再次尝试
|
// 等待30秒后再次尝试
|
||||||
Debug.Log($"等待{ADMOB_RETRY_INTERVAL}秒后重试AdMob检查");
|
LoggerUtils.Debug($"等待{ADMOB_RETRY_INTERVAL}秒后重试AdMob检查");
|
||||||
yield return new WaitForSeconds(ADMOB_RETRY_INTERVAL);
|
yield return new WaitForSeconds(ADMOB_RETRY_INTERVAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -359,14 +360,14 @@ namespace WZ
|
||||||
var oldState = currentState;
|
var oldState = currentState;
|
||||||
currentState = newState;
|
currentState = newState;
|
||||||
|
|
||||||
Debug.Log($"广告初始化状态: {oldState} -> {newState} ({message})");
|
LoggerUtils.Debug($"广告初始化状态: {oldState} -> {newState} ({message})");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckFirebaseStatus()
|
private void CheckFirebaseStatus()
|
||||||
{
|
{
|
||||||
if(FireBaseRemoteConfigManager.Instance.IsInitialized)
|
if(FireBaseRemoteConfigManager.Instance.IsInitialized)
|
||||||
{
|
{
|
||||||
Debug.Log("Firebase激活完成事件收到");
|
LoggerUtils.Debug("Firebase激活完成事件收到");
|
||||||
isFirebaseActivated = true;
|
isFirebaseActivated = true;
|
||||||
|
|
||||||
// 如果正在等待Firebase,继续广告初始化
|
// 如果正在等待Firebase,继续广告初始化
|
||||||
|
|
@ -379,16 +380,13 @@ namespace WZ
|
||||||
waitingCoroutine = null;
|
waitingCoroutine = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug.Log("从Firebase等待状态恢复,继续广告初始化");
|
LoggerUtils.Debug("从Firebase等待状态恢复,继续广告初始化");
|
||||||
ExecuteAdInitialization();
|
ExecuteAdInitialization();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsPromoteUser()
|
|
||||||
{
|
|
||||||
return !AdjustManager.Instance.IsOrganic(AdjustNetwork.GetNetwork());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,10 @@ public class Test : MonoBehaviour
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
|
RushSDKManager.Instance.SetUserSourceListener((organic, source) =>
|
||||||
|
{
|
||||||
|
RushSDKManager.Instance.StartAdInitialization(false,1);
|
||||||
|
});
|
||||||
RushSDKManager.Instance.InitializeSdk(() => { }, true);
|
RushSDKManager.Instance.InitializeSdk(() => { }, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 07d298cc85dcd4a8d96ad8a36763a73d
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 77a8bbe95cb9541aab9f7e9494215dfb
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
<dependencies>
|
|
||||||
<androidPackages>
|
|
||||||
<repositories>
|
|
||||||
<repository>https://verve.jfrog.io/artifactory/verve-gradle-release</repository>
|
|
||||||
</repositories>
|
|
||||||
<androidPackage spec="net.pubnative:hybid.sdk:3.6.2"/>
|
|
||||||
</androidPackages>
|
|
||||||
</dependencies>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: bf74ecb8eed2341678004bdf2c875d0e
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
{"name":"pubnative","version":"3.6.2","country":2,"path":"Assets/ThinkupTpnPlugin/AnyThinkAds/Plugins/Android/NonChina/mediation/pubnative"}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
fileFormatVersion: 2
|
|
||||||
guid: 07625fd9ee7804db8b439496d616f005
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Binary file not shown.
|
|
@ -60,7 +60,6 @@
|
||||||
<package>io.bidmachine:ads:3.3.0</package>
|
<package>io.bidmachine:ads:3.3.0</package>
|
||||||
<package>io.github.kwainetwork:adApi:1.2.21</package>
|
<package>io.github.kwainetwork:adApi:1.2.21</package>
|
||||||
<package>io.github.kwainetwork:adImpl:1.2.21</package>
|
<package>io.github.kwainetwork:adImpl:1.2.21</package>
|
||||||
<package>net.pubnative:hybid.sdk:3.6.2</package>
|
|
||||||
<package>org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10</package>
|
<package>org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10</package>
|
||||||
<package>org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1</package>
|
<package>org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1</package>
|
||||||
<package>org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1</package>
|
<package>org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1</package>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue