bigo 广告行为事件上报

This commit is contained in:
juncong lee 2025-09-01 15:56:42 +08:00
parent f3fcf57473
commit 47b6bde29e
5 changed files with 60 additions and 43 deletions

8
Assets/EFSDK.meta Normal file
View File

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

View File

@ -4,6 +4,7 @@ using System.Collections.Generic;
using BigoAds.Scripts.Api; using BigoAds.Scripts.Api;
using Script.Common; using Script.Common;
using Script.SDKManager.AdsSDKManager.Constant; using Script.SDKManager.AdsSDKManager.Constant;
using Script.SDKManager.AdsSDKManager.Events.AdsEvents;
using Script.SDKManager.AdsSDKManager.Utils; using Script.SDKManager.AdsSDKManager.Utils;
using Script.Utils; using Script.Utils;
using Unity.VisualScripting; using Unity.VisualScripting;
@ -28,6 +29,9 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
private Action _ivCloseCallback = null; private Action _ivCloseCallback = null;
private Action _rvShowFailedCallback = null; private Action _rvShowFailedCallback = null;
private float _rvStartLoadTime = 0;
private float _ivStartLoadTime = 0;
public void Initialize() public void Initialize()
{ {
bigo_app_id = AdConfigParser.GetBigoAppId(); bigo_app_id = AdConfigParser.GetBigoAppId();
@ -37,33 +41,8 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
BigoAdSdk.OnInitFinish += () => BigoAdSdk.OnInitFinish += () =>
{ {
LoggerUtils.Debug($"[Bigo] sdk init success"); LoggerUtils.Debug($"[Bigo] sdk init success");
if (_rewardedAdUnits.Count > 0) LoadRewarded();
{ LoadInterstitial();
_rewardedAdManager = new BigoRewardedAdManager();
_rewardedAdManager.InitializeAdUnits(
_rewardedAdUnits,
onAdLoaded: OnRewardedAdLoaded,
onAdLoadFailed: OnRewardedAdLoadFailed,
onAdShowed: OnRewardedAdShowed,
onAdDismissed: OnRewardedAdDismissed,
onAdError: OnRewardedAdError,
onAdClicked: OnRewardedAdClicked
);
}
if (_interstitialAdUnits.Count > 0)
{
_interstitialAdManager = new BigoInterstitialAdManager();
_interstitialAdManager.InitializeAdUnits(
_interstitialAdUnits,
onAdLoaded: OnInterstitialAdLoaded,
onAdLoadFailed: OnInterstitialAdLoadFailed,
onAdShowed: OnInterstitialAdShowed,
onAdDismissed: OnInterstitialAdDismissed,
onAdError: OnInterstitialAdError,
onAdClicked: OnInterstitialAdClicked
);
}
_initialized = true; _initialized = true;
}; };
@ -83,7 +62,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
private void OnRewardedAdLoadFailed(string adUnitId, int code, string msg) private void OnRewardedAdLoadFailed(string adUnitId, int code, string msg)
{ {
AdsActionEvents.TrackAdFailToLoad(Platfrom,ClientName, adUnitId, AdsType.Rewarded,Time.realtimeSinceStartup - _rvStartLoadTime, msg);
} }
private void OnRewardedAdShowed(string adUnitId) private void OnRewardedAdShowed(string adUnitId)
@ -92,6 +71,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
} }
private void OnRewardedAdDismissed(string adUnitId) private void OnRewardedAdDismissed(string adUnitId)
{ {
AdsActionEvents.TrackAdClosed(Platfrom,ClientName, adUnitId, AdsType.Rewarded, _rvPos, GetRewardedRevenue());
_rvCloseCallback?.Invoke(true); _rvCloseCallback?.Invoke(true);
_rvCloseCallback = null; _rvCloseCallback = null;
LoadRewarded(); LoadRewarded();
@ -100,22 +80,35 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
private void OnRewardedAdError(string adUnitId, int code, string msg) private void OnRewardedAdError(string adUnitId, int code, string msg)
{ {
AdsActionEvents.TrackAdFailToShow(Platfrom, AdsType.Rewarded, msg, _rvPos);
_rvShowFailedCallback?.Invoke(); _rvShowFailedCallback?.Invoke();
_rvShowFailedCallback = null; _rvShowFailedCallback = null;
LoadRewarded(); LoadRewarded();
} }
private void OnRewardedAdClicked() private void OnRewardedAdClicked(string adUnitId)
{ {
AdsActionEvents.TrackAdClicked(Platfrom,ClientName,adUnitId,AdsType.Rewarded,_rvPos,GetRewardedRevenue());
} }
public void LoadRewarded() public void LoadRewarded()
{ {
_rewardedAdManager?.Destroy(); _rewardedAdManager?.Destroy();
foreach (var adUnitId in _rewardedAdUnits) if (_rewardedAdUnits.Count > 0)
{ {
_rewardedAdManager.LoadAd(adUnitId); _rewardedAdManager = new BigoRewardedAdManager();
_rewardedAdManager.InitializeAdUnits(
_rewardedAdUnits,
onAdLoaded: OnRewardedAdLoaded,
onAdLoadFailed: OnRewardedAdLoadFailed,
onAdShowed: OnRewardedAdShowed,
onAdDismissed: OnRewardedAdDismissed,
onAdError: OnRewardedAdError,
onAdClicked: OnRewardedAdClicked
);
_rvStartLoadTime = Time.realtimeSinceStartup;
// todo 暂时支持一个广告位,后续支持多个广告位
AdsActionEvents.TrackAdStartLoad(Platfrom,ClientName,_rewardedAdUnits[0], AdsType.Rewarded);
} }
} }
@ -146,7 +139,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
private void OnInterstitialAdLoadFailed(string adUnitId, int code, string msg) private void OnInterstitialAdLoadFailed(string adUnitId, int code, string msg)
{ {
AdsActionEvents.TrackAdFailToLoad(Platfrom,ClientName, adUnitId, AdsType.Interstitial,Time.realtimeSinceStartup - _ivStartLoadTime, msg);
} }
private void OnInterstitialAdShowed(string adUnitId) private void OnInterstitialAdShowed(string adUnitId)
@ -155,6 +148,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
} }
private void OnInterstitialAdDismissed(string adUnitId) private void OnInterstitialAdDismissed(string adUnitId)
{ {
AdsActionEvents.TrackAdClosed(Platfrom,ClientName, adUnitId, AdsType.Interstitial, "", GetInterstitialRevenue());
_ivCloseCallback?.Invoke(); _ivCloseCallback?.Invoke();
_ivCloseCallback = null; _ivCloseCallback = null;
LoadInterstitial(); LoadInterstitial();
@ -162,23 +156,36 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
private void OnInterstitialAdError(string adUnitId, int code, string msg) private void OnInterstitialAdError(string adUnitId, int code, string msg)
{ {
AdsActionEvents.TrackAdFailToShow(Platfrom, AdsType.Interstitial, msg, "");
_ivCloseCallback?.Invoke(); _ivCloseCallback?.Invoke();
_ivCloseCallback = null; _ivCloseCallback = null;
LoadInterstitial(); LoadInterstitial();
} }
private void OnInterstitialAdClicked() private void OnInterstitialAdClicked(string adUnitId)
{ {
AdsActionEvents.TrackAdClicked(Platfrom,ClientName, adUnitId, AdsType.Interstitial, "", GetInterstitialRevenue());
} }
public void LoadInterstitial() public void LoadInterstitial()
{ {
_interstitialAdManager?.Destroy(); _interstitialAdManager?.Destroy();
foreach (var adUnitId in _interstitialAdUnits) if (_interstitialAdUnits.Count > 0)
{ {
_interstitialAdManager.LoadAd(adUnitId); _interstitialAdManager = new BigoInterstitialAdManager();
_interstitialAdManager.InitializeAdUnits(
_interstitialAdUnits,
onAdLoaded: OnInterstitialAdLoaded,
onAdLoadFailed: OnInterstitialAdLoadFailed,
onAdShowed: OnInterstitialAdShowed,
onAdDismissed: OnInterstitialAdDismissed,
onAdError: OnInterstitialAdError,
onAdClicked: OnInterstitialAdClicked
);
_ivStartLoadTime = Time.realtimeSinceStartup;
// todo 暂时支持一个广告位,后续支持多个广告位
AdsActionEvents.TrackAdStartLoad(Platfrom,ClientName,_interstitialAdUnits[0], AdsType.Interstitial);
} }
} }
@ -245,6 +252,8 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
type.ToString(), type.ToString(),
revenue, type == AdsType.Rewarded ? _rvPos : "", revenue, type == AdsType.Rewarded ? _rvPos : "",
AdPlayCountManager.GetAdPlayCount(type)); AdPlayCountManager.GetAdPlayCount(type));
AdsActionEvents.TrackAdImpression(Platfrom,ClientName,placement,type,type == AdsType.Rewarded ? _rvPos : "",revenue);
} }
#endregion #endregion
} }

View File

@ -23,7 +23,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
Action<string> onAdShowed = null, Action<string> onAdShowed = null,
Action<string> onAdDismissed = null, Action<string> onAdDismissed = null,
Action<string, int, string> onAdError = null, Action<string, int, string> onAdError = null,
Action onAdClicked = null) Action<string> onAdClicked = null)
{ {
foreach (var adUnitId in adUnitIds) foreach (var adUnitId in adUnitIds)
{ {
@ -36,7 +36,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
Action<string> onAdShowed, Action<string> onAdShowed,
Action<string> onAdDismissed, Action<string> onAdDismissed,
Action<string, int, string> onAdError, Action<string, int, string> onAdError,
Action onAdClicked) Action<string> onAdClicked)
{ {
if (_interstitialAds.ContainsKey(adUnitId)) if (_interstitialAds.ContainsKey(adUnitId))
{ {

View File

@ -22,7 +22,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
Action<string> onAdShowed = null, Action<string> onAdShowed = null,
Action<string> onAdDismissed = null, Action<string> onAdDismissed = null,
Action<string, int, string> onAdError = null, Action<string, int, string> onAdError = null,
Action onAdClicked = null) Action<string> onAdClicked = null)
{ {
foreach (var adUnitId in adUnitIds) foreach (var adUnitId in adUnitIds)
{ {
@ -35,7 +35,7 @@ namespace Script.SDKManager.AdsSDKManager.BigoAdsManager
Action<string> onAdShowed, Action<string> onAdShowed,
Action<string> onAdDismissed, Action<string> onAdDismissed,
Action<string, int, string> onAdError, Action<string, int, string> onAdError,
Action onAdClicked) Action<string> onAdClicked)
{ {
if (_rewardedAds.ContainsKey(adUnitId)) if (_rewardedAds.ContainsKey(adUnitId))
{ {

View File

@ -210,7 +210,7 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
AdsKeyEvents.Instance.LogAdFPUEvents(AdsType.Interstitial); AdsKeyEvents.Instance.LogAdFPUEvents(AdsType.Interstitial);
_interAdInfo = adInfo; _interAdInfo = adInfo;
_interRetryAttempt = 0; _interRetryAttempt = 0;
AdsActionEvents.TrackAdLoaded(Platfrom, adInfo.NetworkName, adInfo.AdUnitIdentifier, AdsType.Interstitial, Time.realtimeSinceStartup - _rvStartLoadTime); AdsActionEvents.TrackAdLoaded(Platfrom, adInfo.NetworkName, adInfo.AdUnitIdentifier, AdsType.Interstitial, Time.realtimeSinceStartup - _ivStartLoadTime);
} }
@ -220,7 +220,7 @@ namespace Script.SDKManager.AdsSDKManager.MaxAdsManager
_interRetryAttempt++; _interRetryAttempt++;
double retryDelay = Math.Pow(2, Math.Min(6, _interRetryAttempt)); double retryDelay = Math.Pow(2, Math.Min(6, _interRetryAttempt));
TimerUtils.DelayExecute((float)retryDelay, LoadInterstitial); TimerUtils.DelayExecute((float)retryDelay, LoadInterstitial);
AdsActionEvents.TrackAdFailToLoad(Platfrom, "","",AdsType.Interstitial,Time.realtimeSinceStartup - _rvStartLoadTime,errorInfo.Message); AdsActionEvents.TrackAdFailToLoad(Platfrom, "","",AdsType.Interstitial,Time.realtimeSinceStartup - _ivStartLoadTime,errorInfo.Message);
} }
private void OnInterstitialAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo arg3) private void OnInterstitialAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo arg3)