chicken_dy/Assets/HCMiniSdk/Scripts/Analytics/Plugins/HCTDAnalyticsUnity.cs

161 lines
4.8 KiB
C#
Raw Permalink Normal View History

2024-03-07 12:12:48 +00:00
#if UNITY_ANDROID || UNITY_IOS || WEBGL_BYTEDANCE
using System.Collections.Generic;
using ThinkingAnalytics;
using ThinkingData.Analytics;
namespace HC.Plugins
{
public class HCTDAnalyticsUnity : HCSingleton<HCTDAnalyticsUnity>, HCIBaseAnalytics
{
public void InitializeSdk()
{
if (string.IsNullOrEmpty(HCStaticParams.TDAppId) || string.IsNullOrEmpty(HCStaticParams.TDServerUrl))
{
HCDebugger.LogError($"[HCTDAnalytics] 初始化失败,HCStaticParams.TDAppId = {HCStaticParams.TDAppId} HCStaticParams.TDServerUrl = {HCStaticParams.TDServerUrl}");
return;
}
TDAnalytics.Init(HCStaticParams.TDAppId, HCStaticParams.TDServerUrl);
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.All);
TDAnalytics.EnableLog(false);
#if WEBGL_BYTEDANCE
SetSuperProperties(HCWebGLSDKManager.AppInfo.GetBaseInfo());
#endif
var tdFirstEventModel = new TDFirstEventModel("new_device")
{
Properties = new Dictionary<string, object>
{
["status"] = 1
}
};
TDAnalytics.Track(tdFirstEventModel);
#if WEBGL_BYTEDANCE
// // 首次启动微信的onShow回调已经执行需要单独上报一个 start 事件
TrackStart();
StarkSDKSpace.StarkSDK.API.GetStarkAppLifeCycle().OnShowWithDict += e => { TrackStart(); };
StarkSDKSpace.StarkSDK.API.GetStarkAppLifeCycle().OnHide += TrackEnd;
#endif
}
private static void TrackStart()
{
TDAnalytics.Track("ta_mg_show");
TDAnalytics.TimeEvent("ta_mg_hide");
}
private static void TrackEnd()
{
TDAnalytics.Track("ta_mg_hide");
TDAnalytics.Flush();
}
public TrackEventPlatform GetTrackEventPlatform()
{
return TrackEventPlatform.TD;
}
public bool ContainsRemoteConfigKey(string key)
{
return false;
}
public string GetRemoteConfigStr(string key, string defaultValue)
{
return defaultValue;
}
public int GetRemoteConfigInt(string key, int defaultValue)
{
return defaultValue;
}
public bool GetRemoteConfigBool(string key, bool defaultValue)
{
return defaultValue;
}
public void SetUserId(string userId)
{
if (string.IsNullOrEmpty(HCStaticParams.TDAppId) || string.IsNullOrEmpty(HCStaticParams.TDServerUrl))
{
return;
}
TDAnalytics.Login(userId);
}
public void TrackEvent(string eventName, Dictionary<string, object> eventDic = null)
{
if (string.IsNullOrEmpty(HCStaticParams.TDAppId) || string.IsNullOrEmpty(HCStaticParams.TDServerUrl))
{
return;
}
eventDic ??= new Dictionary<string, object>();
TDAnalytics.Track(eventName, eventDic);
}
public void TrackAdRevenue(string eventName, Dictionary<string, object> eventDic)
{
}
public void SetSuperProperties(Dictionary<string, object> eventDic)
{
if (string.IsNullOrEmpty(HCStaticParams.TDAppId) || string.IsNullOrEmpty(HCStaticParams.TDServerUrl))
{
return;
}
eventDic ??= new Dictionary<string, object>();
TDAnalytics.SetSuperProperties(eventDic);
}
public void UserSet(Dictionary<string, object> eventDic)
{
if (string.IsNullOrEmpty(HCStaticParams.TDAppId) || string.IsNullOrEmpty(HCStaticParams.TDServerUrl))
{
return;
}
eventDic ??= new Dictionary<string, object>();
TDAnalytics.UserSet(eventDic);
}
public void Login(string userId)
{
if (string.IsNullOrEmpty(HCStaticParams.TDAppId) || string.IsNullOrEmpty(HCStaticParams.TDServerUrl))
{
return;
}
TDAnalytics.Login(userId);
}
public void UserSetOnce(Dictionary<string, object> eventDic)
{
if (string.IsNullOrEmpty(HCStaticParams.TDAppId) || string.IsNullOrEmpty(HCStaticParams.TDServerUrl))
{
return;
}
eventDic ??= new Dictionary<string, object>();
TDAnalytics.UserSetOnce(eventDic);
}
public void SetLogEnable(bool enable)
{
if (string.IsNullOrEmpty(HCStaticParams.TDAppId) || string.IsNullOrEmpty(HCStaticParams.TDServerUrl))
{
return;
}
TDAnalytics.EnableLog(enable);
}
}
}
#endif