topon/max 广告行为事件打点

This commit is contained in:
juncong lee 2025-09-01 15:14:26 +08:00
parent 3e2a9d42f9
commit 94b900b706
9 changed files with 92 additions and 17 deletions

View File

@ -13,6 +13,8 @@ namespace Script.Common
/// </summary>
string ClientName { get; }
PlatformType Platfrom { get; }
/// <summary>
/// 初始化广告SDK
/// </summary>

View File

@ -14,6 +14,7 @@ namespace Script.SDKManager.AdsSDKManager.AdmobAdsManager
public class AdmobAdsManager : NormalSingleton<AdmobAdsManager>, IAdService
{
public string ClientName => "Admob";
public PlatformType Platfrom => PlatformType.Admob;
private AdmobBannerAdManager _admobBannerAdManager;
private AdmobInterstitialAdManager _admobInterstitialAdManager;
private AdmobRewardedAdManager _admobRewardedAdManager;

View File

@ -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<AdsSDKManager>
/// <param name="callback"></param>
public void ShowRewardAd(string _adPos, Action<bool> _rewardCallback = null, Action _showFailedCallback = null)
{
AdsActionEvents.TrackAdPosition(AdsType.Rewarded, _adPos);
if (!IsRewardAdReady())
{
_showFailedCallback?.Invoke();
@ -102,6 +104,7 @@ public class AdsSDKManager : NormalSingleton<AdsSDKManager>
/// <param name="callback"></param>
public void ShowInterstitialAd(string _adPos, IvType _IvType = IvType.IV1, Action _closeCallback = null)
{
AdsActionEvents.TrackAdPosition(AdsType.Interstitial, _adPos);
if (!IsRewardAdReady())
{
_closeCallback?.Invoke();

View File

@ -15,6 +15,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
public class BigoAdsManager : NormalSingleton<BigoAdsManager>, IAdService
{
public string ClientName => "Bigo";
public PlatformType Platfrom => PlatformType.Bigo;
private BigoRewardedAdManager _rewardedAdManager;
private BigoInterstitialAdManager _interstitialAdManager;
private List<string> _interstitialAdUnits = new List<string>();

View File

@ -6,11 +6,11 @@ namespace Script.SDKManager.AdsSDKManager.Constant
{
public enum AdsType
{
Interstitial,
Splash,
Interstitial = 1,
Rewarded,
Banner,
Native
Native,
Splash,
}
}

View File

@ -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)
{
}

View File

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

View File

@ -16,6 +16,7 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
public class MaxAdsManager : NormalSingleton<MaxAdsManager>, 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<bool> 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
}

View File

@ -17,7 +17,8 @@ namespace Script.SDKManager.AdsSDKManager.TpnAdsManager
{
public class TpnAdsManager : NormalSingleton<TpnAdsManager>, 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<bool> 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
}