This commit is contained in:
luojian 2025-09-15 23:13:34 +08:00
commit fb022bf083
10 changed files with 279 additions and 62 deletions

View File

@ -41,11 +41,17 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
ShuShuEvent.Instance.Track("adjust_init");
FireBaseAnalyticsManager.Instance.LogEvent("adjust_init");
Adjust.GetAdid((id)=>
Adjust.GetAdid((id) =>
{
ShuShuEvent.Instance.SetSuperProperties(new Dictionary<string, object>() { { "adid", id } });
ShuShuEvent.Instance.UserSet(new Dictionary<string, object>() { { "adid", id } });
});
var network = AdjustNetwork.GetNetwork();
if (!string.IsNullOrEmpty(network))
{
RushSDKManager.Instance.OnUserSourceListener?.Invoke(IsOrganic(network), network);
}
}
@ -128,7 +134,7 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
campaign = attribution.Campaign;
adgroup = attribution.Adgroup;
creative = attribution.Creative;
if (!string.IsNullOrEmpty(attribution.Network))
{
network = attribution.Network;
@ -139,7 +145,7 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
}
}
else
{
{
network = "Organic";
}
@ -160,6 +166,8 @@ public class AdjustManager : D_MonoSingleton<AdjustManager>
{ "adgroup", adgroup ?? "" },
{ "creative", creative ?? "" },
});
RushSDKManager.Instance.OnUserSourceListener?.Invoke(IsOrganic(network), network);
}

View File

@ -29,10 +29,14 @@ public class AdjustNetwork : D_MonoSingleton<AdjustNetwork>
}
}
public static string GetNetwork()
{
return PlayerPrefs.GetString(KEY_USER_NETWORK);
}
/// <summary>
/// 是否是自然量用户
/// 默认买量用户
/// 默认自然量用户
/// </summary>
/// <returns></returns>
public bool InOrganic()
@ -42,7 +46,7 @@ public class AdjustNetwork : D_MonoSingleton<AdjustNetwork>
{
return true;
}
if (network.ToLower().Replace(" ", "") == "Organic".ToLower().Replace(" ", ""))
{
return true;

View File

@ -44,7 +44,7 @@ namespace WZ
}
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 dic = new Dictionary<string, object> {

View File

@ -107,7 +107,7 @@ namespace WZ
{
public string id;
public string unite_id;
public int price;
public float price;
}
[System.Serializable]

View File

@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Linq;
using GoogleMobileAds.Common;
using JetBrains.Annotations;
using KwaiAds.Scripts.Api;
using KwaiAds.Scripts.Api.Interstitial;
using KwaiAds.Scripts.Api.Reward;
using UnityEngine;
@ -21,8 +22,11 @@ namespace WZ
private bool _isRequestingFloors = false;
private List<FloorConfig> _currentRequestBatch = new List<FloorConfig>();
private FloorConfig _successfulFloor = null;
public float _ivStartLoadTime = 0;
private int _waterfallRequestCount = 0; // waterfall请求次数
private Dictionary<string, int> _unitIdRequestCounts = new Dictionary<string, int>(); // 每个unit_id的请求次数
private string _currentRequestId; // 当前waterfall请求的ID
public void InitializeWithFloors()
{
@ -51,6 +55,10 @@ namespace WZ
_currentFloorIndex = 0;
_successfulFloor = null;
_isRequestingFloors = true;
_currentRequestId = GenerateRequestId();
// 增加waterfall请求计数
_waterfallRequestCount++;
// 清理之前的广告控制器
foreach (var controller in _ivFloorAdControllers.Values)
@ -93,25 +101,54 @@ namespace WZ
{
RequestFloorAd(floor);
}
AdsActionEvents.TrackKwaiWaterfallRequest(AdsType.Interstitial,
_currentRequestId,
_waterfallRequestCount,
_ivParallelRequests);
}
private void RequestFloorAd(FloorConfig floor)
{
IInterstitialAdController controller = KwaiAds.Scripts.Api.KwaiAdsSdk.SDK.getInterstitialAdController();;
// 更新unite_id请求计数
if (!_unitIdRequestCounts.ContainsKey(floor.unite_id))
{
_unitIdRequestCounts[floor.unite_id] = 0;
}
_unitIdRequestCounts[floor.unite_id]++;
// 获取当前楼层在排序列表中的位置
int floorIndex = GetFloorIndex(floor.id);
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)}");
IInterstitialAdController controller = KwaiAds.Scripts.Api.KwaiAdsSdk.SDK.getInterstitialAdController(); ;
_ivFloorAdControllers[floor.id] = controller;
KwaiInterstitialAdRequest kwaiInterstitialAdRequest = new KwaiInterstitialAdRequest(floor.unite_id);
kwaiInterstitialAdRequest.ExtParams[Constants.Request.BID_FLOOR_PRICE] = floor.price.ToString();
controller.Load(kwaiInterstitialAdRequest,
new FloorInterAdListener(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;
LoggerUtils.Debug($"[kwai] floor inter Floor ad loaded: {floor.id} with price: {floor.price}");
// 获取当前楼层在排序列表中的位置
int floorIndex = GetFloorIndex(floor.id);
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}");
// 暂停其他并行请求
_successfulFloor = floor;
@ -125,6 +162,14 @@ namespace WZ
kvp.Value.Destroy();
}
}
AdsActionEvents.TrackKwiWaterfallFill(AdsType.Interstitial,
_currentRequestId,
floor.unite_id,
floor.price,
GetWaterfallRequestCount(),
GetUniteIdRequestCount(floor.unite_id),
floorIndex,
revenue);
}
// 处理楼层广告加载失败
@ -177,6 +222,53 @@ namespace WZ
_action?.Invoke();
}
}
/// <summary>
/// 获取当前waterfall请求次数
/// </summary>
public int GetWaterfallRequestCount()
{
return _waterfallRequestCount;
}
/// <summary>
/// 获取当前waterfall请求次数
/// </summary>
public int GetUniteIdRequestCount(string unitId)
{
return _unitIdRequestCounts.TryGetValue(unitId, out var time) ? time : 0;
}
/// <summary>
/// 根据floor.id获取其在排序后的楼层列表中的索引位置
/// </summary>
public int GetFloorIndex(string floorId)
{
for (int i = 0; i < _sortedFloors.Count; i++)
{
if (_sortedFloors[i].id == floorId)
{
return i;
}
}
return -1; // 未找到
}
/// <summary>
/// 获取当前Request ID
/// </summary>
public string GetCurrentRequestId()
{
return _currentRequestId;
}
/// <summary>
/// 生成唯一的Request ID
/// </summary>
private string GenerateRequestId()
{
return Guid.NewGuid().ToString("N");
}
}
}

View File

@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using System.Linq;
using JetBrains.Annotations;
using KwaiAds.Scripts.Api;
using KwaiAds.Scripts.Api.Reward;
using UnityEngine;
using static WZ.KwaiAdsConfigParser;
@ -19,8 +20,10 @@ namespace WZ
private bool _isRequestingFloors = false;
private List<FloorConfig> _currentRequestBatch = new List<FloorConfig>();
private FloorConfig _successfulFloor = null;
public float _rvStartLoadTime = 0;
private int _waterfallRequestCount = 0; // waterfall请求次数
private Dictionary<string, int> _unitIdRequestCounts = new Dictionary<string, int>(); // 每个unite_id的请求次数
private string _currentRequestId; // 当前waterfall请求的ID
public void InitializeWithFloors()
{
@ -51,7 +54,10 @@ namespace WZ
_currentFloorIndex = 0;
_successfulFloor = null;
_isRequestingFloors = true;
_currentRequestId = GenerateRequestId();
// 增加waterfall请求计数
_waterfallRequestCount++;
// 清理之前的广告控制器
foreach (var controller in _rvFloorAdControllers.Values)
{
@ -61,6 +67,8 @@ namespace WZ
// 开始请求楼层广告
RequestNextFloorBatch();
AdsActionEvents.TrackKwaiWaterfallRequest(AdsType.Rewarded, _currentRequestId, _waterfallRequestCount, _rvParallelRequests);
}
private void RequestNextFloorBatch()
@ -97,21 +105,45 @@ namespace WZ
private void RequestFloorAd(FloorConfig floor)
{
// 更新unite_id请求计数
if (!_unitIdRequestCounts.ContainsKey(floor.unite_id))
{
_unitIdRequestCounts[floor.unite_id] = 0;
}
_unitIdRequestCounts[floor.unite_id]++;
// 获取当前楼层在排序列表中的位置
int floorIndex = GetFloorIndex(floor.id);
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();
_rvFloorAdControllers[floor.id] = controller;
KwaiRewardAdRequest kwaiRewardAdRequest = new KwaiRewardAdRequest(floor.unite_id);
kwaiRewardAdRequest.ExtParams[Constants.Request.BID_FLOOR_PRICE] = floor.price.ToString();
controller.Load(kwaiRewardAdRequest,
new FloorRewardAdListener(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;
LoggerUtils.Debug($"[kwai] floor reward ad loaded: {floor.id} with price: {floor.price}");
// 获取当前楼层在排序列表中的位置
int floorIndex = GetFloorIndex(floor.id);
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;
@ -125,6 +157,14 @@ namespace WZ
kvp.Value.Destroy();
}
}
AdsActionEvents.TrackKwiWaterfallFill(AdsType.Rewarded,
_currentRequestId,
floor.unite_id,
floor.price,
GetWaterfallRequestCount(),
GetUniteIdRequestCount(floor.unite_id),
floorIndex,
revenue);
}
// 处理楼层广告加载失败
@ -165,7 +205,7 @@ namespace WZ
}
public void ShowRewarded(Action _action)
{
{
if (_successfulFloor != null &&
_rvFloorAdControllers.ContainsKey(_successfulFloor.id) &&
_rvFloorAdControllers[_successfulFloor.id] != null)
@ -177,6 +217,53 @@ namespace WZ
_action?.Invoke();
}
}
/// <summary>
/// 获取当前waterfall请求次数
/// </summary>
public int GetWaterfallRequestCount()
{
return _waterfallRequestCount;
}
/// <summary>
/// 获取当前waterfall请求次数
/// </summary>
public int GetUniteIdRequestCount(string unitId)
{
return _unitIdRequestCounts.TryGetValue(unitId, out var time) ? time : 0;
}
/// <summary>
/// 根据floor.id获取其在排序后的楼层列表中的索引位置
/// </summary>
public int GetFloorIndex(string floorId)
{
for (int i = 0; i < _sortedFloors.Count; i++)
{
if (_sortedFloors[i].id == floorId)
{
return i;
}
}
return -1; // 未找到
}
/// <summary>
/// 获取当前Request ID
/// </summary>
public string GetCurrentRequestId()
{
return _currentRequestId;
}
/// <summary>
/// 生成唯一的Request ID
/// </summary>
private string GenerateRequestId()
{
return Guid.NewGuid().ToString("N");
}
}
}

View File

@ -43,7 +43,7 @@ namespace WZ
trackId,
AdsType.Interstitial,
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);
}
}

View File

@ -41,7 +41,7 @@ namespace WZ
trackId,
AdsType.Rewarded,
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);
}
}

View File

@ -30,7 +30,23 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
AdsSDKManager.Instance.InitSDK(action);
EFSdkManager.Instance.Init();
}
#region
public Action<bool, string> OnUserSourceListener;
/// Adjust归因回调
/// <summary>
/// <param name="is organic user">是否为买量用户</param>
/// <param name="adNetwork">adjust 返回的network字段</param>
/// </summary>
public void SetUserSourceListener(Action<bool, string> _action)
{
OnUserSourceListener = _action;
}
#endregion
#region ad
@ -49,15 +65,15 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
/// <returns></returns>
public bool IsRewardedAdReady()
{
return AdsSDKManager.Instance.IsRewardAdReady();;
}
return AdsSDKManager.Instance.IsRewardAdReady(); ;
}
/// <summary>
/// 展示激励广告
/// </summary>
/// <param name="position"></param>
/// <param name="callback"></param>
public void ShowRewardAd(string position, Action<bool,double> callback = null)
public void ShowRewardAd(string position, Action<bool, double> callback = null)
{
AdsActionEvents.TrackAdPosition(AdsType.Rewarded, position);
bool isRewardAdReady = AdsSDKManager.Instance.IsRewardAdReady();
@ -83,8 +99,8 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
callback?.Invoke(false, 0);
}
}
/// <summary>
/// 是否已缓存插屏
@ -93,7 +109,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
{
return AdsSDKManager.Instance.IsInterstitialReady();
}
/// <summary>
/// 展示插屏广告
/// </summary>
@ -122,7 +138,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
});
}
else
{
{
AdsActionEvents.TrackAdFailToShow(AdsType.Interstitial, position, AdsShowFailType.NoFill);
callback?.Invoke(-1);
}
@ -143,7 +159,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
});
}
else
{
{
AdsActionEvents.TrackAdFailToShow(AdsType.Interstitial, position, AdsShowFailType.NoFill);
callback?.Invoke(-1);
}
@ -154,7 +170,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
callback?.Invoke(-1);
}
}
public void ShowBanner()
{
AdsActionEvents.TrackAdPosition(AdsType.Banner, "");
@ -163,12 +179,12 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
AdsSDKManager.Instance.ShowBanner();
}
else
{
{
AdsActionEvents.TrackAdFailToShow(AdsType.Banner, "", AdsShowFailType.NoFill);
}
}
public void HideBanner()
{
AdsSDKManager.Instance.HideBanner();
@ -179,7 +195,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
var adUnitId = StaticValue.AdmobFullNativeId;
return AdsSDKManager.Instance.IsNativeAdReady(adUnitId);
}
public void ShowFullNative(RectTransform rectTransform, Camera pCom = null, string position = "")
{
AdsActionEvents.TrackAdPosition(AdsType.Native, position);
@ -188,18 +204,18 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
AdsActionEvents.TrackAdFailToShow(AdsType.Native, position, AdsShowFailType.NoFill);
return;
}
var adUnitId = StaticValue.AdmobFullNativeId;
var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle
{
TemplateId = NativeTemplateId.Medium,
MainBackgroundColor = Color.white
}, rectTransform, pCom);
AdsSDKManager.Instance.ShowNativeAd(position, adUnitId, nativeAdPosition);
}
/// <summary>
/// 获取全屏Native广告价值
/// </summary>
@ -234,14 +250,14 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
AdsActionEvents.TrackAdFailToShow(AdsType.Native, position, AdsShowFailType.NoFill);
return;
}
var adUnitId = StaticValue.AdmobNativeId;
var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle
{
TemplateId = NativeTemplateId.Small,
MainBackgroundColor = Color.white
}, rectTransform, pCom);
AdsSDKManager.Instance.ShowNativeAd(position, adUnitId, nativeAdPosition);
}
@ -250,7 +266,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
var adUnitId = StaticValue.AdmobNativeId;
AdsSDKManager.Instance.RemoveNativeAd(adUnitId);
}
public bool IsSmallNativeReady()
{
var adUnitId = StaticValue.AdmobSmallNativeId;
@ -265,14 +281,14 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
AdsActionEvents.TrackAdFailToShow(AdsType.Native, position, AdsShowFailType.NoFill);
return;
}
var adUnitId = StaticValue.AdmobSmallNativeId;
var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle
{
TemplateId = NativeTemplateId.Small,
MainBackgroundColor = Color.white
}, rectTransform, pCom);
AdsSDKManager.Instance.ShowNativeAd(position, adUnitId, nativeAdPosition);
}
@ -281,7 +297,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
var adUnitId = StaticValue.AdmobSmallNativeId;
AdsSDKManager.Instance.RemoveNativeAd(adUnitId);
}
public bool IsMinddleNativeReady()
{
var adUnitId = StaticValue.AdmobMinddleNativeId;
@ -296,14 +312,14 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
AdsActionEvents.TrackAdFailToShow(AdsType.Native, position, AdsShowFailType.NoFill);
return;
}
var adUnitId = StaticValue.AdmobMinddleNativeId;
var nativeAdPosition = NativeAdPosition.Create(new NativeTemplateStyle
{
TemplateId = NativeTemplateId.Small,
MainBackgroundColor = Color.white
}, rectTransform, pCom);
AdsSDKManager.Instance.ShowNativeAd(position, adUnitId, nativeAdPosition);
}
@ -332,7 +348,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
{
[key1] = value1
});
}
public void LogEvent(string eventName, Dictionary<string, object> extraInfo)
@ -341,7 +357,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
FireBaseAnalyticsManager.Instance.LogEvent(eventName, extraInfo);
AdjustTrackEvent.Instance.TrackEventName(eventName, extraInfo);
}
/// <summary>
/// 公共事件属性
/// </summary>
@ -351,7 +367,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
ShuShuEvent.Instance.SetSuperProperties(args);
FireBaseAnalyticsManager.Instance.SetSuperProperties(args);
}
/// <summary>
/// 用户属性
/// </summary>
@ -363,7 +379,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
}
#endregion
#region 线
public bool GetRemoteConfigBool(string key, bool defaultValue = false)
@ -374,7 +390,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
}
return FireBaseRemoteConfigManager.Instance.GetRemoteConfigBool(key, defaultValue);
}
public int GetRemoteConfigInt(string key, int defaultValue = 0)
{
if (Application.isEditor)
@ -383,7 +399,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
}
return FireBaseRemoteConfigManager.Instance.GetRemoteConfigInt(key, defaultValue);
}
public string GetRemoteConfigStr(string key, string defaultValue = "")
{
if (Application.isEditor)
@ -392,7 +408,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
}
return FireBaseRemoteConfigManager.Instance.GetRemoteConfigString(key, defaultValue);
}
public float GetRemoteConfigFloat(string key, float defaultValue = 0)
{
if (Application.isEditor)
@ -455,7 +471,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
public void CanGoback(Action<bool> canGobackAction)
{
EFSdk.get().CanGoback(canGobackAction);
EFSdk.get().CanGoback(canGobackAction);
}
/// <summary>
@ -476,8 +492,8 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
}
});
}
/// <summary>
/// 设置推送开关, SDK默认关闭通知
/// </summary>
@ -588,7 +604,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
}
int pageId = EFSdk.get().GetJumpPage();
return pageId;
}
/// <summary>
@ -614,7 +630,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
return;
}
// 如果没有通知权限就尝试申请通知权限
if(!HasNotifyPermission())
if (!HasNotifyPermission())
{
EFSdk.get().ReqNotifyPermission(isgGranted =>
{
@ -654,7 +670,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
}
EFSdk.get().UnSubscribeUnclaimed01();
}
/// <summary>
// 满足条件: 在排队中 且 当日R1 未领取 的买量用户, 调用这个方法
/// </summary>
@ -703,7 +719,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
}
EFSdk.get().UnSubscribeToTopic(topic);
}
/// <summary>
/// 可覆盖广告的Toast
/// </summary>
@ -722,9 +738,9 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
/// </summary>
public void AutoLocalPush(bool isOpen)
{
}
/// <summary>
/// Webview展示成功后回调
/// </summary>
@ -733,7 +749,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
{
EFSdkManager.Instance.SetWebviewShowSuccessAction(action);
}
#endregion
/// <summary>
@ -745,7 +761,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
return AdjustNetwork.Instance.InOrganic();
}
public string GetGaid()
public string GetGaid()
{
if (Application.isEditor)
{
@ -829,7 +845,7 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
{
return "GetSSDistinctId";
}
LoggerUtils.Debug("GetSSDistinctId:"+TDAnalytics.GetDistinctId());
LoggerUtils.Debug("GetSSDistinctId:" + TDAnalytics.GetDistinctId());
return TDAnalytics.GetDistinctId();
}
@ -844,4 +860,9 @@ public class RushSDKManager : D_MonoSingleton<RushSDKManager>
LoggerUtils.Debug("GetSSDistinctId:" + JsonMapper.ToJson(superProperties));
return superProperties == null ? "" : superProperties.ToString();
}
public void OpenPrivacy()
{
Application.OpenURL(StaticValue.PrivacyUrl);
}
}

View File

@ -17,7 +17,12 @@ public class Test : MonoBehaviour
{
small = gameObject.transform.Find("NativeAd-small").GetComponent<RectTransform>();
medium = gameObject.transform.Find("NativeAd-medium").GetComponent<RectTransform>();
RushSDKManager.Instance.SetUserSourceListener((bool success, string source) =>
{
LoggerUtils.Debug("adjust callback: "+success+" adnetwork:"+source);
});
RushSDKManager.Instance.InitializeSdk(null, true);
}
public void OnShowAd()