kwai广告行为事件上报

This commit is contained in:
juncong lee 2025-09-15 19:06:55 +08:00
parent 3549e77193
commit 08be1d5f2f
5 changed files with 61 additions and 22 deletions

View File

@ -44,7 +44,7 @@ namespace WZ
} }
public static void TrackKwiWaterfallFill(AdsType adsType, string requestId, string unitId, public static void TrackKwiWaterfallFill(AdsType adsType, string requestId, string unitId,
float floorPrice, int waterfallRequestNumber, int unitRequestNumber, int floorNumber,float value) float floorPrice, int waterfallRequestNumber, int unitRequestNumber, int floorNumber,double value)
{ {
var eventName = "kwai_waterfall_fill"; var eventName = "kwai_waterfall_fill";
var dic = new Dictionary<string, object> { var dic = new Dictionary<string, object> {

View File

@ -24,7 +24,7 @@ namespace WZ
private FloorConfig _successfulFloor = null; private FloorConfig _successfulFloor = null;
public float _ivStartLoadTime = 0; public float _ivStartLoadTime = 0;
private int _waterfallRequestCount = 0; // waterfall请求次数 private int _waterfallRequestCount = 0; // waterfall请求次数
private Dictionary<string, int> _uniteIdRequestCounts = new Dictionary<string, int>(); // 每个unite_id的请求次数 private Dictionary<string, int> _unitIdRequestCounts = new Dictionary<string, int>(); // 每个unite_id的请求次数
private string _currentRequestId; // 当前waterfall请求的ID private string _currentRequestId; // 当前waterfall请求的ID
@ -55,6 +55,7 @@ namespace WZ
_currentFloorIndex = 0; _currentFloorIndex = 0;
_successfulFloor = null; _successfulFloor = null;
_isRequestingFloors = true; _isRequestingFloors = true;
_currentRequestId = GenerateRequestId();
// 增加waterfall请求计数 // 增加waterfall请求计数
_waterfallRequestCount++; _waterfallRequestCount++;
@ -100,21 +101,24 @@ namespace WZ
{ {
RequestFloorAd(floor); RequestFloorAd(floor);
} }
AdsActionEvents.TrackKwaiWaterfallRequest(AdsType.Interstitial,
_currentRequestId,
_waterfallRequestCount,
_ivParallelRequests);
} }
private void RequestFloorAd(FloorConfig floor) private void RequestFloorAd(FloorConfig floor)
{ {
// 更新unite_id请求计数 // 更新unite_id请求计数
if (!_uniteIdRequestCounts.ContainsKey(floor.unite_id)) if (!_unitIdRequestCounts.ContainsKey(floor.unite_id))
{ {
_uniteIdRequestCounts[floor.unite_id] = 0; _unitIdRequestCounts[floor.unite_id] = 0;
} }
_uniteIdRequestCounts[floor.unite_id]++; _unitIdRequestCounts[floor.unite_id]++;
// 获取当前楼层在排序列表中的位置 // 获取当前楼层在排序列表中的位置
int floorIndex = GetFloorIndex(floor.id); int floorIndex = GetFloorIndex(floor.id);
_currentRequestId = GenerateRequestId(); LoggerUtils.Debug($"[kwai] floor inter Requesting floor {floor.id} (index: {floorIndex}), unite_id {floor.unite_id} has been requested {_unitIdRequestCounts[floor.unite_id]} times, request id: {GetUniteIdRequestCount(floor.unite_id)}");
LoggerUtils.Debug($"[kwai] floor inter Requesting floor {floor.id} (index: {floorIndex}), unite_id {floor.unite_id} has been requested {_uniteIdRequestCounts[floor.unite_id]} times, request id: {_currentRequestId}");
IInterstitialAdController controller = KwaiAds.Scripts.Api.KwaiAdsSdk.SDK.getInterstitialAdController(); ; IInterstitialAdController controller = KwaiAds.Scripts.Api.KwaiAdsSdk.SDK.getInterstitialAdController(); ;
_ivFloorAdControllers[floor.id] = controller; _ivFloorAdControllers[floor.id] = controller;
@ -125,16 +129,25 @@ namespace WZ
controller.Load(kwaiInterstitialAdRequest, controller.Load(kwaiInterstitialAdRequest,
new FloorInterAdListener(this, floor), new FloorInterAdListener(this, floor),
new FloorInterAdLoadListener(this, floor)); new FloorInterAdLoadListener(this, floor));
AdsActionEvents.TrackKwaiAdunitRequest(AdsType.Interstitial,
_currentRequestId,
floor.unite_id,
floor.price,
GetWaterfallRequestCount(),
GetUniteIdRequestCount(floor.unite_id),
floorIndex);
} }
// 处理楼层广告加载成功 // 处理楼层广告加载成功
public void OnFloorAdLoaded(FloorConfig floor, IInterstitialAdController controller) public void OnFloorAdLoaded(FloorConfig floor, IInterstitialAdController controller,double revenue)
{ {
if (!_isRequestingFloors || _successfulFloor != null) return; if (!_isRequestingFloors || _successfulFloor != null) return;
// 获取当前楼层在排序列表中的位置 // 获取当前楼层在排序列表中的位置
int floorIndex = GetFloorIndex(floor.id); int floorIndex = GetFloorIndex(floor.id);
LoggerUtils.Debug($"[kwai] floor reward Floor ad loaded: {floor.id} (index: {floorIndex}) with price: {floor.price}, unite_id {floor.unite_id} has been requested {_uniteIdRequestCounts[floor.unite_id]} times"); LoggerUtils.Debug($"[kwai] floor inter ad loaded: {floor.id} (index: {floorIndex}) with price: {floor.price}, unite_id {floor.unite_id} has been requested {GetUniteIdRequestCount(floor.unite_id)} times, revenue: {revenue}, request id: {_currentRequestId}");
// 暂停其他并行请求 // 暂停其他并行请求
@ -149,6 +162,14 @@ namespace WZ
kvp.Value.Destroy(); kvp.Value.Destroy();
} }
} }
AdsActionEvents.TrackKwiWaterfallFill(AdsType.Interstitial,
_currentRequestId,
floor.unite_id,
floor.price,
GetWaterfallRequestCount(),
GetUniteIdRequestCount(floor.unite_id),
floorIndex,
revenue);
} }
// 处理楼层广告加载失败 // 处理楼层广告加载失败
@ -215,7 +236,7 @@ namespace WZ
/// </summary> /// </summary>
public int GetUniteIdRequestCount(string unitId) public int GetUniteIdRequestCount(string unitId)
{ {
return _uniteIdRequestCounts.TryGetValue(unitId, out var time) ? time : 0; return _unitIdRequestCounts.TryGetValue(unitId, out var time) ? time : 0;
} }
/// <summary> /// <summary>

View File

@ -22,7 +22,7 @@ namespace WZ
private FloorConfig _successfulFloor = null; private FloorConfig _successfulFloor = null;
public float _rvStartLoadTime = 0; public float _rvStartLoadTime = 0;
private int _waterfallRequestCount = 0; // waterfall请求次数 private int _waterfallRequestCount = 0; // waterfall请求次数
private Dictionary<string, int> _uniteIdRequestCounts = new Dictionary<string, int>(); // 每个unite_id的请求次数 private Dictionary<string, int> _unitIdRequestCounts = new Dictionary<string, int>(); // 每个unite_id的请求次数
private string _currentRequestId; // 当前waterfall请求的ID private string _currentRequestId; // 当前waterfall请求的ID
public void InitializeWithFloors() public void InitializeWithFloors()
@ -54,7 +54,7 @@ namespace WZ
_currentFloorIndex = 0; _currentFloorIndex = 0;
_successfulFloor = null; _successfulFloor = null;
_isRequestingFloors = true; _isRequestingFloors = true;
_currentRequestId = GenerateRequestId();
// 增加waterfall请求计数 // 增加waterfall请求计数
_waterfallRequestCount++; _waterfallRequestCount++;
@ -67,6 +67,8 @@ namespace WZ
// 开始请求楼层广告 // 开始请求楼层广告
RequestNextFloorBatch(); RequestNextFloorBatch();
AdsActionEvents.TrackKwaiWaterfallRequest(AdsType.Rewarded, _currentRequestId, _waterfallRequestCount, _rvParallelRequests);
} }
private void RequestNextFloorBatch() private void RequestNextFloorBatch()
@ -104,16 +106,16 @@ namespace WZ
private void RequestFloorAd(FloorConfig floor) private void RequestFloorAd(FloorConfig floor)
{ {
// 更新unite_id请求计数 // 更新unite_id请求计数
if (!_uniteIdRequestCounts.ContainsKey(floor.unite_id)) if (!_unitIdRequestCounts.ContainsKey(floor.unite_id))
{ {
_uniteIdRequestCounts[floor.unite_id] = 0; _unitIdRequestCounts[floor.unite_id] = 0;
} }
_uniteIdRequestCounts[floor.unite_id]++; _unitIdRequestCounts[floor.unite_id]++;
// 获取当前楼层在排序列表中的位置 // 获取当前楼层在排序列表中的位置
int floorIndex = GetFloorIndex(floor.id); int floorIndex = GetFloorIndex(floor.id);
_currentRequestId = GenerateRequestId();
LoggerUtils.Debug($"[kwai] floor reward Requesting floor {floor.id} (index: {floorIndex}), unite_id {floor.unite_id} has been requested {_uniteIdRequestCounts[floor.unite_id]} times, request id: {_currentRequestId}"); LoggerUtils.Debug($"[kwai] floor reward Requesting floor {floor.id} (index: {floorIndex}), unite_id {floor.unite_id} has been requested {GetUniteIdRequestCount(floor.unite_id)} times, request id: {_currentRequestId}");
IRewardAdController controller = KwaiAds.Scripts.Api.KwaiAdsSdk.SDK.getRewardAdController(); IRewardAdController controller = KwaiAds.Scripts.Api.KwaiAdsSdk.SDK.getRewardAdController();
_rvFloorAdControllers[floor.id] = controller; _rvFloorAdControllers[floor.id] = controller;
@ -124,16 +126,24 @@ namespace WZ
controller.Load(kwaiRewardAdRequest, controller.Load(kwaiRewardAdRequest,
new FloorRewardAdListener(this, floor), new FloorRewardAdListener(this, floor),
new FloorRewardAdLoadListener(this, floor)); new FloorRewardAdLoadListener(this, floor));
AdsActionEvents.TrackKwaiAdunitRequest(AdsType.Rewarded,
_currentRequestId,
floor.unite_id,
floor.price,
GetWaterfallRequestCount(),
GetUniteIdRequestCount(floor.unite_id),
floorIndex);
} }
// 处理楼层广告加载成功 // 处理楼层广告加载成功
public void OnFloorAdLoaded(FloorConfig floor, IRewardAdController controller) public void OnFloorAdLoaded(FloorConfig floor, IRewardAdController controller,double revenue)
{ {
if (!_isRequestingFloors || _successfulFloor != null) return; if (!_isRequestingFloors || _successfulFloor != null) return;
// 获取当前楼层在排序列表中的位置 // 获取当前楼层在排序列表中的位置
int floorIndex = GetFloorIndex(floor.id); int floorIndex = GetFloorIndex(floor.id);
LoggerUtils.Debug($"[kwai] floor reward Floor ad loaded: {floor.id} (index: {floorIndex}) with price: {floor.price}, unite_id {floor.unite_id} has been requested {_uniteIdRequestCounts[floor.unite_id]} times"); LoggerUtils.Debug($"[kwai] floor reward Floor ad loaded: {floor.id} (index: {floorIndex}) with floor price: {floor.price}, unite_id {floor.unite_id} has been requested {GetUniteIdRequestCount(floor.unite_id)} times, revenue:{revenue}");
// 暂停其他并行请求 // 暂停其他并行请求
_successfulFloor = floor; _successfulFloor = floor;
@ -147,6 +157,14 @@ namespace WZ
kvp.Value.Destroy(); kvp.Value.Destroy();
} }
} }
AdsActionEvents.TrackKwiWaterfallFill(AdsType.Rewarded,
_currentRequestId,
floor.unite_id,
floor.price,
GetWaterfallRequestCount(),
GetUniteIdRequestCount(floor.unite_id),
floorIndex,
revenue);
} }
// 处理楼层广告加载失败 // 处理楼层广告加载失败
@ -213,7 +231,7 @@ namespace WZ
/// </summary> /// </summary>
public int GetUniteIdRequestCount(string unitId) public int GetUniteIdRequestCount(string unitId)
{ {
return _uniteIdRequestCounts.TryGetValue(unitId, out var time) ? time : 0; return _unitIdRequestCounts.TryGetValue(unitId, out var time) ? time : 0;
} }
/// <summary> /// <summary>

View File

@ -43,7 +43,7 @@ namespace WZ
trackId, trackId,
AdsType.Interstitial, AdsType.Interstitial,
Time.realtimeSinceStartup - KwaiFloorIvManager.Instance._ivStartLoadTime); Time.realtimeSinceStartup - KwaiFloorIvManager.Instance._ivStartLoadTime);
_manager.OnFloorAdLoaded(_floor, _manager._ivFloorAdControllers[_floor.id]); _manager.OnFloorAdLoaded(_floor, _manager._ivFloorAdControllers[_floor.id],KwaiAdsManager.Instance._interstitiaAdRevenue);
LoggerUtils.Debug("[kwai] floor inter ad load success: "+trackId+" with price: "+price); LoggerUtils.Debug("[kwai] floor inter ad load success: "+trackId+" with price: "+price);
} }
} }

View File

@ -41,7 +41,7 @@ namespace WZ
trackId, trackId,
AdsType.Rewarded, AdsType.Rewarded,
Time.realtimeSinceStartup - KwaiFloorRvManager.Instance._rvStartLoadTime); Time.realtimeSinceStartup - KwaiFloorRvManager.Instance._rvStartLoadTime);
_manager.OnFloorAdLoaded(_floor, _manager._rvFloorAdControllers[_floor.id]); _manager.OnFloorAdLoaded(_floor, _manager._rvFloorAdControllers[_floor.id], KwaiAdsManager.Instance._rewardAdRevenue);
LoggerUtils.Debug("[kwai] floor reward ad load success: "+trackId+" with price: "+price); LoggerUtils.Debug("[kwai] floor reward ad load success: "+trackId+" with price: "+price);
} }
} }