From 8b7054ef004b8b023424b16f58e11f266e03ca02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=89=E5=B3=B0?= Date: Mon, 1 Sep 2025 17:57:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=B4=E6=97=B6=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Script/SDKManager/AppSDKManager.cs | 53 ++++++++++++ .../FireBaseAnalyticsManager.cs | 86 +++++++++++++------ .../FirebaseManager/FireBaseSDKManager.cs | 1 + .../SDKManager/ShuShuMangage/ShuShuEvent.cs | 14 +++ 4 files changed, 128 insertions(+), 26 deletions(-) diff --git a/Assets/Script/SDKManager/AppSDKManager.cs b/Assets/Script/SDKManager/AppSDKManager.cs index f816723..313bed8 100644 --- a/Assets/Script/SDKManager/AppSDKManager.cs +++ b/Assets/Script/SDKManager/AppSDKManager.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using EFSDK; using Firebase.RemoteConfig; +using Newtonsoft.Json; using Script.Common; using Script.SDKManager.AdsSDKManager.Constant; using Script.Utils; @@ -35,6 +36,8 @@ public class AppSDKManager : MonoBehaviour StartCoroutine(coroutine); } + #region ad + public void ShowInterstitial(string position, IvType ivadType = IvType.IV1, Action callback = null) { //插屏展示逻辑 @@ -59,6 +62,56 @@ public class AppSDKManager : MonoBehaviour { return AdsSDKManager.Instance.IsRewardAdReady();; } + + #endregion + + #region 埋点 + + public void LogEvent(string eventName) + { + // ShuShuEvent.Instance.Track(eventName); + // FireBaseAnalyticsManager.Instance.LogEvent(eventName); + } + + public void LogEvent(string eventName, string key1, object value1) + { + // ShuShuEvent.Instance.Track(eventName, key1, value1); + // FireBaseAnalyticsManager.Instance.LogEvent(eventName, key1, value1); + } + + public void LogEvent(string eventName, string key1, object value1, string key2, object value2) + { + + } + + public void LogEvent(string eventName, Dictionary extraInfo) + { + + } + + /// + /// 公共事件属性 + /// + /// + public void SetSuperProperties(Dictionary args) + { + ShuShuEvent.Instance.SetSuperProperties(args); + FireBaseAnalyticsManager.Instance.SetSuperProperties(args); + } + + /// + /// 用户属性 + /// + /// + public void SetUserProperties(Dictionary args) + { + ShuShuEvent.Instance.UserSet(args); + FireBaseAnalyticsManager.Instance.SetUserProperty(args); + } + + #endregion + + public void ShowRewardAd(string position, Action callback = null) { diff --git a/Assets/Script/SDKManager/FirebaseManager/FireBaseAnalyticsManager.cs b/Assets/Script/SDKManager/FirebaseManager/FireBaseAnalyticsManager.cs index f5f1f0f..1fc2b76 100644 --- a/Assets/Script/SDKManager/FirebaseManager/FireBaseAnalyticsManager.cs +++ b/Assets/Script/SDKManager/FirebaseManager/FireBaseAnalyticsManager.cs @@ -1,4 +1,5 @@ +using System; using System.Collections.Generic; using Firebase.Analytics; using Newtonsoft.Json; @@ -12,34 +13,33 @@ using Script.Utils; /// public class FireBaseAnalyticsManager : NormalSingleton { + private const string KEY_SUPER_PROPERTIES = "KEY_SUPER_PROPERTIES"; + + private Dictionary superProperties = new Dictionary(); + + public void InitSuperProperties() + { + string json = PlayerPrefsUtils.GetPlayerPrefsString(KEY_SUPER_PROPERTIES, ""); + if (!string.IsNullOrEmpty(json)) + { + superProperties = JsonConvert.DeserializeObject>(json); + } + } + + public void LogEvent(string eventName) { - Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName); - } - - public void LogEvent(string eventName, string key1, string value1) - { - Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, key1, value1); - } - - public void LogEvent(string eventName, string key1, double value1) - { - Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, key1, value1); - } - - public void LogEvent(string eventName, string key1, long value1) - { - Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, key1, value1); - } - - public void LogEvent(string eventName, string key1, int value1) - { - Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, key1, value1); - } - - public void LogEvent(string eventName, Parameter[] parameters) - { - Firebase.Analytics.FirebaseAnalytics.LogEvent(eventName, parameters); + List parameterList = new List(); + if (superProperties != null) + { + foreach (var superProperty in superProperties) + { + Parameter parameter = new Parameter(superProperty.Key, superProperty.Value.ToString()); + parameterList.Add(parameter); + } + } + + FirebaseAnalytics.LogEvent(eventName, parameterList.ToArray()); } public void LogEvent(string eventName, Dictionary dict) @@ -62,6 +62,40 @@ public class FireBaseAnalyticsManager : NormalSingleton + /// 设置用户属性 + /// + /// + /// + public void SetUserProperty(Dictionary propertys) + { + foreach (var property in propertys) + { + SetUserProperty(property.Key, property.Value.ToString()); + } + + } + + /// + /// 设置公共事件属性 + /// + /// + public void SetSuperProperties(Dictionary propertys) + { + if (superProperties == null) + { + superProperties = new Dictionary(); + } + + foreach (var property in propertys) + { + superProperties[property.Key] = property.Value; + } + + string json = JsonConvert.SerializeObject(superProperties); + PlayerPrefsUtils.SavePlayerPrefsString(KEY_SUPER_PROPERTIES, json); + } /// diff --git a/Assets/Script/SDKManager/FirebaseManager/FireBaseSDKManager.cs b/Assets/Script/SDKManager/FirebaseManager/FireBaseSDKManager.cs index d09b427..895e9b4 100644 --- a/Assets/Script/SDKManager/FirebaseManager/FireBaseSDKManager.cs +++ b/Assets/Script/SDKManager/FirebaseManager/FireBaseSDKManager.cs @@ -16,5 +16,6 @@ public class FireBaseSDKManager : NormalSingleton private void InitSDK() { FireBaseRemoteConfigManager.Instance.FetchRemoteConfig(); + FireBaseAnalyticsManager.Instance.InitSuperProperties(); } } diff --git a/Assets/Script/SDKManager/ShuShuMangage/ShuShuEvent.cs b/Assets/Script/SDKManager/ShuShuMangage/ShuShuEvent.cs index 38783cb..5ee235c 100644 --- a/Assets/Script/SDKManager/ShuShuMangage/ShuShuEvent.cs +++ b/Assets/Script/SDKManager/ShuShuMangage/ShuShuEvent.cs @@ -30,6 +30,20 @@ public class ShuShuEvent : NormalSingleton TDAnalytics.Track(eventName); } + /// + /// 发送事件 + /// + public void Track(string eventName, string key1, object value1) + { + var extraInfo = new Dictionary(); + if (key1 != null && value1 != null) + { + extraInfo[key1] = value1; + } + + Track(eventName, extraInfo); + } + /// /// 发送事件 ///