max 支持多广告位

This commit is contained in:
juncong lee 2025-09-10 20:23:01 +08:00
parent 926512a0f4
commit 2f1cec696b
37 changed files with 381 additions and 184 deletions

View File

@ -1,13 +1,9 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <?xml version="1.0" encoding="utf-8"?>
xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \ <modelVersion>4.0.0</modelVersion>
http://maven.apache.org/xsd/maven-4.0.0.xsd"> <groupId>com.google.firebase</groupId>
<modelVersion>4.0.0</modelVersion> <artifactId>firebase-analytics-unity</artifactId>
<groupId>com.google.firebase</groupId> <version>13.2.0</version>
<artifactId>firebase-analytics-unity</artifactId> <packaging>srcaar</packaging>
<version>13.2.0</version> <dependencies></dependencies>
<packaging>aar</packaging> </project>
<dependencies>
</dependencies>
</project>

View File

@ -1,13 +1,9 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <?xml version="1.0" encoding="utf-8"?>
xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \ <modelVersion>4.0.0</modelVersion>
http://maven.apache.org/xsd/maven-4.0.0.xsd"> <groupId>com.google.firebase</groupId>
<modelVersion>4.0.0</modelVersion> <artifactId>firebase-app-unity</artifactId>
<groupId>com.google.firebase</groupId> <version>13.2.0</version>
<artifactId>firebase-app-unity</artifactId> <packaging>srcaar</packaging>
<version>13.2.0</version> <dependencies></dependencies>
<packaging>aar</packaging> </project>
<dependencies>
</dependencies>
</project>

View File

@ -1,13 +1,9 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <?xml version="1.0" encoding="utf-8"?>
xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \ <modelVersion>4.0.0</modelVersion>
http://maven.apache.org/xsd/maven-4.0.0.xsd"> <groupId>com.google.firebase</groupId>
<modelVersion>4.0.0</modelVersion> <artifactId>firebase-config-unity</artifactId>
<groupId>com.google.firebase</groupId> <version>13.2.0</version>
<artifactId>firebase-config-unity</artifactId> <packaging>srcaar</packaging>
<version>13.2.0</version> <dependencies></dependencies>
<packaging>aar</packaging> </project>
<dependencies>
</dependencies>
</project>

View File

@ -1,13 +1,9 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <?xml version="1.0" encoding="utf-8"?>
xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \ <modelVersion>4.0.0</modelVersion>
http://maven.apache.org/xsd/maven-4.0.0.xsd"> <groupId>com.google.firebase</groupId>
<modelVersion>4.0.0</modelVersion> <artifactId>firebase-crashlytics-unity</artifactId>
<groupId>com.google.firebase</groupId> <version>13.2.0</version>
<artifactId>firebase-crashlytics-unity</artifactId> <packaging>srcaar</packaging>
<version>13.2.0</version> <dependencies></dependencies>
<packaging>aar</packaging> </project>
<dependencies>
</dependencies>
</project>

View File

@ -1,13 +1,9 @@
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <?xml version="1.0" encoding="utf-8"?>
xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \ <modelVersion>4.0.0</modelVersion>
http://maven.apache.org/xsd/maven-4.0.0.xsd"> <groupId>com.google.firebase</groupId>
<modelVersion>4.0.0</modelVersion> <artifactId>firebase-messaging-unity</artifactId>
<groupId>com.google.firebase</groupId> <version>13.2.0</version>
<artifactId>firebase-messaging-unity</artifactId> <packaging>srcaar</packaging>
<version>13.2.0</version> <dependencies></dependencies>
<packaging>aar</packaging> </project>
<dependencies>
</dependencies>
</project>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 1d943c0af46c60a429184f04c942cde9 guid: a7af485f0f21a4a1189272bf030ae253
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 3e27c1f0b3b2b424681fb7cf484f3af9 guid: 22c85dee4bd494f38874d3bdb1d63285
labels: labels:
- gpsr - gpsr
PluginImporter: PluginImporter:

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.google.firebase</groupId> <groupId>com.google.firebase</groupId>
<artifactId>firebase-analytics-unity</artifactId> <artifactId>firebase-analytics-unity</artifactId>
<version>13.1.0</version> <version>13.2.0</version>
<packaging>aar</packaging> <packaging>aar</packaging>
<dependencies></dependencies> <dependencies></dependencies>
</project> </project>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 9311565d4088717489fbc41ca680b9eb guid: 590932756910f413bab176a25ae19f14
labels: labels:
- gpsr - gpsr
DefaultImporter: DefaultImporter:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 62b6226f5d750d64d8ab67f6984cfb86 guid: bf0f1b11fd2ce4aa58931cd5050c1c72
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: b62fd3e2ae2ff1549be54ba45af56adb guid: c274a8d135d6a43dab7216178e53b45e
labels: labels:
- gpsr - gpsr
PluginImporter: PluginImporter:

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.google.firebase</groupId> <groupId>com.google.firebase</groupId>
<artifactId>firebase-app-unity</artifactId> <artifactId>firebase-app-unity</artifactId>
<version>13.1.0</version> <version>13.2.0</version>
<packaging>aar</packaging> <packaging>aar</packaging>
<dependencies></dependencies> <dependencies></dependencies>
</project> </project>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 9dc9fb4bdf5529f4dbf3ebe5fd9e8dbc guid: 3b21a756fe3204b8989a5eb35df798c5
labels: labels:
- gpsr - gpsr
DefaultImporter: DefaultImporter:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 00c3d74a6d7f1794fb433ee61f47277d guid: a07e37a2cb06b4a728a11c36cad75a03
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 713224fa2d32a8c48a68fa2afeddccd4 guid: 96e187fd7bca4417e9aceb6463020fd0
labels: labels:
- gpsr - gpsr
PluginImporter: PluginImporter:

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.google.firebase</groupId> <groupId>com.google.firebase</groupId>
<artifactId>firebase-config-unity</artifactId> <artifactId>firebase-config-unity</artifactId>
<version>13.1.0</version> <version>13.2.0</version>
<packaging>aar</packaging> <packaging>aar</packaging>
<dependencies></dependencies> <dependencies></dependencies>
</project> </project>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: abaa62c7928d3c5488492e9c29f6ca58 guid: b14fe4dad7cfc42e9b0fc74e9601c09e
labels: labels:
- gpsr - gpsr
DefaultImporter: DefaultImporter:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: cd400106ae8eebe45883723eed04020a guid: 5b8e123189e6d42f9b245ac827f802ed
folderAsset: yes folderAsset: yes
DefaultImporter: DefaultImporter:
externalObjects: {} externalObjects: {}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 11f8afb848a938e4abddaf14c62cbbf2 guid: e318bc7e3f3f946e7848dbed386b2257
labels: labels:
- gpsr - gpsr
PluginImporter: PluginImporter:

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.google.firebase</groupId> <groupId>com.google.firebase</groupId>
<artifactId>firebase-crashlytics-unity</artifactId> <artifactId>firebase-crashlytics-unity</artifactId>
<version>13.1.0</version> <version>13.2.0</version>
<packaging>aar</packaging> <packaging>aar</packaging>
<dependencies></dependencies> <dependencies></dependencies>
</project> </project>

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 0029950cbc3769e4c9c743b76439fd13 guid: 8fb50ff9e3b8746cfaa8ede5d7c1384f
labels: labels:
- gpsr - gpsr
DefaultImporter: DefaultImporter:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: daa4f175043514243b5339219f52759f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6434fb1d1fe5a46f096e64740e2e9b2d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,34 @@
fileFormatVersion: 2
guid: a6af306148f9b410b9ff094d5925e32a
labels:
- gpsr
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 0
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 \&#xD;&#xA;http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-messaging-unity</artifactId>
<version>13.2.0</version>
<packaging>aar</packaging>
<dependencies></dependencies>
</project>

View File

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 6d8ada791b0fa464a9258f5b077d9458
labels:
- gpsr
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -5,6 +5,7 @@ using System.IO;
using System.Security.Cryptography; using System.Security.Cryptography;
using System.Text; using System.Text;
using Google.MiniJSON; using Google.MiniJSON;
using Unity.VisualScripting.Dependencies.NCalc;
using UnityEngine; using UnityEngine;
namespace WZ namespace WZ
@ -114,56 +115,72 @@ namespace WZ
for (int i = 0; i < _configs.Length; i++) for (int i = 0; i < _configs.Length; i++)
{ {
string valueTemp = _configs[i].Value.ToString(); string valueTemp = _configs[i].Value.ToString();
//LoggerUtils.Debug("[FileParse] ParseConfigsInner key" + _configs[i].Key + "value:" + valueTemp); LoggerUtils.Debug("[FileParse] ParseConfigsInner key" + _configs[i].Key + "value:" + valueTemp);
if (_configs[i].Key.ToLower() == KEY_Admob_CollapsibleBannerId.ToLower()) if (_configs[i].Key.ToLower() == KEY_Admob_CollapsibleBannerId.ToLower())
{ {
StaticValue.AdmobCollapsibleBannerId = valueTemp; StaticValue.AdmobCollapsibleBannerId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Admob_NormalBannerId.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Admob_NormalBannerId.ToLower())
{ {
StaticValue.AdmobNormalBannerId = valueTemp; StaticValue.AdmobNormalBannerId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Admob_SplashId.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Admob_SplashId.ToLower())
{ {
StaticValue.AdmobSplashId = valueTemp; StaticValue.AdmobSplashId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Admob_NativeId.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Admob_NativeId.ToLower())
{ {
StaticValue.AdmobNativeId = valueTemp; StaticValue.AdmobNativeId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Admob_SMALL_NativeId.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Admob_SMALL_NativeId.ToLower())
{ {
StaticValue.AdmobSmallNativeId = valueTemp; StaticValue.AdmobSmallNativeId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Admob_MINDDLE_NativeId.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Admob_MINDDLE_NativeId.ToLower())
{ {
StaticValue.AdmobMinddleNativeId = valueTemp; StaticValue.AdmobMinddleNativeId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Admob_FULL_NativeId.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Admob_FULL_NativeId.ToLower())
{ {
StaticValue.AdmobFullNativeId = valueTemp; StaticValue.AdmobFullNativeId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Admob_RewardId.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Admob_RewardId.ToLower())
{ {
StaticValue.AdmobRewardId = valueTemp; StaticValue.AdmobRewardId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Admob_InterId.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Admob_InterId.ToLower())
{ {
StaticValue.AdmobInterId = valueTemp; StaticValue.AdmobInterId = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_PRIVACY_URL.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_PRIVACY_URL.ToLower())
{ {
StaticValue.PrivacyUrl = valueTemp; StaticValue.PrivacyUrl = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_ADJUST_ID.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_ADJUST_ID.ToLower())
{ {
StaticValue.AdjustToken = valueTemp; StaticValue.AdjustToken = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Max_APPKEY.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Max_APPKEY.ToLower())
{ {
StaticValue.ApplovinKey = valueTemp; StaticValue.ApplovinKey = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_THINKDATA_ID.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_THINKDATA_ID.ToLower())
{ {
StaticValue.TDAppID = valueTemp; StaticValue.TDAppID = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_THINKDATA_SS_URL.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_THINKDATA_SS_URL.ToLower())
{ {
StaticValue.TDServerURL = valueTemp; StaticValue.TDServerURL = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Max_Inter.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Max_Inter.ToLower())
{ {
StaticValue.InterAdUnitID = valueTemp; StaticValue.MaxInterAdUnitID = valueTemp;
}else if (_configs[i].Key.ToLower() == KEY_Max_Reward.ToLower()) }
else if (_configs[i].Key.ToLower() == KEY_Max_Reward.ToLower())
{ {
StaticValue.RewardAdUnitID = valueTemp; StaticValue.MaxRewardAdUnitID = valueTemp;
} }
else if (_configs[i].Key.ToLower() == KEY_TopOn_AppId.ToLower()) else if (_configs[i].Key.ToLower() == KEY_TopOn_AppId.ToLower())
{ {
@ -183,6 +200,14 @@ namespace WZ
{ {
StaticValue.TopOnRewardAdUnitID = valueTemp; StaticValue.TopOnRewardAdUnitID = valueTemp;
} }
else if (_configs[i].Key.ToLower() == Key_Max_SpareInter.ToLower())
{
StaticValue.MaxSparespareInterAdUnitID = valueTemp;
}
else if (_configs[i].Key.ToLower() == Key_Max_SpareReward.ToLower())
{
StaticValue.MaxSparespareRewardAdUnitID = valueTemp;
}
} }
} }
@ -318,6 +343,8 @@ namespace WZ
public const string KEY_Max_APPKEY = "ad_appkey"; public const string KEY_Max_APPKEY = "ad_appkey";
public const string KEY_Max_Inter = "ad_interstital_id"; public const string KEY_Max_Inter = "ad_interstital_id";
public const string KEY_Max_Reward = "ad_reward_id"; public const string KEY_Max_Reward = "ad_reward_id";
public const string Key_Max_SpareInter = "SpareInterAdUnitID";
public const string Key_Max_SpareReward = "SpareRewardAdUnitId";
public struct PlayerPrefPair public struct PlayerPrefPair
{ {

View File

@ -4,7 +4,7 @@ using UnityEngine;
namespace WZ namespace WZ
{ {
public static class StaticValue public static class StaticValue
{ {
public static string AdmobCollapsibleBannerId = ""; public static string AdmobCollapsibleBannerId = "";
@ -25,7 +25,7 @@ namespace WZ
public static string PrivacyUrl = ""; public static string PrivacyUrl = "";
public static string TopOnAppID = ""; public static string TopOnAppID = "";
public static string TopOnAppKey = ""; public static string TopOnAppKey = "";
public static string TopOnRewardAdUnitID = ""; public static string TopOnRewardAdUnitID = "";
@ -41,9 +41,11 @@ namespace WZ
public static string TDServerURL = "https://data.tapvicogames.com"; public static string TDServerURL = "https://data.tapvicogames.com";
// max // max
public static string InterAdUnitID = ""; public static string MaxInterAdUnitID = "";
public static string RewardAdUnitID = ""; public static string MaxRewardAdUnitID = "";
public static string MaxSparespareInterAdUnitID = "";
public static string MaxSparespareRewardAdUnitID = "";
} }
} }

View File

@ -13,14 +13,18 @@ namespace WZ
public string ClientName => "AppLovin"; public string ClientName => "AppLovin";
public PlatformType Platfrom => PlatformType.AppLovin; public PlatformType Platfrom => PlatformType.AppLovin;
private string _max_app_key; private string _max_app_key;
private string _max_interstitial_units; // 广告单元ID字典支持多个广告位
private string _max_rewarded_units; private List<string> _maxInterstitialUnits = new List<string>();
private MaxSdkBase.AdInfo _interAdInfo; private List<string> _maxRewardedUnits = new List<string>();
private MaxSdkBase.AdInfo _rewardAdInfo; // 广告信息字典,按广告位存储
private int _rewardRetryAttempt; private Dictionary<string, MaxSdkBase.AdInfo> _interAdInfos = new Dictionary<string, MaxSdkBase.AdInfo>();
private int _interRetryAttempt; private Dictionary<string, MaxSdkBase.AdInfo> _rewardAdInfos = new Dictionary<string, MaxSdkBase.AdInfo>();
private float _rvStartLoadTime = 0; // 重试次数字典,按广告位存储
private float _ivStartLoadTime = 0; private Dictionary<string, int> _rewardRetryAttempts = new Dictionary<string, int>();
private Dictionary<string, int> _interRetryAttempts = new Dictionary<string, int>();
// 加载时间字典,按广告位存储
private Dictionary<string, float> _rvStartLoadTimes = new Dictionary<string, float>();
private Dictionary<string, float> _ivStartLoadTimes = new Dictionary<string, float>();
private string _rvPos; private string _rvPos;
private string _ivPos; private string _ivPos;
private Action<bool,double> _rvCloseCallback = null; private Action<bool,double> _rvCloseCallback = null;
@ -30,12 +34,14 @@ namespace WZ
private bool _receivedReward = false; private bool _receivedReward = false;
public void Initialize() public void Initialize()
{ {
_max_app_key = AdConfigParser.GetMaxAppKey();
if (string.IsNullOrEmpty(_max_app_key) || _initialized) return; if (string.IsNullOrEmpty(_max_app_key) || _initialized) return;
LoggerUtils.Debug("[Max] init max"); LoggerUtils.Debug("[Max] init max");
// 关闭反转debug面板 // 关闭反转debug面板
MaxSdk.SetCreativeDebuggerEnabled(false); MaxSdk.SetCreativeDebuggerEnabled(false);
_maxInterstitialUnits = AdConfigParser.GetMaxAdUnits(AdsType.Interstitial);
_maxRewardedUnits = AdConfigParser.GetMaxAdUnits(AdsType.Rewarded);
InitRewardedCallback(); InitRewardedCallback();
InitInterstitialCallback(); InitInterstitialCallback();
@ -47,6 +53,7 @@ namespace WZ
MaxSdk.SetVerboseLogging(false); MaxSdk.SetVerboseLogging(false);
MaxSdk.SetSdkKey(_max_app_key); MaxSdk.SetSdkKey(_max_app_key);
MaxSdk.InitializeSdk(); MaxSdk.InitializeSdk();
LoadRewarded(); LoadRewarded();
LoadInterstitial(); LoadInterstitial();
_initialized = true; _initialized = true;
@ -55,14 +62,13 @@ namespace WZ
public void RefreshAdsData() public void RefreshAdsData()
{ {
_max_app_key = AdConfigParser.GetMaxAppKey(); _max_app_key = AdConfigParser.GetMaxAppKey();
_max_interstitial_units = AdConfigParser.GetMaxAdUnits(AdsType.Interstitial).FirstOrDefault(); _maxInterstitialUnits = AdConfigParser.GetMaxAdUnits(AdsType.Interstitial);
_max_rewarded_units = AdConfigParser.GetMaxAdUnits(AdsType.Rewarded).FirstOrDefault(); _maxRewardedUnits = AdConfigParser.GetMaxAdUnits(AdsType.Rewarded);
} }
#region 广 #region 广
private void InitRewardedCallback() private void InitRewardedCallback()
{ {
if (string.IsNullOrEmpty(_max_rewarded_units)) return;
MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoadedEvent; MaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoadedEvent;
MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailedEvent; MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailedEvent;
MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdFailedToDisplayEvent; MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdFailedToDisplayEvent;
@ -73,36 +79,117 @@ namespace WZ
MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent; MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent;
} }
public void LoadRewarded() public void LoadRewarded()
{ {
if (string.IsNullOrEmpty(_max_rewarded_units)) return; foreach (var kvp in _maxRewardedUnits)
MaxSdk.LoadRewardedAd(_max_rewarded_units); {
AdsActionEvents.TrackAdStartLoad(Platfrom, "", "", AdsType.Rewarded); LoggerUtils.Debug("[MAX] start load rewarded ad unit: "+kvp);
_rvStartLoadTime = Time.realtimeSinceStartup; LoadRewarded(kvp);
}
} }
public void DisplayRewarded(string adPos, Action<bool,double> rewardCallback = null, Action showFailedCallback = null)
private void LoadRewarded(string adUnitId)
{
if (!_maxRewardedUnits.Contains(adUnitId)) return;
if (string.IsNullOrEmpty(adUnitId)) return;
AdsActionEvents.TrackAdStartLoad(Platfrom, "", "", AdsType.Rewarded);
MaxSdk.LoadRewardedAd(adUnitId);
_rvStartLoadTimes[adUnitId] = Time.realtimeSinceStartup;
// 初始化重试次数
if (!_rewardRetryAttempts.ContainsKey(adUnitId))
{
_rewardRetryAttempts[adUnitId] = 0;
}
}
public void DisplayRewarded(string adPos, Action<bool, double> rewardCallback = null, Action showFailedCallback = null)
{ {
_rvPos = adPos; _rvPos = adPos;
_rvCloseCallback = rewardCallback; _rvCloseCallback = rewardCallback;
_rvShowFailedCallback = showFailedCallback; _rvShowFailedCallback = showFailedCallback;
MaxSdk.ShowRewardedAd(_max_rewarded_units); MaxSdk.ShowRewardedAd(GetHighestPayingAdUnit(AdsType.Rewarded));
} }
public double GetRewardedRevenue() public double GetRewardedRevenue()
{ {
if (IsRewardedAvailable() && _rewardAdInfo != null) return GetHighestPayingAdRevenue(AdsType.Rewarded);
}
private double GetHighestPayingAdRevenue(AdsType adsType)
{
var highestPayingAdUnit = GetHighestPayingAdUnit(adsType);
if (highestPayingAdUnit != null)
{ {
return _rewardAdInfo.Revenue; if (adsType == AdsType.Rewarded)
{
if (!_rewardAdInfos.TryGetValue(highestPayingAdUnit, out var adInfo))
{
return -1;
}
return adInfo.Revenue;
}
else
{
if (!_interAdInfos.TryGetValue(highestPayingAdUnit, out var adInfo))
{
return -1;
}
return adInfo.Revenue;
}
} }
else return -1;
}
public string GetHighestPayingAdUnit(AdsType adsType)
{
string highestPayingAdUnit = null;
double highestRevenue = -1;
foreach (var kvp in adsType == AdsType.Rewarded ? _rewardAdInfos : _interAdInfos)
{ {
return -1; var adUnitId = kvp.Key;
var revenue = kvp.Value.Revenue;
if (IsAdsAvailable(adUnitId,adsType) && revenue > highestRevenue)
{
highestRevenue = revenue;
highestPayingAdUnit = adUnitId;
}
} }
return highestPayingAdUnit;
} }
public bool IsRewardedAvailable() public bool IsRewardedAvailable()
{ {
return string.IsNullOrEmpty(_max_rewarded_units) ? false : MaxSdk.IsRewardedAdReady(_max_rewarded_units); ; List<string> availableAdUnits = new List<string>();
foreach (var kvp in _maxRewardedUnits)
{
if (IsAdsAvailable(kvp, AdsType.Rewarded))
{
availableAdUnits.Add(kvp);
}
}
return availableAdUnits.Count > 0;
}
private bool IsAdsAvailable(string adUnit, AdsType adsType)
{
if (adsType == AdsType.Rewarded)
{
if (!_maxRewardedUnits.Contains(adUnit)) return false;
return MaxSdk.IsRewardedAdReady(adUnit);
}
else
{
if (!_maxInterstitialUnits.Contains(adUnit)) return false;
return MaxSdk.IsInterstitialReady(adUnit);
}
} }
private void OnRewardedRevenue(string adunit, MaxSdkBase.AdInfo adInfo) private void OnRewardedRevenue(string adunit, MaxSdkBase.AdInfo adInfo)
@ -115,21 +202,21 @@ namespace WZ
{ {
LoggerUtils.Debug("[Max] OnRewardedAdLoadedEvent network: " + adInfo.NetworkName + " revenue: " + adInfo.Revenue + " NetworkPlacement: " + adInfo.NetworkPlacement + " AdUnitIdentifier: " + adInfo.AdUnitIdentifier + " Placement: " + adInfo.Placement); LoggerUtils.Debug("[Max] OnRewardedAdLoadedEvent network: " + adInfo.NetworkName + " revenue: " + adInfo.Revenue + " NetworkPlacement: " + adInfo.NetworkPlacement + " AdUnitIdentifier: " + adInfo.AdUnitIdentifier + " Placement: " + adInfo.Placement);
AdsKeyEvents.Instance.LogAdFPUEvents(AdsType.Rewarded); AdsKeyEvents.Instance.LogAdFPUEvents(AdsType.Rewarded);
_rewardAdInfo = adInfo; _rewardAdInfos.TryAdd(adunit, adInfo);
_rewardRetryAttempt = 0; _rewardRetryAttempts.TryAdd(adunit, 0);
AdsActionEvents.TrackAdLoaded(Platfrom, adInfo.NetworkName, adInfo.AdUnitIdentifier, AdsType.Rewarded, Time.realtimeSinceStartup - _rvStartLoadTime); AdsActionEvents.TrackAdLoaded(Platfrom, adInfo.NetworkName, adInfo.AdUnitIdentifier, AdsType.Rewarded, Time.realtimeSinceStartup - (_rvStartLoadTimes.TryGetValue(adunit, out var time) ? time : 0));
} }
private void OnRewardedAdLoadFailedEvent(string adunit, MaxSdkBase.ErrorInfo errorInfo) private void OnRewardedAdLoadFailedEvent(string adunit, MaxSdkBase.ErrorInfo errorInfo)
{ {
LoggerUtils.Debug("[Max] OnRewardedAdLoadFailedEvent errorInfo" + errorInfo.Message); LoggerUtils.Debug("[Max] OnRewardedAdLoadFailedEvent errorInfo" + errorInfo.Message);
_rewardRetryAttempt++; if (!_rewardRetryAttempts.TryAdd(adunit, 0))
double retryDelay = Math.Pow(2, Math.Min(6, _rewardRetryAttempt)); {
TimerUtils.Instance.DelayExecute((float)retryDelay, LoadRewarded); _rewardRetryAttempts[adunit]++;
AdsActionEvents.TrackAdFailToLoad(Platfrom, "", "", AdsType.Rewarded, Time.realtimeSinceStartup - _rvStartLoadTime, errorInfo.Message); }
double retryDelay = Math.Pow(2, Math.Min(6, _rewardRetryAttempts[adunit]));
TimerUtils.Instance.DelayExecute((float)retryDelay, () => LoadRewarded(adunit));
AdsActionEvents.TrackAdFailToLoad(Platfrom, "", "", AdsType.Rewarded, Time.realtimeSinceStartup - (_rvStartLoadTimes.TryGetValue(adunit, out var time) ? time : 0), errorInfo.Message);
} }
private void OnRewardedAdDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo info) private void OnRewardedAdDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo info)
@ -141,7 +228,6 @@ namespace WZ
{ {
LoggerUtils.Debug("[Max] OnRewardedAdClickedEvent"); LoggerUtils.Debug("[Max] OnRewardedAdClickedEvent");
AdsActionEvents.TrackAdClicked(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Rewarded,_rvPos,adInfo.Revenue); AdsActionEvents.TrackAdClicked(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Rewarded,_rvPos,adInfo.Revenue);
} }
private void OnRewardedAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo) private void OnRewardedAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo)
@ -149,7 +235,8 @@ namespace WZ
LoggerUtils.Debug("[Max] OnRewardedAdFailedToDisplayEvent :" + errorInfo.Message + " " + errorInfo.Code + " " + errorInfo.MediatedNetworkErrorMessage + " " + errorInfo.MediatedNetworkErrorCode); LoggerUtils.Debug("[Max] OnRewardedAdFailedToDisplayEvent :" + errorInfo.Message + " " + errorInfo.Code + " " + errorInfo.MediatedNetworkErrorMessage + " " + errorInfo.MediatedNetworkErrorCode);
_rvShowFailedCallback?.Invoke(); _rvShowFailedCallback?.Invoke();
_rvShowFailedCallback = null; _rvShowFailedCallback = null;
LoadRewarded(); if(_rewardAdInfos.ContainsKey(adUnitId))_rewardAdInfos.Remove(adUnitId);
LoadRewarded(adUnitId);
} }
private void OnRewardedAdHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) private void OnRewardedAdHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
@ -157,7 +244,8 @@ namespace WZ
_rvCloseCallback?.Invoke(_receivedReward,adInfo.Revenue); _rvCloseCallback?.Invoke(_receivedReward,adInfo.Revenue);
_rvCloseCallback = null; _rvCloseCallback = null;
_receivedReward = false; _receivedReward = false;
LoadRewarded(); if(_rewardAdInfos.ContainsKey(adUnitId))_rewardAdInfos.Remove(adUnitId);
LoadRewarded(adUnitId);
LoggerUtils.Debug("[Max] OnRewardedAdHiddenEvent "+_receivedReward); LoggerUtils.Debug("[Max] OnRewardedAdHiddenEvent "+_receivedReward);
AdsActionEvents.TrackAdClosed(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Rewarded,_rvPos,adInfo.Revenue); AdsActionEvents.TrackAdClosed(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Rewarded,_rvPos,adInfo.Revenue);
} }
@ -167,18 +255,12 @@ namespace WZ
LoggerUtils.Debug("[Max] OnRewardedAdReceivedRewardEvent network: " + arg3.NetworkName + " revenue: " + arg3.Revenue + " NetworkPlacement: " + arg3.NetworkPlacement + " AdUnitIdentifier: " + arg3.AdUnitIdentifier + " Placement: " + arg3.Placement); LoggerUtils.Debug("[Max] OnRewardedAdReceivedRewardEvent network: " + arg3.NetworkName + " revenue: " + arg3.Revenue + " NetworkPlacement: " + arg3.NetworkPlacement + " AdUnitIdentifier: " + arg3.AdUnitIdentifier + " Placement: " + arg3.Placement);
_receivedReward = true; _receivedReward = true;
} }
private void RewardCallback()
{
}
#endregion #endregion
#region 广 #region 广
private void InitInterstitialCallback() private void InitInterstitialCallback()
{ {
if (string.IsNullOrEmpty(_max_interstitial_units)) return;
MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialLoadedEvent; MaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialLoadedEvent;
MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialLoadFailedEvent; MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialLoadFailedEvent;
MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdFailedToDisplayEvent; MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdFailedToDisplayEvent;
@ -190,52 +272,78 @@ namespace WZ
public void LoadInterstitial() public void LoadInterstitial()
{ {
if (string.IsNullOrEmpty(_max_rewarded_units)) return; foreach (var kvp in _maxInterstitialUnits)
MaxSdk.LoadInterstitial(_max_interstitial_units); {
LoggerUtils.Debug("[MAX] start load inter ad unit: "+kvp);
LoadInterstitial(kvp);
}
}
public void LoadInterstitial(string adUnit)
{
if (!_maxInterstitialUnits.Contains(adUnit)) return;
if (string.IsNullOrEmpty(adUnit)) return;
MaxSdk.LoadInterstitial(adUnit);
AdsActionEvents.TrackAdStartLoad(Platfrom, "", "", AdsType.Interstitial); AdsActionEvents.TrackAdStartLoad(Platfrom, "", "", AdsType.Interstitial);
_ivStartLoadTime = Time.realtimeSinceStartup; _ivStartLoadTimes[adUnit] = Time.realtimeSinceStartup;
// 初始化重试次数
if (!_interRetryAttempts.ContainsKey(adUnit))
{
_interRetryAttempts[adUnit] = 0;
}
} }
public double GetInterstitialRevenue() public double GetInterstitialRevenue()
{ {
if (IsInterstitialAvailable() && _interAdInfo != null) return GetHighestPayingAdRevenue(AdsType.Interstitial);
{
return _interAdInfo.Revenue;
}
else
{
return -1;
}
} }
public void DisplayInterstitial(string ivPos, IvType _IvType = IvType.IV1, Action<double> closeCallback = null) public void DisplayInterstitial(string ivPos, IvType _IvType = IvType.IV1, Action<double> closeCallback = null)
{ {
_ivPos = ivPos; _ivPos = ivPos;
_ivCloseCallback = closeCallback; _ivCloseCallback = closeCallback;
MaxSdk.ShowInterstitial(_max_interstitial_units); MaxSdk.ShowInterstitial(GetHighestPayingAdUnit(AdsType.Interstitial));
} }
public bool IsInterstitialAvailable() public bool IsInterstitialAvailable()
{ {
return string.IsNullOrEmpty(_max_interstitial_units) ? false : MaxSdk.IsInterstitialReady(_max_interstitial_units); List<string> availableAdUnits = new List<string>();
foreach (var kvp in _maxInterstitialUnits)
{
if (IsInterstitialAvailable(kvp))
{
availableAdUnits.Add(kvp);
}
}
return availableAdUnits.Count > 0;
}
public bool IsInterstitialAvailable(string adUnit)
{
return IsAdsAvailable(adUnit,AdsType.Interstitial);
} }
private void OnInterstitialLoadedEvent(string adunit, MaxSdkBase.AdInfo adInfo) private void OnInterstitialLoadedEvent(string adunit, MaxSdkBase.AdInfo adInfo)
{ {
LoggerUtils.Debug("[Max] OnInterstitialLoadedEvent network: " + adInfo.NetworkName + " revenue: " + adInfo.Revenue + " NetworkPlacement: " + adInfo.NetworkPlacement + " AdUnitIdentifier: " + adInfo.AdUnitIdentifier + " Placement: " + adInfo.Placement); LoggerUtils.Debug("[Max] OnInterstitialLoadedEvent network: " + adInfo.NetworkName + " revenue: " + adInfo.Revenue + " NetworkPlacement: " + adInfo.NetworkPlacement + " AdUnitIdentifier: " + adInfo.AdUnitIdentifier + " Placement: " + adInfo.Placement);
AdsKeyEvents.Instance.LogAdFPUEvents(AdsType.Interstitial); AdsKeyEvents.Instance.LogAdFPUEvents(AdsType.Interstitial);
_interAdInfo = adInfo; _interRetryAttempts.TryAdd(adunit, 0);
_interRetryAttempt = 0; _interAdInfos.TryAdd(adunit, adInfo);
AdsActionEvents.TrackAdLoaded(Platfrom, adInfo.NetworkName, adInfo.AdUnitIdentifier, AdsType.Interstitial, Time.realtimeSinceStartup - _ivStartLoadTime); AdsActionEvents.TrackAdLoaded(Platfrom, adInfo.NetworkName, adInfo.AdUnitIdentifier, AdsType.Interstitial, Time.realtimeSinceStartup - (_ivStartLoadTimes.TryGetValue(adunit, out var time) ? time : 0));
} }
private void OnInterstitialLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo) private void OnInterstitialLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
{ {
LoggerUtils.Debug("[Max] OnInterstitialLoadFailedEvent :" + errorInfo); LoggerUtils.Debug("[Max] OnInterstitialLoadFailedEvent :" + errorInfo);
_interRetryAttempt++; if (!_interRetryAttempts.TryAdd(adUnitId, 0))
double retryDelay = Math.Pow(2, Math.Min(6, _interRetryAttempt)); {
TimerUtils.Instance.DelayExecute((float)retryDelay, LoadInterstitial); _interRetryAttempts[adUnitId]++;
AdsActionEvents.TrackAdFailToLoad(Platfrom, "","",AdsType.Interstitial,Time.realtimeSinceStartup - _ivStartLoadTime,errorInfo.Message); }
double retryDelay = Math.Pow(2, Math.Min(6, _interRetryAttempts[adUnitId]));
TimerUtils.Instance.DelayExecute((float)retryDelay, () => LoadInterstitial(adUnitId));
AdsActionEvents.TrackAdFailToLoad(Platfrom, "", "", AdsType.Interstitial, Time.realtimeSinceStartup - (_ivStartLoadTimes.TryGetValue(adUnitId, out var time) ? time : 0), errorInfo.Message);
} }
private void OnInterstitialAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo arg3) private void OnInterstitialAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo arg3)
@ -243,7 +351,8 @@ namespace WZ
LoggerUtils.Debug("[Max] OnInterstitialAdFailedToDisplayEvent :" + errorInfo.Message + " " + errorInfo.Code + " " + errorInfo.MediatedNetworkErrorMessage + " " + errorInfo.MediatedNetworkErrorCode); LoggerUtils.Debug("[Max] OnInterstitialAdFailedToDisplayEvent :" + errorInfo.Message + " " + errorInfo.Code + " " + errorInfo.MediatedNetworkErrorMessage + " " + errorInfo.MediatedNetworkErrorCode);
_ivCloseCallback?.Invoke(0); _ivCloseCallback?.Invoke(0);
_ivCloseCallback = null; _ivCloseCallback = null;
LoadInterstitial(); if(_interAdInfos.ContainsKey(adUnitId))_interAdInfos.Remove(adUnitId);
LoadInterstitial(adUnitId);
} }
private void OnInterstitialDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo info) private void OnInterstitialDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo info)
@ -258,7 +367,8 @@ namespace WZ
AdsActionEvents.TrackAdClosed(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Interstitial, _ivPos,adInfo.Revenue); AdsActionEvents.TrackAdClosed(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Interstitial, _ivPos,adInfo.Revenue);
_ivCloseCallback?.Invoke(adInfo.Revenue); _ivCloseCallback?.Invoke(adInfo.Revenue);
_ivCloseCallback = null; _ivCloseCallback = null;
LoadInterstitial(); if(_interAdInfos.ContainsKey(adUnitId))_interAdInfos.Remove(adUnitId);
LoadInterstitial(adUnitId);
} }
private void OnInterstitialRevenue(string adunit, MaxSdkBase.AdInfo adInfo) private void OnInterstitialRevenue(string adunit, MaxSdkBase.AdInfo adInfo)

View File

@ -2,6 +2,7 @@ using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using Newtonsoft.Json; using Newtonsoft.Json;
using Unity.VisualScripting;
using UnityEngine; using UnityEngine;
namespace WZ namespace WZ
@ -171,8 +172,8 @@ namespace WZ
{ {
return adType switch return adType switch
{ {
AdsType.Interstitial => new List<string> { StaticValue.InterAdUnitID }, AdsType.Interstitial => new List<string> { StaticValue.MaxInterAdUnitID,StaticValue.MaxSparespareInterAdUnitID },
AdsType.Rewarded => new List<string> { StaticValue.RewardAdUnitID }, AdsType.Rewarded => new List<string> { StaticValue.MaxRewardAdUnitID,StaticValue.MaxSparespareRewardAdUnitID },
_ => new List<string>() _ => new List<string>()
}; };
} }
@ -186,7 +187,7 @@ namespace WZ
} }
else else
{ {
return new List<string>{ StaticValue.InterAdUnitID }; return new List<string>{ StaticValue.MaxInterAdUnitID,StaticValue.MaxSparespareInterAdUnitID };
} }
case AdsType.Rewarded: case AdsType.Rewarded:
@ -196,7 +197,7 @@ namespace WZ
} }
else else
{ {
return new List<string>{ StaticValue.RewardAdUnitID }; return new List<string>{ StaticValue.MaxRewardAdUnitID,StaticValue.MaxSparespareRewardAdUnitID };
} }
default: default:
return new List<string>(); return new List<string>();

View File

@ -14,11 +14,14 @@ using WZ;
public class RushSDKManager : D_MonoSingleton<RushSDKManager> public class RushSDKManager : D_MonoSingleton<RushSDKManager>
{ {
protected override void Initialized()
{
base.Initialized();
FileParse.Parse();
}
public void InitializeSdk(Action action, bool showLog) public void InitializeSdk(Action action, bool showLog)
{ {
LoggerUtils.Enabled = showLog; LoggerUtils.Enabled = showLog;
FileParse.Parse();
// AdConfigParser.Parse();
FireBaseSDKManager.Instance.Init(); FireBaseSDKManager.Instance.Init();
ShuShuMangage.Instance.Init(); ShuShuMangage.Instance.Init();
AdmobAdsManager.Instance.RefreshAdsData(); AdmobAdsManager.Instance.RefreshAdsData();

View File

@ -22,8 +22,12 @@ public class Test : MonoBehaviour
public void OnShowAd() public void OnShowAd()
{ {
RushSDKManager.Instance.InitializeSdk(null, true); // RushSDKManager.Instance.InitializeSdk(null, true);
// KwaiAdsManager.Instance.ShowRewardAd(); // KwaiAdsManager.Instance.ShowRewardAd();
AdsSDKManager.Instance.ShowRewardAd("getcoin",(state,revenue)=>
{
LoggerUtils.Debug("[kwai] OnRewardedVideoAdShowed revenue:"+revenue+"+ state:"+state);
});
} }
public void OnShowInterstitial() public void OnShowInterstitial()
@ -36,10 +40,7 @@ public class Test : MonoBehaviour
// TemplateId = NativeTemplateId.Medium // TemplateId = NativeTemplateId.Medium
// }, medium); // }, medium);
AdsSDKManager.Instance.ShowRewardAd("getcoin",(state,revenue)=>
{
LoggerUtils.Debug("[kwai] OnRewardedVideoAdShowed revenue:"+revenue+"+ state:"+state);
});
// var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle // var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle
// { // {
// TemplateId = NativeTemplateId.Small // TemplateId = NativeTemplateId.Small
@ -57,6 +58,11 @@ public class Test : MonoBehaviour
// { // {
// Debug.LogWarning("luojian admob native ad start show fail,not ready."); // Debug.LogWarning("luojian admob native ad start show fail,not ready.");
// } // }
AdsSDKManager.Instance.ShowInterstitialAd("endgame",IvType.IV1, (revenue) =>
{
LoggerUtils.Debug("oninter show call revenue:"+revenue);
});
} }
public void OnInterShow() public void OnInterShow()