广告事件打点

This commit is contained in:
juncong lee 2026-01-06 16:29:08 +08:00
parent 4382019847
commit 264513fd31
16 changed files with 237 additions and 219 deletions

View File

@ -32,12 +32,10 @@ MonoBehaviour:
- Assembly-CSharp-firstpass
- ThinkingAnalytics
- Assembly-CSharp
- MaxSdk.Scripts
- IAPResolver
- ThinkupTpnPlugin.Script.IntegrationManager.Editor
- AdjustSdk.Scripts
- ThinkingSDK
- MaxSdk.Scripts.IntegrationManager.Editor
- GoogleMobileAds.Editor
- ThinkupTpnPlugin.Script.Editor
- FirebaseMessagingActivityGenerator

View File

@ -141,7 +141,7 @@ namespace WZ
/// 显示原生广告
/// </summary>
/// <param name="position">广告位置和尺寸信息</param>
void DisplayNative(string _adPos, string adUnitId, NativeAdPosition position);
void DisplayNative(string _adPos, string adUnitId, NativeAdPosition position, NativeType nativeType);
/// <summary>
/// 移除原生广告

View File

@ -26,9 +26,10 @@ namespace WZ
private List<string> _splashAdUnits = new List<string>();
private List<string> _bannerAdUnits = new List<string>();
private List<string> _collapsibleBannerAdUnits = new List<string>();
private string _rvPos;
private string _ivPos;
private string _naPos;
public string _rvPos;
public string _ivPos;
public string _naPos;
public NativeType _naType;
private Action<bool,double> _rvCloseCallback = null;
private Action<double> _ivCloseCallback = null;
private Action _rvShowFailedCallback = null;
@ -90,7 +91,6 @@ namespace WZ
OnRewardedAdClicked
);
_rvStartLoadTime = Time.realtimeSinceStartup;
AdsActionEvents.TrackAdStartLoad(Platfrom, AdsType.Rewarded);
}
public void DisplayRewarded(string adPos, Action<bool,double> rewardCallback = null, Action showFailedCallback = null)
{
@ -128,7 +128,14 @@ namespace WZ
private void OnRewardedAdDismissed(string adSource,string adUnitId,double revenue)
{
AdsActionEvents.TrackAdClosed(Platfrom,adSource,adUnitId,AdsType.Rewarded,_rvPos,revenue);
AdsActionEvents.TrackAdClosed(Platfrom,
adSource,
adUnitId,
AdsType.Rewarded,
_rvPos,
revenue,
AdPlayCountManager.GetAdsActionCount(AdsType.Rewarded,_rvPos+AdPlayCountManager.POS_SUFFIX));
_rvCloseCallback?.Invoke(_receivedReward,revenue);
_rvCloseCallback = null;
_receivedReward = false;
@ -144,7 +151,14 @@ namespace WZ
private void OnRewardedAdClicked(string adSource,string adUnitId,double revenue)
{
AdsActionEvents.TrackAdClicked(Platfrom,adSource,adUnitId,AdsType.Rewarded,_rvPos,revenue);
AdsActionEvents.TrackAdClicked(Platfrom,
adSource,
adUnitId,
AdsType.Rewarded,
_rvPos,
revenue,
AdPlayCountManager.GetAdsActionCount(AdsType.Rewarded,_rvPos+AdPlayCountManager.POS_SUFFIX),
NativeType.None);
}
private void OnRewardEarnReward(bool reward)
@ -169,7 +183,6 @@ namespace WZ
OnInterstitialAdClicked
);
_ivStartLoadTime = Time.realtimeSinceStartup;
AdsActionEvents.TrackAdStartLoad(Platfrom,AdsType.Interstitial);
}
public double GetInterstitialRevenue()
{
@ -200,7 +213,14 @@ namespace WZ
}
private void OnInterstitialAdClicked(string adSource,string adUnitId,double revenue)
{
AdsActionEvents.TrackAdClicked(Platfrom, adSource, adUnitId, AdsType.Interstitial, _ivPos, revenue);
AdsActionEvents.TrackAdClicked(Platfrom,
adSource,
adUnitId,
AdsType.Interstitial,
_ivPos,
revenue,
AdPlayCountManager.GetAdsActionCount(AdsType.Interstitial,_ivPos+AdPlayCountManager.POS_SUFFIX),
NativeType.None);
}
private void OnInterstitialAdPaid(AdValue adValue)
@ -215,7 +235,15 @@ namespace WZ
private void OnInterstitialAdDismissed(string adSource,string adUnitId,double revenue)
{
AdsActionEvents.TrackAdClosed(Platfrom, adSource, adUnitId, AdsType.Interstitial, _ivPos, revenue);
AdsActionEvents.TrackAdClosed(Platfrom,
adSource,
adUnitId,
AdsType.Interstitial,
_ivPos,
revenue,
AdPlayCountManager.GetAdsActionCount(AdsType.Interstitial,_ivPos+AdPlayCountManager.POS_SUFFIX)
);
_ivCloseCallback?.Invoke(revenue);
_ivCloseCallback = null;
LoadInterstitial();
@ -247,7 +275,6 @@ namespace WZ
OnSplashAdClicked
);
_spStartLoadTime = Time.realtimeSinceStartup;
AdsActionEvents.TrackAdStartLoad(Platfrom,AdsType.Splash);
}
public bool IsSplashAvailable()
@ -290,7 +317,15 @@ namespace WZ
private void OnSplashAdDismissed(string adSource, string adUnitId, double revenue)
{
AdsActionEvents.TrackAdClosed(Platfrom, adSource, adUnitId, AdsType.Splash, AdsSplashManager.Instance._coldLaunch ? "Cold" : "Hot", revenue);
AdsActionEvents.TrackAdClosed(Platfrom,
adSource,
adUnitId,
AdsType.Splash,
AdsSplashManager.Instance._coldLaunch ? "Cold" : "Hot",
revenue,
AdPlayCountManager.GetAdsActionCount(AdsType.Splash,"Splash"+AdPlayCountManager.POS_SUFFIX)
);
AdsSDKManager.Instance.otherAdsOnShow = false;
AdsSplashManager.Instance.OnSplashAdCloseCallback?.Invoke();
LoadSplash();
@ -305,7 +340,14 @@ namespace WZ
private void OnSplashAdClicked(string adSource,string adUnitId,double revenue)
{
AdsActionEvents.TrackAdClicked(Platfrom,adSource,adUnitId,AdsType.Splash,AdsSplashManager.Instance._coldLaunch ? "Cold" : "Hot",revenue);
AdsActionEvents.TrackAdClicked(Platfrom,
adSource,
adUnitId,
AdsType.Splash,
AdsSplashManager.Instance._coldLaunch ? "Cold" : "Hot",
revenue,
AdPlayCountManager.GetAdsActionCount(AdsType.Splash,"Splash"+AdPlayCountManager.POS_SUFFIX),
NativeType.None);
}
private void OnSplashAdPaid(AdValue adValue)
@ -324,7 +366,6 @@ namespace WZ
_admobNativeAdManager.InitializeAdUnits(
_nativeAdUnits
);
AdsActionEvents.TrackAdStartLoad(Platfrom, AdsType.Native);
}
public bool IsNativeAvailable(string adUnitId)
@ -332,9 +373,10 @@ namespace WZ
return _admobNativeAdManager?.IsAdAvailable(adUnitId) ?? false;
}
public void DisplayNative(string _adPos, string adUnitId, NativeAdPosition position)
public void DisplayNative(string _adPos, string adUnitId, NativeAdPosition position, NativeType nativeType)
{
_naPos = _adPos;
_naType = nativeType;
_admobNativeAdManager.ShowAd(position, adUnitId);
}
@ -354,7 +396,7 @@ namespace WZ
{
LoadStandardBanner();
LoadCollapsingBanner();
AdsActionEvents.TrackAdStartLoad(Platfrom,AdsType.Banner);
}
private void LoadStandardBanner()
@ -422,7 +464,7 @@ namespace WZ
#endregion
#region
public void TrackAdImpression(string adsourceName,string adSourceInstanceName, AdValue adValue, AdsType type, string placement)
public void TrackAdImpression(string adsourceName,string adSourceInstanceName, AdValue adValue, AdsType type, string placement,NativeType nativeType)
{
AdjustTrackEvent.Instance.TrackAdEvent(adValue.Value / 1000000f,
adsourceName,
@ -445,13 +487,17 @@ namespace WZ
position,
AdPlayCountManager.GetAdsActionCount(type, AdPlayCountManager.PLAY_COUNT_SUFFIX));
var positionNumKey = position;
if(string.IsNullOrEmpty(positionNumKey)) positionNumKey = "Banner";
ShuShuEvent.Instance.OnAdRevenueEvent(PlatformType.Admob.ToString(),
adsourceName,
placement,
type.ToString(),
type,
adValue.Value / 1000000f,
position,
AdPlayCountManager.GetAdsActionCount(type, AdPlayCountManager.PLAY_COUNT_SUFFIX));
AdPlayCountManager.GetAdsActionCount(type, AdPlayCountManager.PLAY_COUNT_SUFFIX),
AdPlayCountManager.GetAdsActionCount(type,positionNumKey+AdPlayCountManager.POS_SUFFIX),
nativeType);
}
#endregion
@ -462,46 +508,7 @@ namespace WZ
}
#endregion
/// <summary>
/// 判断当前广告id的配置是否包含这个id
/// </summary>
/// <param name="adsType"></param>
/// <param name="adUnitId"></param>
/// <returns></returns>
public bool FindAdsID(AdsType adsType, string adUnitId,BannerType bannerType = BannerType.Standard)
{
if (adsType == AdsType.Rewarded)
{
return _rewardedAdUnits.Contains(adUnitId);
}
else if (adsType == AdsType.Interstitial)
{
return _interstitialAdUnits.Contains(adUnitId);
}
else if (adsType == AdsType.Native)
{
return _nativeAdUnits.Contains(adUnitId);
}
else if (adsType == AdsType.Splash)
{
return _splashAdUnits.Contains(adUnitId);
}
else if (adsType == AdsType.Banner)
{
if (bannerType == BannerType.Standard)
{
return _bannerAdUnits.Contains(adUnitId);
}
else
{
return _collapsibleBannerAdUnits.Contains(adUnitId);
}
}
else
{
return false;
}
}
}

View File

@ -44,17 +44,13 @@ namespace WZ
InterstitialAd.Load(adUnitId, new AdRequest(), (InterstitialAd ad, LoadAdError error) =>
{
AdsActionEvents.TrackAdStartLoad(PlatformType.Admob,AdsType.Interstitial,adUnitId);
if (error != null || ad == null)
{
LoggerUtils.Debug("[Admob] interstitial ad failed to load an ad with error : " + error);
onAdLoadFailed?.Invoke(adUnitId, error.GetCode(), error.GetMessage());
return;
}
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Interstitial, adUnitId))
{
return;
}
LoggerUtils.Debug("Admob Interstitial ad loaded with response : " + ad.GetResponseInfo().ToString());
LoggerUtils.Debug("Admob Interstitial ad loaded with Getsrevenue:"+AdmobUtils.GetInterstitialAdEcpm(ad));
@ -77,7 +73,8 @@ namespace WZ
ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceInstanceId ??"",
adValue,
AdsType.Interstitial,
adUnitId);
adUnitId,
NativeType.None);
onAdPaid?.Invoke(adValue);
};
@ -113,6 +110,13 @@ namespace WZ
{
LoggerUtils.Debug("[Admob] Interstitial ad failed to open full screen content with error : " + error);
onAdError?.Invoke(adUnitId, error.GetCode(), error.GetMessage());
AdsActionEvents.TrackAdFailToShow(AdsType.Interstitial,AdmobAdsManager.Instance._ivPos,PlatformType.Admob.ToString(),ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceName ??"",
adUnitId,
AdPlayCountManager.GetAdsActionCount(AdsType.Interstitial,AdmobAdsManager.Instance._ivPos+AdPlayCountManager.POS_SUFFIX),
NativeType.None,
error.GetCode().ToString(),
error.GetMessage()
);
};
});
}
@ -145,10 +149,6 @@ namespace WZ
// 检查特定广告位是否可用
private bool IsAdAvailable(string adUnitId)
{
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Interstitial, adUnitId))
{
return false;
}
return _interstitialAds.TryGetValue(adUnitId, out var ad) && ad.CanShowAd();
}

View File

@ -52,14 +52,10 @@ namespace WZ
public void LoadAd(string adUnitId, bool timingRefresh = false)
{
LoggerUtils.Debug($"[Admob] Native Ad unit {adUnitId} load start , timingRefresh {timingRefresh}");
//判断在线参数是否包含这个id
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Native, adUnitId))
{
return;
}
NativeOverlayAd.Load(adUnitId, new AdRequest(), new NativeAdOptions(), (NativeOverlayAd ad, LoadAdError error) =>
{
AdsActionEvents.TrackAdStartLoad(PlatformType.Admob, AdsType.Native,adUnitId);
_adStartLoadTimes[adUnitId] = Time.realtimeSinceStartup;
LoggerUtils.Debug($"[Admob] Native Ad unit {adUnitId} load end, timingRefresh {timingRefresh}. {ad} error {error}");
if (error != null || ad == null)
@ -112,11 +108,6 @@ namespace WZ
return;
}
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Native, adUnitId))
{
return;
}
AdsActionEvents.TrackAdLoaded(PlatformType.Admob,
ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo()?.AdSourceName ?? "",
adUnitId,
@ -147,7 +138,8 @@ namespace WZ
ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceInstanceId ?? "",
adValue,
AdsType.Native,
adUnitId);
adUnitId,
AdmobAdsManager.Instance._naType);
};
ad.OnAdImpressionRecorded += () => { LoggerUtils.Debug("[Admob] Native ad recorded an impression."); };
@ -159,7 +151,10 @@ namespace WZ
adUnitId,
AdsType.Native,
"",
AdmobUtils.GetNativeEcpm(ad));
AdmobUtils.GetNativeEcpm(ad),
AdPlayCountManager.GetAdsActionCount(AdsType.Native,AdmobAdsManager.Instance._naPos+AdPlayCountManager.POS_SUFFIX),
AdmobAdsManager.Instance._naType
);
LoggerUtils.Debug("[Admob] Native ad was clicked.");
};
@ -167,12 +162,15 @@ namespace WZ
ad.OnAdFullScreenContentClosed += () =>
{
AdsActionEvents.TrackAdClicked(PlatformType.Admob,
AdsActionEvents.TrackAdClosed(PlatformType.Admob,
ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo()?.AdSourceName ?? "",
adUnitId,
AdsType.Native,
"",
AdmobUtils.GetNativeEcpm(ad));
AdmobUtils.GetNativeEcpm(ad),
AdPlayCountManager.GetAdsActionCount(AdsType.Native,AdmobAdsManager.Instance._naPos + AdPlayCountManager.POS_SUFFIX)
);
LoggerUtils.Debug("[Admob] Native ad full screen content closed.");
};
@ -213,11 +211,6 @@ namespace WZ
// 显示特定广告位的广告
public void ShowAd(NativeAdPosition position, string adUnitId, NativeOverlayAd lastAd = null, NativeOverlayAd lastShowAd = null)
{
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Native, adUnitId))
{
return;
}
LoggerUtils.Debug($"[Admob] Native ad ShowAd start {adUnitId} , {position}");
if (_nativeAds.TryGetValue(adUnitId, out var ad))

View File

@ -45,6 +45,7 @@ namespace WZ
RewardedAd.Load(adUnitId, new AdRequest(), (RewardedAd ad, LoadAdError error) =>
{
AdsActionEvents.TrackAdStartLoad(PlatformType.Admob, AdsType.Rewarded,adUnitId);
if (error != null || ad == null)
{
LoggerUtils.Debug("[Admob] rewarded ad failed to load an ad with error : " + error);
@ -55,11 +56,6 @@ namespace WZ
LoggerUtils.Debug("[Admob] rewarded ad loaded with response : " + ad.GetResponseInfo().ToString());
LoggerUtils.Debug("[Admob] rewarded ad revenue : " +AdmobUtils.GetRewardedAdEcpm(ad));
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Rewarded, adUnitId))
{
return;
}
_rewardedAds[adUnitId] = ad;
_adRevenueCache[adUnitId] = AdmobUtils.GetRewardedAdEcpm(ad);
@ -81,7 +77,8 @@ namespace WZ
ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo()?.AdSourceInstanceId ?? "",
adValue,
AdsType.Rewarded,
adUnitId);
adUnitId,
NativeType.None);
};
ad.OnAdImpressionRecorded += () =>
@ -114,6 +111,13 @@ namespace WZ
{
LoggerUtils.Debug("[Admob] rewarded ad failed to open full screen content with error : " + error);
onAdError?.Invoke(adUnitId, error.GetCode(), error.GetMessage());
AdsActionEvents.TrackAdFailToShow(AdsType.Rewarded,AdmobAdsManager.Instance._rvPos,PlatformType.Admob.ToString(),ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceName ??"",
adUnitId,
AdPlayCountManager.GetAdsActionCount(AdsType.Rewarded,AdmobAdsManager.Instance._rvPos+AdPlayCountManager.POS_SUFFIX),
NativeType.None,
error.GetCode().ToString(),
error.GetMessage()
);
};
});
}
@ -141,10 +145,6 @@ namespace WZ
// 检查特定广告位是否可用
private bool IsAdAvailable(string adUnitId)
{
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Rewarded, adUnitId))
{
return false;
}
return _rewardedAds.TryGetValue(adUnitId, out var ad) && ad.CanShowAd();
}

View File

@ -46,6 +46,7 @@ namespace WZ
AppOpenAd.Load(adUnitId, new AdRequest(), (AppOpenAd ad, LoadAdError error) =>
{
AdsActionEvents.TrackAdStartLoad(PlatformType.Admob,AdsType.Splash,adUnitId);
if (error != null || ad == null)
{
LoggerUtils.Debug("[Admob] appopen ad failed to load an ad with error : " + error);
@ -74,7 +75,8 @@ namespace WZ
ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo()?.AdSourceInstanceId ?? "",
adValue,
AdsType.Splash,
adUnitId);
adUnitId,
NativeType.None);
onAdPaid?.Invoke(adValue);
};
@ -109,6 +111,13 @@ namespace WZ
{
LoggerUtils.Debug("[Admob] appopen ad failed to open full screen content with error : " + error);
onAdError?.Invoke(adUnitId, error.GetCode(), error.GetMessage());
AdsActionEvents.TrackAdFailToShow(AdsType.Splash,"Splash",PlatformType.Admob.ToString(),ad?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceName ??"",
adUnitId,
AdPlayCountManager.GetAdsActionCount(AdsType.Splash,"Splash"+AdPlayCountManager.POS_SUFFIX),
NativeType.None,
error.GetCode().ToString(),
error.GetMessage()
);
};
});
}

View File

@ -90,7 +90,8 @@ namespace WZ
bannerAds?.GetResponseInfo()?.GetLoadedAdapterResponseInfo().AdSourceInstanceId ?? "",
adValue,
AdsType.Banner,
adUnitId);
adUnitId,
NativeType.None);
});
bannerAds.OnAdClicked += () =>
@ -100,20 +101,19 @@ namespace WZ
adUnitId,
AdsType.Banner,
"",
AdmobUtils.GetBannerEcpm(bannerAds));
AdmobUtils.GetBannerEcpm(bannerAds),
AdPlayCountManager.GetAdsActionCount(AdsType.Banner,"Banner"+AdPlayCountManager.POS_SUFFIX),
NativeType.None);
};
LoadAd(adUnitId);
}
public void LoadAd(string adUnitId)
{
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Banner, adUnitId))
{
return;
}
if (_bannerAds.TryGetValue(adUnitId, out var ad))
{
ad.LoadAd(new AdRequest());
AdsActionEvents.TrackAdStartLoad(PlatformType.Admob,AdsType.Banner,adUnitId);
}
}
@ -134,10 +134,6 @@ namespace WZ
// 显示特定广告位的广告
private void ShowAd(string adUnitId,BannerAlignType bannerAlignType)
{
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Banner, adUnitId))
{
return;
}
if (_bannerAds.TryGetValue(adUnitId, out var ad))
{
ad.SetPosition(bannerAlignType == BannerAlignType.CenterBottom ? AdPosition.Bottom : AdPosition.Top);

View File

@ -90,7 +90,8 @@ namespace WZ
bannerAds?.GetResponseInfo()?.GetLoadedAdapterResponseInfo()?.AdSourceInstanceId ?? "",
adValue,
AdsType.Banner,
adUnitId);
adUnitId,
NativeType.None);
});
bannerAds.OnAdClicked += () =>
@ -100,22 +101,22 @@ namespace WZ
adUnitId,
AdsType.Banner,
"",
AdmobUtils.GetBannerEcpm(bannerAds));
AdmobUtils.GetBannerEcpm(bannerAds),
AdPlayCountManager.GetAdsActionCount(AdsType.Banner,"Banner"+AdPlayCountManager.POS_SUFFIX),
NativeType.None
);
};
LoadAd(adUnitId);
}
public void LoadAd(string adUnitId)
{
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Banner, adUnitId, BannerType.Collapsible))
{
return;
}
if (_bannerAds.TryGetValue(adUnitId, out var ad))
{
var adRequest = new AdRequest();
adRequest.Extras.Add("collapsible", "bottom");
ad.LoadAd(adRequest);
AdsActionEvents.TrackAdStartLoad(PlatformType.Admob,AdsType.Banner,adUnitId);
}
}
@ -139,11 +140,6 @@ namespace WZ
// 显示特定广告位的广告
private void ShowAd(string adUnitId,BannerAlignType bannerAlignType)
{
if (!AdmobAdsManager.Instance.FindAdsID(AdsType.Banner, adUnitId,BannerType.Collapsible))
{
return;
}
if (_bannerAds.TryGetValue(adUnitId, out var ad))
{
ad.SetPosition(bannerAlignType == BannerAlignType.CenterBottom ? AdPosition.Bottom : AdPosition.Top);

View File

@ -37,6 +37,8 @@ namespace WZ
LoggerUtils.Debug("ShowRewardAd _adPos:"+_adPos+" ready:"+IsRewardAdReady(_platformType));
otherAdsOnShow = true;
AdPlayCountManager.IncrementAdsActionCount(AdsType.Rewarded,AdPlayCountManager.PLAY_COUNT_SUFFIX);
AdPlayCountManager.IncrementAdsActionCount(AdsType.Rewarded,_adPos+AdPlayCountManager.POS_SUFFIX);
AdjustTrackEvent.Instance.TrackEventName("RV_Show", new Dictionary<string, object>());
if(_platformType == PlatformType.Admob)
{
@ -67,6 +69,7 @@ namespace WZ
{
AdsSDKManager.Instance.otherAdsOnShow = true;
AdPlayCountManager.IncrementAdsActionCount(AdsType.Interstitial,AdPlayCountManager.PLAY_COUNT_SUFFIX);
AdPlayCountManager.IncrementAdsActionCount(AdsType.Interstitial,_adPos+AdPlayCountManager.POS_SUFFIX);
AdjustTrackEvent.Instance.TrackEventName("IV_Show", new Dictionary<string, object>());
if(_platformType == PlatformType.Admob)
@ -98,6 +101,7 @@ namespace WZ
{
AdPlayCountManager.IncrementAdsActionCount(AdsType.Banner,AdPlayCountManager.PLAY_COUNT_SUFFIX);
AdPlayCountManager.IncrementAdsActionCount(AdsType.Rewarded, "Banner"+AdPlayCountManager.POS_SUFFIX);
AdjustTrackEvent.Instance.TrackEventName("Banner_Show", new Dictionary<string, object>());
if (platformType == PlatformType.Admob)
{
@ -122,11 +126,12 @@ namespace WZ
return AdmobAdsManager.Instance.IsNativeAvailable(adUnitId);
}
public void ShowNativeAd(string _adPos, string adUnitId, NativeAdPosition position)
public void ShowNativeAd(string _adPos, string adUnitId, NativeAdPosition position,NativeType nativeType)
{
AdmobAdsManager.Instance.DisplayNative(_adPos, adUnitId, position);
AdmobAdsManager.Instance.DisplayNative(_adPos, adUnitId, position, nativeType);
AdjustTrackEvent.Instance.TrackEventName("NA_Show", new Dictionary<string, object>());
AdPlayCountManager.IncrementAdsActionCount(AdsType.Native,AdPlayCountManager.PLAY_COUNT_SUFFIX);
AdPlayCountManager.IncrementAdsActionCount(AdsType.Native,_adPos+AdPlayCountManager.POS_SUFFIX);
}
public void RemoveNativeAd(string adUnitId)
@ -155,6 +160,7 @@ namespace WZ
{
AdjustTrackEvent.Instance.TrackEventName("SP_Show", new Dictionary<string, object>());
AdPlayCountManager.IncrementAdsActionCount(AdsType.Splash,AdPlayCountManager.PLAY_COUNT_SUFFIX);
AdPlayCountManager.IncrementAdsActionCount(AdsType.Splash,"Splash"+AdPlayCountManager.POS_SUFFIX);
AdmobAdsManager.Instance.DisplaySplash();
}

View File

@ -84,7 +84,7 @@ namespace WZ
LoggerUtils.Debug(" [AppOpen] 热启动 开关:" + hotSplashSwitch);
if (!hotSplashSwitch)
{
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Hot", AdsShowFailType.RuleLimit);
//AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Hot", AdsShowFailType.RuleLimit);
return;
}
@ -94,14 +94,14 @@ namespace WZ
LoggerUtils.Debug(" [AppOpen] 后台运行时间差值:" + resultTime + " 在线参数值:" + onlineTime);
if (resultTime < onlineTime)
{
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Hot", AdsShowFailType.RuleLimit);
//AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Hot", AdsShowFailType.RuleLimit);
return;
}
if (!AdsSDKManager.Instance.IsSplashAvailable())
{
LoggerUtils.Debug(" [AppOpen] 热启动 广告是否准备好:");
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Hot", AdsShowFailType.NoFill);
//AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Hot", AdsShowFailType.NoFill);
AdsSDKManager.Instance.LoadSplashAd();
return;
}
@ -128,7 +128,7 @@ namespace WZ
{
// 新用户首次不展示
LoggerUtils.Debug(" [AppOpen] 冷启动 新用户首次启动 不展示 :"+OnSplashAdCloseCallback);
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Cold", AdsShowFailType.RuleLimit);
//AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Cold", AdsShowFailType.RuleLimit);
OnSplashAdCloseCallback?.Invoke();
}
else
@ -140,7 +140,7 @@ namespace WZ
}
else
{
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Cold", AdsShowFailType.NoFill);
//AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Cold", AdsShowFailType.NoFill);
OnSplashAdCloseCallback?.Invoke();
AdsSDKManager.Instance.LoadSplashAd();
LoggerUtils.Debug(" [AppOpen] 冷启动广告未准备好");
@ -159,14 +159,14 @@ namespace WZ
}
else
{
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Cold", AdsShowFailType.NoFill);
//AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Cold", AdsShowFailType.NoFill);
OnSplashAdCloseCallback?.Invoke();
AdsSDKManager.Instance.LoadSplashAd();
}
}
else
{
AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Cold", AdsShowFailType.RuleLimit);
//AdsActionEvents.TrackAdFailToShow(AdsType.Splash, "Cold", AdsShowFailType.RuleLimit);
OnSplashAdCloseCallback?.Invoke();
}
}

View File

@ -0,0 +1,17 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace WZ
{
public enum NativeType
{
None = 0,
Small,
Medium,
FakeNative,
Collapsible,
Full
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 422a52b113d314e19b7f8e894cdb72f3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -20,66 +20,14 @@ namespace WZ
{ "ad_format", adFormat.ToString()},
{ "value", value}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
RushSDKManager.Instance.LogEvent(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackAdmobValue"+JsonMapper.ToJson(dic));
}
public static void TrackKwaiWaterfallRequest(AdsType adsType, string requestId, int waterfallRequestNumber, int parallelRequests)
{
var eventName = "kwai_waterfall_request";
var dic = new Dictionary<string, object> {
{ "request_id", requestId},
{ "waterfall_request_number", waterfallRequestNumber},
{ "parallel_requests", parallelRequests},
{ "ad_type", adsType.ToString()}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackKwaiWaterfallRequest" + JsonMapper.ToJson(dic));
}
public static void TrackKwaiAdunitRequest(AdsType adsType, string requestId, string unitId,
float floorPrice, int waterfallRequestNumber, int unitRequestNumber, int floorNumber)
{
var eventName = "kwai_adunit_request";
var dic = new Dictionary<string, object> {
{ "request_id", requestId},
{ "unit_id", unitId},
{ "floor_price", floorPrice},
{ "waterfall_request_number", waterfallRequestNumber},
{ "unit_request_number", unitRequestNumber},
{ "floor_number", floorNumber},
{ "ad_type", adsType.ToString()}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackKwaiAdunitRequest" + JsonMapper.ToJson(dic));
}
public static void TrackKwiWaterfallFill(AdsType adsType, string requestId, string unitId,
float floorPrice, int waterfallRequestNumber, int unitRequestNumber, int floorNumber,double value)
{
var eventName = "kwai_waterfall_fill";
var dic = new Dictionary<string, object> {
{ "request_id", requestId},
{ "unit_id", unitId},
{ "floor_price", floorPrice},
{ "waterfall_request_number", waterfallRequestNumber},
{ "unit_request_number", unitRequestNumber},
{ "floor_number", floorNumber},
{ "ad_type", adsType.ToString() },
{ "value",value}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackKwaiWaterfallFill" + JsonMapper.ToJson(dic));
}
public static void TrackAdClicked(PlatformType adPlatform, string adSource, string adUnitName, AdsType adFormat, string posotion, double value)
public static void TrackAdClicked(PlatformType adPlatform, string adSource, string adUnitName,
AdsType adFormat, string posotion, double value,
int positionNumber,NativeType nativeType)
{
AdPlayCountManager.IncrementAdsActionCount(adFormat, AdPlayCountManager.CLICK_COUNT_SUFFIX);
var eventName = "ad_click";
@ -91,14 +39,16 @@ namespace WZ
{ "position", posotion},
{ "value", value},
{ "currency","USD"},
{ "number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.CLICK_COUNT_SUFFIX)}
{ "format_number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.CLICK_COUNT_SUFFIX)},
{ "position_number", positionNumber},
{ "native_type", nativeType},
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
RushSDKManager.Instance.LogEvent(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackAdClicked" + JsonMapper.ToJson(dic));
}
public static void TrackAdClosed(PlatformType adPlatform, string adSource, string adUnitName, AdsType adFormat, string posotion, double value)
public static void TrackAdClosed(PlatformType adPlatform, string adSource, string adUnitName, AdsType adFormat, string posotion, double value,int positionNumber)
{
AdsSDKManager.Instance.otherAdsOnShow = false;
AdPlayCountManager.IncrementAdsActionCount(adFormat, AdPlayCountManager.CLOSE_COUNT_SUFFIX);
@ -111,24 +61,26 @@ namespace WZ
{ "position", posotion},
{ "value", value},
{ "currency","USD"},
{ "number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.CLOSE_COUNT_SUFFIX)}
{ "format_number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.CLOSE_COUNT_SUFFIX)},
{ "position_number", positionNumber},
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
RushSDKManager.Instance.LogEvent(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackAdClosed"+JsonMapper.ToJson(dic));
}
public static void TrackAdStartLoad(PlatformType adPlatform, AdsType adFormat)
public static void TrackAdStartLoad(PlatformType adPlatform, AdsType adFormat,string adUnit)
{
AdPlayCountManager.IncrementAdsActionCount(adFormat, AdPlayCountManager.STARTLOAD_COUNT_SUFFIX);
var eventName = "ad_start_load";
var dic = new Dictionary<string, object> {
{ "ad_platform", adPlatform.ToString()},
{ "ad_unit_name", adUnit},
{ "ad_format", adFormat.ToString()},
{ "number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.STARTLOAD_COUNT_SUFFIX)}
{ "format_number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.STARTLOAD_COUNT_SUFFIX)}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
RushSDKManager.Instance.LogEvent(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackAdStartLoad"+JsonMapper.ToJson(dic));
}
@ -142,10 +94,9 @@ namespace WZ
{ "ad_unit_name", adUnitName},
{ "ad_format", adFormat.ToString()},
{ "pass_time", (int)Math.Ceiling(loadTime)},
{ "number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.LOADED_COUNT_SUFFIX)}
{ "format_number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.LOADED_COUNT_SUFFIX)}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
RushSDKManager.Instance.LogEvent(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackAdLoaded"+JsonMapper.ToJson(dic));
}
public static void TrackAdFailToLoad(PlatformType adPlatform, string adSource, string adUnitName, AdsType adFormat, double loadTime, string reason)
@ -161,24 +112,33 @@ namespace WZ
{ "reason", reason},
{ "number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.LOADFAIL_COUNT_SUFFIX)}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
RushSDKManager.Instance.LogEvent(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackAdFailToLoad"+JsonMapper.ToJson(dic));
}
public static void TrackAdFailToShow(AdsType adFormat, string pos, AdsShowFailType adShowFailType)
public static void TrackAdFailToShow(AdsType adFormat, string pos,
string adPlatform, string adSource, string adUnitName,
int positionNumber,NativeType nativeType, string errorCode,
string errorMsg)
{
AdPlayCountManager.IncrementAdsActionCount(adFormat, AdPlayCountManager.SHOWFAIL_COUNT_SUFFIX);
AdsSDKManager.Instance.otherAdsOnShow = false;
var eventName = "ad_show_fail";
var dic = new Dictionary<string, object> {
{ "ad_format", adFormat.ToString()},
{ "reason", adShowFailType.ToString()},
{ "position", pos},
{ "number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.SHOWFAIL_COUNT_SUFFIX)}
{ "format_number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.SHOWFAIL_COUNT_SUFFIX)},
{ "ad_platform", adPlatform},
{ "ad_source", adSource},
{ "ad_unit_name", adUnitName},
{ "position_number", positionNumber},
{ "native_type", nativeType},
{ "errorCode ", errorCode},
{ "errorMessage", errorMsg}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
RushSDKManager.Instance.LogEvent(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackAdFailToShow"+JsonMapper.ToJson(dic));
}
@ -191,10 +151,10 @@ namespace WZ
{ "position", pos},
{ "backgroundTime", backgroundTime},
{ "splashSwitch",splashSwitch},
{ "number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.ADPOSITION_COUNT_SUFFIX)}
{ "position_number",AdPlayCountManager.GetAdsActionCount(adFormat,AdPlayCountManager.ADPOSITION_COUNT_SUFFIX)}
};
FireBaseAnalyticsManager.Instance.LogEvent(eventName, dic);
ShuShuEvent.Instance.Track(eventName, dic);
RushSDKManager.Instance.LogEvent(eventName, dic);
LoggerUtils.Debug("[actionevent] TrackAdPosition"+JsonMapper.ToJson(dic));
}
}

View File

@ -70,7 +70,7 @@ namespace WZ
ATRewardedAutoVideo.Instance.client.onRewardEvent += OnAdRewardEvent;
ATRewardedAutoVideo.Instance.addAutoLoadAdPlacementID(new string[] { _topon_rewarded_units });
AdsActionEvents.TrackAdStartLoad(Platfrom, AdsType.Rewarded);
AdsActionEvents.TrackAdStartLoad(Platfrom, AdsType.Rewarded,_topon_rewarded_units);
}
public void LoadRewarded() { }
@ -103,7 +103,7 @@ namespace WZ
ATInterstitialAutoAd.Instance.client.onAdShowFailureEvent += OnAdVideoFailureEvent;
ATInterstitialAutoAd.Instance.client.onAdClickEvent += OnAdVideoClickedEvent;
ATInterstitialAutoAd.Instance.addAutoLoadAdPlacementID(new string[] { _topon_interstitial_units });
AdsActionEvents.TrackAdStartLoad(Platfrom, AdsType.Interstitial);
AdsActionEvents.TrackAdStartLoad(Platfrom, AdsType.Interstitial,_topon_interstitial_units);
}
public void LoadInterstitial() { }
@ -132,6 +132,8 @@ namespace WZ
ATBannerAd.Instance.client.onAdImpressEvent += OnAdVideoStartEvent;
ATBannerAd.Instance.client.onAdAutoRefreshEvent += OnAdVideoStartEvent;
LoadBannerAd();
AdsActionEvents.TrackAdStartLoad(Platfrom, AdsType.Banner,_topon_banner_units);
}
public void LoadBannerAd()
{
@ -255,6 +257,18 @@ namespace WZ
_ivCloseCallback = null;
}
}, "");
var posNum = AdPlayCountManager.GetAdsActionCount(erg.placementId.Equals(_topon_rewarded_units)? AdsType.Rewarded : AdsType.Interstitial,erg.placementId.Equals(_topon_rewarded_units)? _rvPos : _ivPos + AdPlayCountManager.POS_SUFFIX);
AdsActionEvents.TrackAdFailToShow(erg.placementId.Equals(_topon_rewarded_units)? AdsType.Rewarded : AdsType.Interstitial,
erg.placementId.Equals(_topon_rewarded_units)? _rvPos : _ivPos,
PlatformType.Topon.ToString(),
ClientName + "_" + erg.callbackInfo.network_firm_id,
erg.callbackInfo.adunit_id,
posNum,
NativeType.None,erg.errorCode,
erg.errorMessage
);
}
private void OnAdRewardEvent(object sender, ATAdEventArgs erg)
@ -271,7 +285,8 @@ namespace WZ
erg.callbackInfo.adunit_id,
erg.placementId.Equals(_topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,
erg.placementId.Equals(_topon_rewarded_units) ? _rvPos : _ivPos,
erg.callbackInfo.publisher_revenue);
erg.callbackInfo.publisher_revenue,
AdPlayCountManager.GetAdsActionCount(erg.placementId.Equals(_topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,erg.placementId.Equals(_topon_rewarded_units) ? _rvPos : _ivPos + AdPlayCountManager.POS_SUFFIX));
ThreadUtils.QueueOnMainThread(pObj =>
{
@ -298,7 +313,9 @@ namespace WZ
erg.callbackInfo.adunit_id,
erg.placementId.Equals(_topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,
erg.placementId.Equals(_topon_rewarded_units) ? _rvPos : _ivPos,
erg.callbackInfo.publisher_revenue);
erg.callbackInfo.publisher_revenue,
AdPlayCountManager.GetAdsActionCount(erg.placementId.Equals(_topon_rewarded_units) ? AdsType.Rewarded : AdsType.Interstitial,erg.placementId.Equals(_topon_rewarded_units) ? _rvPos : _ivPos+AdPlayCountManager.POS_SUFFIX),
NativeType.None);
ThreadUtils.QueueOnMainThread(pObj =>
{
@ -330,7 +347,7 @@ namespace WZ
return false;
}
public void DisplayNative(string _adPos, string adUnitId, NativeAdPosition position)
public void DisplayNative(string _adPos, string adUnitId, NativeAdPosition position, NativeType nativeType)
{
}
@ -384,13 +401,20 @@ namespace WZ
erg.placementId.Equals(_topon_rewarded_units) ? _rvPos : _ivPos,
AdPlayCountManager.GetAdsActionCount(adsType,AdPlayCountManager.PLAY_COUNT_SUFFIX));
var positionNumKey = _pos;
if(string.IsNullOrEmpty(positionNumKey)) positionNumKey = "Banner";
ShuShuEvent.Instance.OnAdRevenueEvent(ClientName,
ClientName + "_" + erg.callbackInfo.network_firm_id,
erg.callbackInfo.adunit_id,
adsType.ToString(),
adsType,
erg.callbackInfo.publisher_revenue,
_pos,
AdPlayCountManager.GetAdsActionCount(adsType,AdPlayCountManager.PLAY_COUNT_SUFFIX));
AdPlayCountManager.GetAdsActionCount(adsType,AdPlayCountManager.PLAY_COUNT_SUFFIX),
AdPlayCountManager.GetAdsActionCount(adsType,positionNumKey+AdPlayCountManager.POS_SUFFIX),
NativeType.None
);
}
#endregion

View File

@ -7,6 +7,7 @@ namespace WZ
{
public class AdPlayCountManager
{
public const string POS_SUFFIX = "_POS_COUNT";
public const string PLAY_COUNT_SUFFIX = "_PLAY_COUNT";
public const string CLICK_COUNT_SUFFIX = "_CLICK_COUNT";
public const string CLOSE_COUNT_SUFFIX = "_CLOSE_COUNT";