update: 更新逻辑, 重构事件上报

Signed-off-by: huyufei <yufei.hu@castbox.fm>
胡宇飞 2024-08-09 18:21:38 +08:00
parent a1ad7b31de
commit 94def4fc3b
3 changed files with 65 additions and 19 deletions

View File

@ -11,6 +11,17 @@ namespace Guru
replay
}
/// <summary>
/// 打点优先级
/// </summary>
public enum EventPriority
{
Emergence = 0,
High = 5,
Default = 10,
Low = 15
}
//打点常量定义
public partial class Analytics
{
@ -134,6 +145,7 @@ namespace Guru
public const string PropertyFirebaseId = "firebase_id"; // FirebaseID
public const string PropertyGoogleAdId = "ad_id"; // Google AdId
public const string PropertyAnalyticsExperimentalGroup = "guru_analytics_exp"; // Analytics Experimental Group
public const string PropertyGuruSdkVersion = "sdk_version"; // GuruSDK 版本号
public static HashSet<string> PredefinedMidWareProperties = new HashSet<string>()

View File

@ -147,6 +147,12 @@ namespace Guru
_propertiesManager.ReportIDFA(idfa);
}
public static void SetGuruSdkVersion(string sdkVersion)
{
_propertiesManager.ReportGuruSdkVersion(sdkVersion);
}
#endregion
@ -296,7 +302,11 @@ namespace Guru
_guruEventDriver.AddProperty(Analytics.PropertyIDFA, idfa);
_firebaseEventDriver.AddProperty(Analytics.PropertyIDFA, idfa);
}
public void ReportGuruSdkVersion(string sdkVersion)
{
_guruEventDriver.AddProperty(Analytics.PropertyGuruSdkVersion, sdkVersion);
_firebaseEventDriver.AddProperty(Analytics.PropertyGuruSdkVersion, sdkVersion);
}
}
#endregion

View File

@ -149,27 +149,13 @@ namespace Guru
/// </summary>
/// <param name="level">总计完成的管卡数 (b_play)</param>
/// <param name="data"></param>
public static void LevelEndSuccess( int level, Dictionary<string, object> data)
public static void TrackLevelEndSuccessEvent(LevelEndSuccessEventData eventData)
{
if (level > GuruSettings.Instance.AnalyticsSetting.LevelEndSuccessNum)
if (eventData.level > GuruSettings.Instance.AnalyticsSetting.LevelEndSuccessNum)
return;
string eventName = $"level_end_success_{level}";
var dict = data.ToDictionary(
entry => entry.Key,
entry => entry.Value);
dict["level"] = level;
TrackEvent(eventName, dict, new EventSetting()
{
EnableFirebaseAnalytics = true,
EnableGuruAnalytics = true,
EnableAdjustAnalytics = true
});
TrackEvent(eventData.eventName, eventData.eventData, eventData.eventSetting, eventData.priority);
}
/// <summary>
/// 第一次通关打点
/// </summary>
@ -790,6 +776,44 @@ namespace Guru
}
public class LevelEndSuccessEventData
{
public readonly int level;
public readonly string eventName;
public readonly Dictionary<string, object> eventData;
public readonly Analytics.EventSetting eventSetting;
public readonly int priority;
public LevelEndSuccessEventData()
{
}
public LevelEndSuccessEventData(int level, Dictionary<string, object> extra = null)
{
this.level = level;
eventName = $"level_end_success_{level}";
eventData = new Dictionary<string, object>();
if (extra != null)
{
foreach (var key in extra.Keys)
{
eventData[key] = extra[key];
}
}
eventData["level"] = level;
eventSetting = new Analytics.EventSetting()
{
EnableFirebaseAnalytics = true,
EnableGuruAnalytics = true,
EnableAdjustAnalytics = true
};
priority = (int)EventPriority.Emergence;
}
}
}