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 }