diff --git a/Assets/Script/Common/IAdService.cs b/Assets/Script/Common/IAdService.cs
index 00dee69..0a269e5 100644
--- a/Assets/Script/Common/IAdService.cs
+++ b/Assets/Script/Common/IAdService.cs
@@ -13,6 +13,8 @@ namespace Script.Common
///
string ClientName { get; }
+ PlatformType Platfrom { get; }
+
///
/// 初始化广告SDK
///
diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobAdsManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobAdsManager.cs
index 0853d1d..a73d306 100644
--- a/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobAdsManager.cs
+++ b/Assets/Script/SDKManager/AdsSDKManager/AdmobAdsManager/AdmobAdsManager.cs
@@ -14,6 +14,7 @@ namespace Script.SDKManager.AdsSDKManager.AdmobAdsManager
public class AdmobAdsManager : NormalSingleton, IAdService
{
public string ClientName => "Admob";
+ public PlatformType Platfrom => PlatformType.Admob;
private AdmobBannerAdManager _admobBannerAdManager;
private AdmobInterstitialAdManager _admobInterstitialAdManager;
private AdmobRewardedAdManager _admobRewardedAdManager;
diff --git a/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs b/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs
index 07dc342..e71d201 100644
--- a/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs
+++ b/Assets/Script/SDKManager/AdsSDKManager/AdsSDKManager.cs
@@ -5,6 +5,7 @@ using Script.Common;
using Script.SDKManager.AdsSDKManager.AdmobAdsManager;
using Script.SDKManager.AdsSDKManager.BigoAdsManager;
using Script.SDKManager.AdsSDKManager.Constant;
+using Script.SDKManager.AdsSDKManager.Events.AdsEvents;
using Script.SDKManager.AdsSDKManager.MaxAdsManager;
using Script.SDKManager.AdsSDKManager.TpnAdsManager;
using Script.SDKManager.AdsSDKManager.Utils;
@@ -55,6 +56,7 @@ public class AdsSDKManager : NormalSingleton
///
public void ShowRewardAd(string _adPos, Action _rewardCallback = null, Action _showFailedCallback = null)
{
+ AdsActionEvents.TrackAdPosition(AdsType.Rewarded, _adPos);
if (!IsRewardAdReady())
{
_showFailedCallback?.Invoke();
@@ -102,6 +104,7 @@ public class AdsSDKManager : NormalSingleton
///
public void ShowInterstitialAd(string _adPos, IvType _IvType = IvType.IV1, Action _closeCallback = null)
{
+ AdsActionEvents.TrackAdPosition(AdsType.Interstitial, _adPos);
if (!IsRewardAdReady())
{
_closeCallback?.Invoke();
diff --git a/Assets/Script/SDKManager/AdsSDKManager/BigoAdsManager/BigoAdsManager.cs b/Assets/Script/SDKManager/AdsSDKManager/BigoAdsManager/BigoAdsManager.cs
index a4ab123..0873079 100644
--- a/Assets/Script/SDKManager/AdsSDKManager/BigoAdsManager/BigoAdsManager.cs
+++ b/Assets/Script/SDKManager/AdsSDKManager/BigoAdsManager/BigoAdsManager.cs
@@ -15,6 +15,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
public class BigoAdsManager : NormalSingleton, IAdService
{
public string ClientName => "Bigo";
+ public PlatformType Platfrom => PlatformType.Bigo;
private BigoRewardedAdManager _rewardedAdManager;
private BigoInterstitialAdManager _interstitialAdManager;
private List _interstitialAdUnits = new List();
diff --git a/Assets/Script/SDKManager/AdsSDKManager/Constant/AdsType.cs b/Assets/Script/SDKManager/AdsSDKManager/Constant/AdsType.cs
index 66e7b75..3871075 100644
--- a/Assets/Script/SDKManager/AdsSDKManager/Constant/AdsType.cs
+++ b/Assets/Script/SDKManager/AdsSDKManager/Constant/AdsType.cs
@@ -6,11 +6,11 @@ namespace Script.SDKManager.AdsSDKManager.Constant
{
public enum AdsType
{
- Interstitial,
- Splash,
+ Interstitial = 1,
Rewarded,
Banner,
- Native
+ Native,
+ Splash,
}
}
diff --git a/Assets/Script/SDKManager/AdsSDKManager/Events/AdsEvents/AdsActionEvents.cs b/Assets/Script/SDKManager/AdsSDKManager/Events/AdsEvents/AdsActionEvents.cs
index 5498273..140a195 100644
--- a/Assets/Script/SDKManager/AdsSDKManager/Events/AdsEvents/AdsActionEvents.cs
+++ b/Assets/Script/SDKManager/AdsSDKManager/Events/AdsEvents/AdsActionEvents.cs
@@ -20,7 +20,6 @@ namespace Script.SDKManager.AdsSDKManager.Events.AdsEvents
public static void TrackAdStartLoad(PlatformType adPlatform, string adSource, string adUnitName, AdsType adFormat)
{
-
}
public static void TrackAdLoaded(PlatformType adPlatform, string adSource, string adUnitName, AdsType adFormat, double loadTime)
@@ -37,7 +36,7 @@ namespace Script.SDKManager.AdsSDKManager.Events.AdsEvents
}
- public static void TrackAdPosition(PlatformType adPlatform, AdsType adFormat, string pos)
+ public static void TrackAdPosition(AdsType adFormat, string pos)
{
}
diff --git a/Assets/Script/SDKManager/AdsSDKManager/Events/New Folder.meta b/Assets/Script/SDKManager/AdsSDKManager/Events/New Folder.meta
deleted file mode 100644
index 37089cd..0000000
--- a/Assets/Script/SDKManager/AdsSDKManager/Events/New Folder.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: bba9020c00e7b494b80ed377282b6760
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Script/SDKManager/AdsSDKManager/MaxAdsManager/MaxAdsManager.cs b/Assets/Script/SDKManager/AdsSDKManager/MaxAdsManager/MaxAdsManager.cs
index ed2cd77..fc2af6e 100644
--- a/Assets/Script/SDKManager/AdsSDKManager/MaxAdsManager/MaxAdsManager.cs
+++ b/Assets/Script/SDKManager/AdsSDKManager/MaxAdsManager/MaxAdsManager.cs
@@ -16,6 +16,7 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
public class MaxAdsManager : NormalSingleton, IAdService
{
public string ClientName => "AppLovin";
+ public PlatformType Platfrom => PlatformType.AppLovin;
private string max_app_key;
private string max_interstitial_units;
private string max_rewarded_units;
@@ -52,7 +53,8 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
MaxSdk.SetVerboseLogging(false);
MaxSdk.SetSdkKey(max_app_key);
MaxSdk.InitializeSdk();
-
+ LoadRewarded();
+ LoadInterstitial();
}
#region 激励广告功能
@@ -72,6 +74,8 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
{
if (string.IsNullOrEmpty(max_rewarded_units)) return;
MaxSdk.LoadRewardedAd(max_rewarded_units);
+ AdsActionEvents.TrackAdStartLoad(Platfrom, "", "", AdsType.Rewarded);
+ _rvStartLoadTime = Time.realtimeSinceStartup;
}
public void DisplayRewarded(string adPos, Action rewardCallback = null, Action showFailedCallback = null)
{
@@ -110,6 +114,7 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
AdsKeyEvents.Instance.LogAdFPUEvents(AdsType.Rewarded);
_rewardAdInfo = adInfo;
_rewardRetryAttempt = 0;
+ AdsActionEvents.TrackAdLoaded(Platfrom, adInfo.NetworkName, adInfo.AdUnitIdentifier, AdsType.Rewarded, Time.realtimeSinceStartup - _rvStartLoadTime);
}
private void OnRewardedAdLoadFailedEvent(string adunit, MaxSdkBase.ErrorInfo errorInfo)
@@ -118,6 +123,8 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
_rewardRetryAttempt++;
double retryDelay = Math.Pow(2, Math.Min(6, _rewardRetryAttempt));
TimerUtils.DelayExecute((float)retryDelay, LoadRewarded);
+ AdsActionEvents.TrackAdFailToLoad(Platfrom, "","",AdsType.Rewarded,Time.realtimeSinceStartup - _rvStartLoadTime,errorInfo.Message);
+
}
private void OnRewardedAdDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo info)
@@ -128,6 +135,8 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
private void OnRewardedAdClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
LoggerUtils.Debug("[Max] OnRewardedAdClickedEvent");
+ AdsActionEvents.TrackAdClicked(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Rewarded,_rvPos,adInfo.Revenue);
+
}
private void OnRewardedAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo)
@@ -136,6 +145,7 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
_rvShowFailedCallback?.Invoke();
_rvShowFailedCallback = null;
LoadRewarded();
+ AdsActionEvents.TrackAdFailToShow(Platfrom,AdsType.Rewarded,errorInfo.Message,_rvPos);
}
private void OnRewardedAdHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
@@ -144,6 +154,8 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
_rvCloseCallback = null;
LoadRewarded();
LoggerUtils.Debug("[Max] OnRewardedAdHiddenEvent");
+ AdsActionEvents.TrackAdClosed(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Rewarded,_rvPos,adInfo.Revenue);
+
}
#endregion
@@ -158,12 +170,15 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialHiddenEvent;
MaxSdkCallbacks.Interstitial.OnAdDisplayedEvent += OnInterstitialDisplayedEvent;
MaxSdkCallbacks.Interstitial.OnAdRevenuePaidEvent += OnInterstitialRevenue;
+ MaxSdkCallbacks.Interstitial.OnAdClickedEvent += OnInterstitialClickedEvent;
}
public void LoadInterstitial()
{
if (string.IsNullOrEmpty(max_rewarded_units)) return;
MaxSdk.LoadInterstitial(max_interstitial_units);
+ AdsActionEvents.TrackAdStartLoad(Platfrom, "", "", AdsType.Interstitial);
+ _ivStartLoadTime = Time.realtimeSinceStartup;
}
public double GetInterstitialRevenue()
{
@@ -195,6 +210,8 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
AdsKeyEvents.Instance.LogAdFPUEvents(AdsType.Interstitial);
_interAdInfo = adInfo;
_interRetryAttempt = 0;
+ AdsActionEvents.TrackAdLoaded(Platfrom, adInfo.NetworkName, adInfo.AdUnitIdentifier, AdsType.Interstitial, Time.realtimeSinceStartup - _rvStartLoadTime);
+
}
private void OnInterstitialLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo)
@@ -203,6 +220,7 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
_interRetryAttempt++;
double retryDelay = Math.Pow(2, Math.Min(6, _interRetryAttempt));
TimerUtils.DelayExecute((float)retryDelay, LoadInterstitial);
+ AdsActionEvents.TrackAdFailToLoad(Platfrom, "","",AdsType.Interstitial,Time.realtimeSinceStartup - _rvStartLoadTime,errorInfo.Message);
}
private void OnInterstitialAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo arg3)
@@ -211,6 +229,7 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
_ivCloseCallback?.Invoke();
_ivCloseCallback = null;
LoadInterstitial();
+ AdsActionEvents.TrackAdFailToShow(Platfrom,AdsType.Interstitial,errorInfo.Message,"");
}
private void OnInterstitialDisplayedEvent(string adUnitId, MaxSdkBase.AdInfo info)
@@ -219,9 +238,10 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
}
- private void OnInterstitialHiddenEvent(string adUnitId, MaxSdkBase.AdInfo info)
+ private void OnInterstitialHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
{
LoggerUtils.Debug($"[Max] OnInterstitialHiddenEvent");
+ AdsActionEvents.TrackAdClosed(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Interstitial,"",adInfo.Revenue);
_ivCloseCallback?.Invoke();
_ivCloseCallback = null;
LoadInterstitial();
@@ -233,6 +253,12 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
TrackAdImpression(adInfo, AdsType.Interstitial);
}
+ private void OnInterstitialClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo)
+ {
+ AdsActionEvents.TrackAdClicked(Platfrom,adInfo.NetworkName,adInfo.AdUnitIdentifier,AdsType.Interstitial,"",adInfo.Revenue);
+ }
+
+
#endregion
#region 开屏广告功能
@@ -283,6 +309,13 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
adInfo.Revenue,
type == AdsType.Rewarded ? _rvPos : "",
AdPlayCountManager.GetAdPlayCount(type));
+
+ AdsActionEvents.TrackAdImpression(Platfrom,
+ adInfo.NetworkName,
+ adInfo.AdUnitIdentifier,
+ type,
+ type == AdsType.Rewarded ? _rvPos : "",
+ adInfo.Revenue);
}
#endregion
}
diff --git a/Assets/Script/SDKManager/AdsSDKManager/TpnAdsManager/TpnAdsManager.cs b/Assets/Script/SDKManager/AdsSDKManager/TpnAdsManager/TpnAdsManager.cs
index 9379d91..6900bcc 100644
--- a/Assets/Script/SDKManager/AdsSDKManager/TpnAdsManager/TpnAdsManager.cs
+++ b/Assets/Script/SDKManager/AdsSDKManager/TpnAdsManager/TpnAdsManager.cs
@@ -17,7 +17,8 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
{
public class TpnAdsManager : NormalSingleton, IAdService
{
- public string ClientName => "Tpn";
+ public string ClientName => "Topon";
+ public PlatformType Platfrom => PlatformType.Topon;
public string topon_app_id;
public string topon_app_key;
public string topon_interstitial_units;
@@ -57,6 +58,8 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
ATRewardedAutoVideo.Instance.client.onAdClickEvent += OnAdVideoClickedEvent;
ATRewardedAutoVideo.Instance.addAutoLoadAdPlacementID(new string[] { topon_rewarded_units });
+ AdsActionEvents.TrackAdStartLoad(Platfrom,"","",AdsType.Rewarded);
+
}
public void LoadRewarded() { }
public void DisplayRewarded(string adPos, Action rewardCallback = null, Action showFailedCallback = null)
@@ -87,6 +90,7 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
ATInterstitialAutoAd.Instance.client.onAdShowFailureEvent += OnAdVideoFailureEvent;
ATInterstitialAutoAd.Instance.client.onAdClickEvent += OnAdVideoClickedEvent;
ATInterstitialAutoAd.Instance.addAutoLoadAdPlacementID(new string[] { topon_interstitial_units });
+ AdsActionEvents.TrackAdStartLoad(Platfrom,"","",AdsType.Interstitial);
}
public void LoadInterstitial() { }
@@ -108,6 +112,12 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
#region 代理
private void OnAdLoadedEvent(object sender, ATAdEventArgs erg)
{
+ AdsActionEvents.TrackAdLoaded(Platfrom,
+ ClientName + "_" + erg.callbackInfo.network_firm_id,
+ erg.callbackInfo.adunit_id,
+ erg.placementId.Equals(topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,
+ 0);
+
if (erg.placementId.Equals(topon_interstitial_units))
{
LoggerUtils.Debug("[Tpn] ads tpn topon interstitial loaded");
@@ -123,6 +133,12 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
private void OnAdLoadedFailEvent(object sender, ATAdErrorEventArgs erg)
{
LoggerUtils.Debug("[Tpn] 广告加载失败:" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
+ AdsActionEvents.TrackAdFailToLoad(Platfrom,
+ ClientName + "_" + erg.callbackInfo.network_firm_id,
+ erg.callbackInfo.adunit_id,
+ erg.placementId.Equals(topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,
+ 0,
+ erg.errorMessage);
}
private void OnAdVideoStartEvent(object sender, ATAdEventArgs erg)
@@ -147,9 +163,14 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
private void OnAdVideoFailureEvent(object sender, ATAdErrorEventArgs erg)
{
LoggerUtils.Debug("[Tpn] 广告播放失败" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
+
+ AdsActionEvents.TrackAdFailToShow(Platfrom,
+ erg.placementId.Equals(topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,
+ erg.errorMessage,
+ erg.placementId.Equals(topon_rewarded_units) ? _rvPos : "");
+
ThreadUtils.QueueOnMainThread(pObj =>
{
-
if (erg.placementId.Equals(topon_rewarded_units))
{
_rvShowFailedCallback?.Invoke();
@@ -167,6 +188,14 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
private void OnAdVideoClosedEvent(object sender, ATAdEventArgs erg)
{
LoggerUtils.Debug("[Tpn] 广告关闭了:" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
+
+ AdsActionEvents.TrackAdClosed(Platfrom,
+ ClientName + "_" + erg.callbackInfo.network_firm_id,
+ erg.callbackInfo.adunit_id,
+ erg.placementId.Equals(topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,
+ erg.placementId.Equals(topon_rewarded_units) ? _rvPos : "",
+ erg.callbackInfo.publisher_revenue);
+
ThreadUtils.QueueOnMainThread(pObj =>
{
if (erg.placementId.Equals(topon_rewarded_units))
@@ -185,6 +214,14 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
private void OnAdVideoClickedEvent(object sender, ATAdEventArgs erg)
{
LoggerUtils.Debug("[Tpn] 点击广告了:" + JsonMapper.ToJson(erg.callbackInfo.toDictionary()));
+
+ AdsActionEvents.TrackAdClicked(Platfrom,
+ ClientName + "_" + erg.callbackInfo.network_firm_id,
+ erg.callbackInfo.adunit_id,
+ erg.placementId.Equals(topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,
+ erg.placementId.Equals(topon_rewarded_units) ? _rvPos : "",
+ erg.callbackInfo.publisher_revenue);
+
ThreadUtils.QueueOnMainThread(pObj =>
{
if (erg.placementId.Equals(topon_rewarded_units))
@@ -248,6 +285,13 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
erg.callbackInfo.publisher_revenue,
erg.placementId.Equals(topon_rewarded_units) ? _rvPos : "",
AdPlayCountManager.GetAdPlayCount(erg.placementId.Equals(topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial));
+
+ AdsActionEvents.TrackAdImpression(Platfrom,
+ ClientName + "_" + erg.callbackInfo.network_firm_id,
+ erg.callbackInfo.adunit_id,
+ erg.placementId.Equals(topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,
+ erg.placementId.Equals(topon_rewarded_units) ? _rvPos : "",
+ erg.callbackInfo.publisher_revenue);
}
#endregion
}