fix: 修复启动时自打点没有上报用户属性的 BUG
parent
5b1097464d
commit
8d1afddcd5
|
|
@ -252,6 +252,20 @@ namespace Guru
|
||||||
if (Model.IsNoAds) SetBuyNoAds(true); // 设置用户已经购买了去广告
|
if (Model.IsNoAds) SetBuyNoAds(true); // 设置用户已经购买了去广告
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static HashSet<string> _userPropertyExistKeys = new HashSet<string>(50);
|
||||||
|
|
||||||
|
private static void RecordUserPropertyKey(string key)
|
||||||
|
{
|
||||||
|
if(_userPropertyExistKeys == null)
|
||||||
|
_userPropertyExistKeys = new HashSet<string>(50);
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(key)) _userPropertyExistKeys.Add(key);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool HasUserPropertyKey(string key)
|
||||||
|
{
|
||||||
|
return _userPropertyExistKeys?.Contains(key) ?? false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -266,6 +280,7 @@ namespace Guru
|
||||||
UnityEngine.Debug.LogError($"{Tag} :: SetUserProperty {key}:{value} ::Please call <GuruSDK.Start()> first, before you call <SetUserProperty>.");
|
UnityEngine.Debug.LogError($"{Tag} :: SetUserProperty {key}:{value} ::Please call <GuruSDK.Start()> first, before you call <SetUserProperty>.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
RecordUserPropertyKey(key);
|
||||||
Analytics.SetUserProperty(key, value);
|
Analytics.SetUserProperty(key, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -331,6 +346,62 @@ namespace Guru
|
||||||
SetUserProperty(Analytics.PropertyIsIAPUser, isIapUser? "true" : "false");
|
SetUserProperty(Analytics.PropertyIsIAPUser, isIapUser? "true" : "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SetFirstOpenTime(string timestamp)
|
||||||
|
{
|
||||||
|
SetUserProperty(Analytics.PropertyFirstOpenTime, timestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 初始化时调用一下所有的属性打点
|
||||||
|
/// </summary>
|
||||||
|
private static void InitCallAllUserProperties()
|
||||||
|
{
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyFirstOpenTime))
|
||||||
|
SetFirstOpenTime(TimeUtil.GetCurrentTimeStamp().ToString());
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyIsIAPUser))
|
||||||
|
SetUserIsIAP(Model?.IsIapUser ?? false);
|
||||||
|
|
||||||
|
if (!HasUserPropertyKey(Consts.PropertyLevel))
|
||||||
|
SetUserBLevel(Model?.SuccessLevelId ?? 0);
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyUserID) && !string.IsNullOrEmpty(UID))
|
||||||
|
SetUserProperty(Consts.PropertyUserID, UID);
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyDeviceID) && !string.IsNullOrEmpty(DeviceId))
|
||||||
|
SetUserProperty(Consts.PropertyDeviceID, DeviceId);
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyIAPCoin))
|
||||||
|
SetUserPaidCoins(0);
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyNonIAPCoin))
|
||||||
|
SetUserFreeCoins(0);
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyCoin))
|
||||||
|
SetUserTotalCoins(0);
|
||||||
|
|
||||||
|
if (!HasUserPropertyKey(Consts.PropertyGrade))
|
||||||
|
SetUserGrade(0);
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyExp))
|
||||||
|
SetUserExp(0);
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyHp))
|
||||||
|
SetUserHp(0);
|
||||||
|
|
||||||
|
#if UNITY_IOS
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyATTStatus))
|
||||||
|
SetUserProperty(Consts.PropertyATTStatus, "notDetermined");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if(!HasUserPropertyKey(Consts.PropertyNotiPerm))
|
||||||
|
SetUserProperty(Consts.PropertyNotiPerm, "not_determined");
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region SDK 打点
|
#region SDK 打点
|
||||||
|
|
|
||||||
|
|
@ -211,6 +211,7 @@ namespace Guru
|
||||||
public const string PropertyPicture = "picture"; // 玩家在主线的mapid
|
public const string PropertyPicture = "picture"; // 玩家在主线的mapid
|
||||||
public const string PropertyNoAds = "no_ads"; // 玩家是否去广告
|
public const string PropertyNoAds = "no_ads"; // 玩家是否去广告
|
||||||
public const string PropertyATTStatus = "att_status"; // ATT 状态
|
public const string PropertyATTStatus = "att_status"; // ATT 状态
|
||||||
|
public const string PropertyNotiPerm = "noti_perm"; // Notification Permission 状态
|
||||||
public const string PropertyGDPR = "gdpr"; // GDPR状态
|
public const string PropertyGDPR = "gdpr"; // GDPR状态
|
||||||
|
|
||||||
// 经济相关
|
// 经济相关
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ namespace Guru
|
||||||
{
|
{
|
||||||
_initTime = DateTime.Now.ToUniversalTime();
|
_initTime = DateTime.Now.ToUniversalTime();
|
||||||
// ----- First Open Time -----
|
// ----- First Open Time -----
|
||||||
Analytics.SetUserProperty(Analytics.FirstOpenTime, GetFirstOpenTime());
|
SetFirstOpenTime(GetFirstOpenTime()); // FirstOpenTime
|
||||||
LogI($"#1 ---- Guru SDK [{Version}] ----\n{config.ToString()}");
|
LogI($"#1 ---- Guru SDK [{Version}] ----\n{config.ToString()}");
|
||||||
Instance.StartWithConfig(config, onComplete);
|
Instance.StartWithConfig(config, onComplete);
|
||||||
}
|
}
|
||||||
|
|
@ -223,6 +223,9 @@ namespace Guru
|
||||||
LogI($"#5 --- sync sdk time ---");
|
LogI($"#5 --- sync sdk time ---");
|
||||||
var sp = DateTime.Now.ToUniversalTime() - _initTime;
|
var sp = DateTime.Now.ToUniversalTime() - _initTime;
|
||||||
LogSDKInitTime(sp.TotalSeconds);
|
LogSDKInitTime(sp.TotalSeconds);
|
||||||
|
|
||||||
|
// 上报所有初始化用户属性
|
||||||
|
InitCallAllUserProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue