update: GuruSDK 内部不再调用 SetUserProperty

main
胡宇飞 2024-08-07 22:10:22 +08:00
parent 2494bd2748
commit af1ec1e04f
4 changed files with 27 additions and 194 deletions

View File

@ -18,7 +18,7 @@ namespace Guru
_adInitSpec = spec;
if (InitConfig.UseCustomConsent)
{
UnityEngine.Debug.Log($"{Tag} --- Call <color=orange>StartAdsWithCustomConsent</color> when you use custom consent, and pass the result (boolean) to the method.");
Debug.Log($"{Tag} --- Call <color=orange>StartAdsWithCustomConsent</color> when you use custom consent, and pass the result (boolean) to the method.");
return;
}
@ -59,7 +59,7 @@ namespace Guru
}
else
{
UnityEngine.Debug.Log($"{Tag} --- User refuse to provide ads Id, Ads Service will be cancelled");
Debug.Log($"{Tag} --- User refuse to provide ads Id, Ads Service will be cancelled");
}
}
@ -244,7 +244,7 @@ namespace Guru
// bool hasNotiGranted = false;
_notiStatue = "no_determined";
NotificationService.Initialize(); // 初始化 Noti 服务
SetNotiPerm(NotificationService.GetStatus());
Analytics.SetNotiPerm(NotificationService.GetStatus());
}
/// <summary>
@ -266,7 +266,7 @@ namespace Guru
if (isGranted)
{
Debug.Log($"[SDK] ---- Set Notification Permission: {status}");
SetNotiPerm(status);
Analytics.SetNotiPerm(status);
return;
}
@ -285,7 +285,7 @@ namespace Guru
NotificationService.RequestPermission(status =>
{
Debug.Log($"[SDK] ---- Set Notification Permission: {status}");
if(!string.IsNullOrEmpty(status)) SetNotiPerm(status);
if(!string.IsNullOrEmpty(status)) Analytics.SetNotiPerm(status);
callback?.Invoke(status);
});
@ -326,7 +326,7 @@ namespace Guru
/// <summary>
/// 启动广告服务
/// </summary>
internal static void StartAdService(AdsInitSpec spec = null)
private static void StartAdService(AdsInitSpec spec = null)
{
//---------- Using InitConfig ----------

View File

@ -10,7 +10,6 @@ namespace Guru
/// </summary>
public partial class GuruSDK
{
#region 通用接口
/// <summary>
@ -37,6 +36,20 @@ namespace Guru
#endregion
#region 设置用户属性
/// <summary>
/// 设置用户属性
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public static void SetUserProperty(string key, string value)
{
Analytics.SetUserProperty(key, value);
}
#endregion
#region 游戏打点
/// <summary>
@ -283,181 +296,6 @@ namespace Guru
LogEvent(Consts.EventHpPoints, dict);
}
#endregion
#region 用户属性
/// <summary>
/// 提前调用用户属性
/// </summary>
private static void InitUserProperties()
{
if (!IsInitialSuccess)
{
Debug.LogError($"{Tag} :: InitUserProperties :: Please call <GuruSDK.Start()> first, before you call <InitUserProperties>.");
return;
}
Debug.Log($"[SDK] --- PurchasedCount:{Model.PurchasedCount}");
Debug.Log($"[SDK] --- IsIapUser:{Model.IsIapUser}");
SetUserIsIAP(Model.IsIapUser); // 预先设置用户的 IAP User 属性
SetUserBLevel(Model.SuccessLevelId); // 预先设置用户的 BLevel 属性
SetUserBPlay(Model.TotalPlayedCount); // 预先设置用户的 BPlay 属性
if (Model.IsNoAds) SetBuyNoAds(true); // 设置用户已经购买了去广告
}
/// <summary>
/// 设置用户属性
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public static void SetUserProperty(string key, string value)
{
Analytics.SetUserProperty(key, value);
}
public static void SetUID(string uid)
{
Analytics.SetUid(uid);
SetUserProperty(Consts.PropertyUserID, uid);
}
public static void SetUserBLevel(int blevel)
{
if (!InitConfig.AutoRecordFinishedLevels)
{
Model.SetBLevelValue(blevel);
Analytics.BLevel = blevel;
}
SetUserProperty(Consts.PropertyLevel, $"{blevel}");
}
public static void SetUserBPlay(int bplay)
{
if (!InitConfig.AutoRecordFinishedLevels)
{
Model.SetBPlayValue(bplay);
Analytics.BPlay = bplay;
}
SetUserProperty(Consts.PropertyPlay, $"{bplay}");
}
/// <summary>
/// 上报用户全部的 Coin (当前值)
/// </summary>
/// <param name="coins"></param>
public static void SetUserCoin(int coins)
{
SetUserProperty(Consts.PropertyCoin, $"{coins}");
}
/// <summary>
/// 上报用户免费金币的 数量 (累加值)
/// </summary>
/// <param name="freeCoins"></param>
public static void SetUserNonIapCoin(int freeCoins)
{
SetUserProperty(Consts.PropertyNonIAPCoin, $"{freeCoins}");
}
/// <summary>
/// 上报用户付费金币的 数量 (累加值)
/// </summary>
/// <param name="paidCoins"></param>
public static void SetUserIapCoin(int paidCoins)
{
SetUserProperty(Consts.PropertyIAPCoin, $"{paidCoins}");
}
public static void SetUserExp(int exp)
{
SetUserProperty(Consts.PropertyExp, $"{exp}");
}
public static void SetUserHp(int hp)
{
SetUserProperty(Consts.PropertyHp, $"{hp}");
}
public static void SetUserGrade(int grade)
{
SetUserProperty(Consts.PropertyGrade, $"{grade}");
}
public static void SetUserIsIAP(bool isIapUser)
{
// SetUserProperty(Consts.PropertyIsIAPUser, isIapUser? "true" : "false");
Analytics.SetIsIapUser(isIapUser);
}
public static void SetFirstOpenTime(string timestamp)
{
if (string.IsNullOrEmpty(timestamp))
{
timestamp = IPMConfig.FIRST_OPEN_TIME;
Model.FirstOpenTime = timestamp;
}
SetUserProperty(Analytics.PropertyFirstOpenTime, timestamp);
}
public static void SetNotiPerm(string status)
{
// SetUserProperty(Consts.PropertyNotiPerm, status);
Analytics.SetNotiPerm(status);
}
public static void SetATTStatus(string status)
{
// SetUserProperty(Consts.PropertyATTStatus, status);
Analytics.SetAttStatus(status);
}
public static void SetAdjustId(string adjustId)
{
SetUserProperty(Consts.PropertyAdjustId, adjustId);
}
public static void SetNetworkStatus()
{
SetUserProperty(Consts.PropertyNetwork, Instance.GetNetworkStatus());
}
private static bool _hasUserPropertiesInitiallyUpdated = false;
/// <summary>
/// 初始化时补全一下所有的属性打点
/// 如果用户已经设置过 Key 则不会再次设置
/// <a href="https://docs.google.com/spreadsheets/d/1N47rXgjatRHFvzWWx0Hqv5C1D9NHHGbggi6pQ65c-zQ/edit#gid=1858695240">用户属性文档</a>
/// </summary>
private static void InitiallyUpdateUserProperties()
{
if (_hasUserPropertiesInitiallyUpdated) return;
_hasUserPropertiesInitiallyUpdated = true;
SetFirstOpenTime(Model?.FirstOpenTime ?? ""); // first_open_time
SetUserIsIAP(Model?.IsIapUser ?? false); // is_iap_user
SetUserBLevel(Model?.SuccessLevelId ?? 0); // b_level
SetUserBPlay(Model?.TotalPlayedCount ?? 0); // b_play
SetUserProperty(Consts.PropertyDeviceID, DeviceId); // device_id
// SetUserIapCoin(0); // iap_coin
// SetUserNonIapCoin(0); // non_iap_coin
// SetUserCoin(0);// coin
// SetUserGrade(0); // grade
// SetUserExp(0); // exp
// SetUserHp(0); // hp
if(!string.IsNullOrEmpty(UID))
SetUID(UID); // user_id
#if UNITY_IOS
SetATTStatus("notDetermined"); // att_status
#endif
SetNotiPerm("not_determined"); // noti_perm
SetNetworkStatus(); // NetworkStatus
}
#endregion
#region SDK 打点
@ -478,8 +316,6 @@ namespace Guru
{
EnableFirebaseAnalytics = true,
});
SetUserProperty("sdk_version", Version);
}
/// <summary>

View File

@ -75,8 +75,7 @@ namespace Guru
{
Model.IsNoAds = value;
ADService.Instance.IsBuyNoAds = value;
SetUserProperty(Consts.PropertyNoAds, value? "true" : "false");
if(value) SetUserIsIAP(true);
if(value) Analytics.SetIsIapUser(true);
}
/// <summary>

View File

@ -125,7 +125,6 @@ namespace Guru
InitThreadHandler(); // 初始化线程处理器
InitServices(); // 初始化所有的服务
InitNetworkMonitor(); // 网络状态
InitiallyUpdateUserProperties(); // 上报所有初始化用户属性
onComplete?.Invoke(true);
}
@ -189,7 +188,6 @@ namespace Guru
private void InitAllGuruServices()
{
// -------- Init Analytics ---------
InitUserProperties();
SetSDKEventPriority();
// -------- Init Notification -----------
InitNotiPermission();
@ -419,12 +417,12 @@ namespace Guru
private void OnBLevelChanged(int bLevel)
{
SetUserBLevel(bLevel);
Analytics.SetBLevel(bLevel);
}
private void OnBPlayChanged(int bPlay)
{
SetUserBPlay(bPlay);
Analytics.SetBPlay(bPlay);
}
#endregion
@ -726,8 +724,6 @@ namespace Guru
{
if (success)
{
Analytics.ShouldFlushGuruEvents();
Model.UserId = IPMConfig.IPM_UID;
if (GuruIAP.Instance != null)
{
@ -736,7 +732,9 @@ namespace Guru
}
// 自打点设置用户 ID
SetUID(UID);
Analytics.SetUid(UID);
// 上报所有的事件
Analytics.ShouldFlushGuruEvents();
}
Callbacks.SDK.InvokeOnGuruUserAuthResult(success);
@ -792,7 +790,7 @@ namespace Guru
// if (!string.IsNullOrEmpty(IPMConfig.ADJUST_ID))
// Analytics.SetAdjustId(IPMConfig.ADJUST_ID); // 二次启动后,若有值则立即上报属性
AdjustService.Instance.StartService(appToken, fbAppId, firebaseId, DeviceId,
AdjustService.Instance.Start(appToken, fbAppId, firebaseId, DeviceId,
OnAdjustInitComplete, onDeeplinkCallback ,OnGetGoogleAdId );
}