From c71c4687780ea138b28c37a0df094cb7a1e7eda2 Mon Sep 17 00:00:00 2001 From: huyfei Date: Wed, 31 Jan 2024 13:47:04 +0800 Subject: [PATCH] =?UTF-8?q?update:=20=E6=9B=B4=E6=96=B0AndroidID=20?= =?UTF-8?q?=E5=92=8C=20IDFV=20=E7=9A=84=E5=B1=9E=E6=80=A7=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/Script/GuruAnalytics.cs | 12 +++++ .../Runtime/Analytics/Analytics.Const.cs | 2 + .../Runtime/Analytics/Analytics.Custom.cs | 24 ++++++++- .../Runtime/ExtensionKit/DeviceIDHelper.cs | 50 +++++++++++++++++++ ...eIDUtil.cs.meta => DeviceIDHelper.cs.meta} | 0 .../Runtime/ExtensionKit/DeviceIDUtil.cs | 46 ----------------- .../GuruCore/Runtime/IPM/Scripts/IPMConfig.cs | 8 +-- 7 files changed, 91 insertions(+), 51 deletions(-) create mode 100644 Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDHelper.cs rename Runtime/GuruCore/Runtime/ExtensionKit/{DeviceIDUtil.cs.meta => DeviceIDHelper.cs.meta} (100%) delete mode 100644 Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDUtil.cs diff --git a/Runtime/GuruAnalytics/Runtime/Script/GuruAnalytics.cs b/Runtime/GuruAnalytics/Runtime/Script/GuruAnalytics.cs index 6a51a79..fc11003 100644 --- a/Runtime/GuruAnalytics/Runtime/Script/GuruAnalytics.cs +++ b/Runtime/GuruAnalytics/Runtime/Script/GuruAnalytics.cs @@ -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); + } + + /// /// 设置用户ID /// diff --git a/Runtime/GuruCore/Runtime/Analytics/Analytics.Const.cs b/Runtime/GuruCore/Runtime/Analytics/Analytics.Const.cs index 3801fa4..62b392c 100644 --- a/Runtime/GuruCore/Runtime/Analytics/Analytics.Const.cs +++ b/Runtime/GuruCore/Runtime/Analytics/Analytics.Const.cs @@ -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 状态 diff --git a/Runtime/GuruCore/Runtime/Analytics/Analytics.Custom.cs b/Runtime/GuruCore/Runtime/Analytics/Analytics.Custom.cs index 31489bb..317c70a 100644 --- a/Runtime/GuruCore/Runtime/Analytics/Analytics.Custom.cs +++ b/Runtime/GuruCore/Runtime/Analytics/Analytics.Custom.cs @@ -191,8 +191,24 @@ namespace Guru string status = ATTManager.GetStatus(); GuruAnalytics.SetUserProperty(ParameterATTStatus, status); } -#endif + private static void SetIDFV() + { + GuruAnalytics.SetAndroidID(DeviceIDHelper.IDFV); + } + +#endif + +#if UNITY_ANDROID + /// + /// 更新 Android ID 的参数 + /// + private static void SetAndroidId() + { + GuruAnalytics.SetAndroidID(DeviceIDHelper.AndroidID); + } +#endif + /// /// 获取全部ID /// @@ -203,8 +219,14 @@ namespace Guru SetAdjustId(); SetFirebaseId(); SetAdId(); + +#if UNITY_ANDROID + SetAndroidId(); +#endif + #if UNITY_IOS SetATTStatus(); + SetIDFV(); #endif ReportEventSuccessRate(); } diff --git a/Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDHelper.cs b/Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDHelper.cs new file mode 100644 index 0000000..abbdc24 --- /dev/null +++ b/Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDHelper.cs @@ -0,0 +1,50 @@ + +namespace Guru +{ + public class DeviceIDHelper + { + /// + /// UUID (V4) + /// + /// + public static string UUID => System.Guid.NewGuid().ToString(); + + + /// + /// IOS 或者 IDFV + /// 当获取到非法的值时, 用 UUID 代替 + /// + /// + public static string IDFV + { + get + { + var idfv = UnityEngine.SystemInfo.deviceUniqueIdentifier; + if (string.IsNullOrEmpty(idfv) || idfv.Contains("0000-0000-0000")) + { + idfv = UUID; + } + return idfv; + } + + } + + /// + /// Android ID + /// 可通过Unity 本身的接口来获取 + /// + /// + public static string AndroidID + { + get + { + var aid = UnityEngine.SystemInfo.deviceUniqueIdentifier; + if (string.IsNullOrEmpty(aid)) aid = UUID; + return aid; + } + } + + + + } +} \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDUtil.cs.meta b/Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDHelper.cs.meta similarity index 100% rename from Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDUtil.cs.meta rename to Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDHelper.cs.meta diff --git a/Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDUtil.cs b/Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDUtil.cs deleted file mode 100644 index 26451eb..0000000 --- a/Runtime/GuruCore/Runtime/ExtensionKit/DeviceIDUtil.cs +++ /dev/null @@ -1,46 +0,0 @@ - -namespace Guru -{ - public class DeviceIDUtil - { - /// - /// UUID (V4) - /// - /// - public static string UUID => System.Guid.NewGuid().ToString(); - -#if UNITY_IOS - /// - /// IOS 或者 IDFV - /// 当获取到非法的值时, 用 UUID 代替 - /// - /// - 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 - /// - /// Android ID - /// 可通过Unity 本身的接口来获取 - /// - /// - public static string AndroidID() - { - var aid = UnityEngine.SystemInfo.deviceUniqueIdentifier; - if (string.IsNullOrEmpty(aid)) aid = UUID; - return aid; - } -#endif - - - } -} \ No newline at end of file diff --git a/Runtime/GuruCore/Runtime/IPM/Scripts/IPMConfig.cs b/Runtime/GuruCore/Runtime/IPM/Scripts/IPMConfig.cs index 8371208..a15e3d4 100644 --- a/Runtime/GuruCore/Runtime/IPM/Scripts/IPMConfig.cs +++ b/Runtime/GuruCore/Runtime/IPM/Scripts/IPMConfig.cs @@ -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; } /// /// 用生成设备ID (V2) - /// 直接使用 DeviceIDUtil 作为设备的唯一标识 + /// 直接使用 DeviceIDHelper 作为设备的唯一标识 /// /// - private static string GenerateDeviceIdV2() => DeviceIDUtil.UUID; + private static string GenerateDeviceIdV2() => DeviceIDHelper.UUID; ///