update: 更新AndroidID 和 IDFV 的属性上报

feature/Inventory
胡宇飞 2024-01-31 13:47:04 +08:00
parent 495eaf4b49
commit c71c468778
7 changed files with 91 additions and 51 deletions

View File

@ -126,6 +126,18 @@ namespace Guru
Agent?.SetDeviceId(deviceId);
}
public static void SetAndroidID(string androidId)
{
CacheUserProperty(Analytics.PropertyAndroidID, androidId);
}
public static void SetIDFV(string idfv)
{
CacheUserProperty(Analytics.PropertyIDFV, idfv);
}
/// <summary>
/// 设置用户ID
/// </summary>

View File

@ -104,6 +104,8 @@ namespace Guru
public static readonly string PropertyCoin = "coin"; //当前金币数
public static readonly string PropertyExp = "exp"; // 经验值
public static readonly string PropertyHp = "hp"; // 生命值/体力
public static readonly string PropertyAndroidID = "android_id"; // Android 平台 AndroidID
public static readonly string PropertyIDFV = "idfv"; // iOS 平台 IDFV
public static readonly string PropertyPicture = "picture"; // 玩家在主线的mapid
public static readonly string PropertyNoAds = "no_ads"; // 玩家是否去广告
public static readonly string PropertyATTStatus = "att_status"; // ATT 状态

View File

@ -191,6 +191,22 @@ namespace Guru
string status = ATTManager.GetStatus();
GuruAnalytics.SetUserProperty(ParameterATTStatus, status);
}
private static void SetIDFV()
{
GuruAnalytics.SetAndroidID(DeviceIDHelper.IDFV);
}
#endif
#if UNITY_ANDROID
/// <summary>
/// 更新 Android ID 的参数
/// </summary>
private static void SetAndroidId()
{
GuruAnalytics.SetAndroidID(DeviceIDHelper.AndroidID);
}
#endif
/// <summary>
@ -203,8 +219,14 @@ namespace Guru
SetAdjustId();
SetFirebaseId();
SetAdId();
#if UNITY_ANDROID
SetAndroidId();
#endif
#if UNITY_IOS
SetATTStatus();
SetIDFV();
#endif
ReportEventSuccessRate();
}

View File

@ -0,0 +1,50 @@
namespace Guru
{
public class DeviceIDHelper
{
/// <summary>
/// UUID (V4)
/// </summary>
/// <returns></returns>
public static string UUID => System.Guid.NewGuid().ToString();
/// <summary>
/// IOS 或者 IDFV
/// 当获取到非法的值时, 用 UUID 代替
/// </summary>
/// <returns></returns>
public static string IDFV
{
get
{
var idfv = UnityEngine.SystemInfo.deviceUniqueIdentifier;
if (string.IsNullOrEmpty(idfv) || idfv.Contains("0000-0000-0000"))
{
idfv = UUID;
}
return idfv;
}
}
/// <summary>
/// Android ID
/// 可通过Unity 本身的接口来获取
/// </summary>
/// <returns></returns>
public static string AndroidID
{
get
{
var aid = UnityEngine.SystemInfo.deviceUniqueIdentifier;
if (string.IsNullOrEmpty(aid)) aid = UUID;
return aid;
}
}
}
}

View File

@ -1,46 +0,0 @@
namespace Guru
{
public class DeviceIDUtil
{
/// <summary>
/// UUID (V4)
/// </summary>
/// <returns></returns>
public static string UUID => System.Guid.NewGuid().ToString();
#if UNITY_IOS
/// <summary>
/// IOS 或者 IDFV
/// 当获取到非法的值时, 用 UUID 代替
/// </summary>
/// <returns></returns>
public static string IDFV()
{
var idfv = UnityEngine.SystemInfo.deviceUniqueIdentifier;
if (string.IsNullOrEmpty(idfv) || idfv.Contains("0000-0000-0000"))
{
idfv = UUID;
}
return idfv;
}
#endif
#if UNITY_ANDROID
/// <summary>
/// Android ID
/// 可通过Unity 本身的接口来获取
/// </summary>
/// <returns></returns>
public static string AndroidID()
{
var aid = UnityEngine.SystemInfo.deviceUniqueIdentifier;
if (string.IsNullOrEmpty(aid)) aid = UUID;
return aid;
}
#endif
}
}

View File

@ -76,18 +76,18 @@ namespace Guru
var did = SystemInfo.deviceUniqueIdentifier;
if (!IsValidDeviceId(did))
{
//空串, 或者IOS 生成了无效的 IDFV, 则使用 DeviceIDUtil 代替
did = DeviceIDUtil.UUID;
//空串, 或者IOS 生成了无效的 IDFV, 则使用 DeviceIDHelper 代替
did = DeviceIDHelper.UUID;
}
return did;
}
/// <summary>
/// 用生成设备ID (V2)
/// 直接使用 DeviceIDUtil 作为设备的唯一标识
/// 直接使用 DeviceIDHelper 作为设备的唯一标识
/// </summary>
/// <returns></returns>
private static string GenerateDeviceIdV2() => DeviceIDUtil.UUID;
private static string GenerateDeviceIdV2() => DeviceIDHelper.UUID;
/// <summary>