312 lines
10 KiB
C#
312 lines
10 KiB
C#
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Runtime.InteropServices;
|
|
using ThinkingAnalytics.Utils;
|
|
using UnityEngine;
|
|
using ThinkingSDK.PC.Main;
|
|
using ThinkingSDK.PC.Utils;
|
|
using ThinkingSDK.PC.DataModel;
|
|
using ThinkingSDK.PC.Config;
|
|
|
|
namespace ThinkingAnalytics.Wrapper
|
|
{
|
|
public partial class ThinkingAnalyticsWrapper
|
|
{
|
|
#if (UNITY_STANDALONE || UNITY_EDITOR)
|
|
private void init()
|
|
{
|
|
|
|
// public enum TATimeZone
|
|
//{
|
|
// Local,
|
|
// UTC,
|
|
// Asia_Shanghai,
|
|
// Asia_Tokyo,
|
|
// America_Los_Angeles,
|
|
// America_New_York,
|
|
// Other = 100
|
|
//}
|
|
//switch (token.timeZone)
|
|
//{
|
|
// case ThinkingAnalyticsAPI.TATimeZone.Local:
|
|
// break;
|
|
// case ThinkingAnalyticsAPI.TATimeZone.UTC:
|
|
// break;
|
|
// case ThinkingAnalyticsAPI.TATimeZone.Asia_Shanghai:
|
|
// break;
|
|
// case ThinkingAnalyticsAPI.TATimeZone.Asia_Tokyo:
|
|
// break;
|
|
// case ThinkingAnalyticsAPI.TATimeZone.America_Los_Angeles:
|
|
// break;
|
|
// case ThinkingAnalyticsAPI.TATimeZone.America_New_York:
|
|
// break;
|
|
// case ThinkingAnalyticsAPI.TATimeZone.Other:
|
|
// break;
|
|
|
|
//}
|
|
ThinkingSDKConfig config = ThinkingSDKConfig.GetInstance(token.appid,token.serverUrl);
|
|
if (!string.IsNullOrEmpty(token.getTimeZoneId()))
|
|
{
|
|
config.SetTimeZone(TimeZoneInfo.FindSystemTimeZoneById(token.getTimeZoneId()));
|
|
}
|
|
if (token.mode == ThinkingAnalyticsAPI.TAMode.DEBUG)
|
|
{
|
|
config.SetMode(Mode.DEBUG);
|
|
}
|
|
else if(token.mode == ThinkingAnalyticsAPI.TAMode.DEBUG_ONLY)
|
|
{
|
|
config.SetMode(Mode.DEBUG_ONLY);
|
|
}
|
|
ThinkingPCSDK.Init(token.appid,token.serverUrl,config);
|
|
}
|
|
|
|
private void identify(string uniqueId)
|
|
{
|
|
ThinkingPCSDK.Identifiy(uniqueId,token.appid);
|
|
}
|
|
|
|
private string getDistinctId()
|
|
{
|
|
return ThinkingPCSDK.DistinctId(token.appid);
|
|
}
|
|
|
|
private void login(string accountId)
|
|
{
|
|
ThinkingPCSDK.Login(accountId,token.appid);
|
|
}
|
|
|
|
private void logout()
|
|
{
|
|
ThinkingPCSDK.Logout(token.appid);
|
|
}
|
|
|
|
private void flush()
|
|
{
|
|
|
|
}
|
|
|
|
private static void setVersionInfo(string lib_name, string lib_version) {
|
|
ThinkingPCSDK.SetLibName(lib_name);
|
|
ThinkingPCSDK.SetLibVersion(lib_version);
|
|
}
|
|
|
|
private void track(ThinkingAnalyticsEvent taEvent)
|
|
{
|
|
ThinkingSDKEventData eventData = null ;
|
|
switch (taEvent.EventType)
|
|
{
|
|
case ThinkingAnalyticsEvent.Type.FIRST:
|
|
{
|
|
eventData = new ThinkingSDKFirstEvent(taEvent.EventName);
|
|
if (!string.IsNullOrEmpty(taEvent.ExtraId))
|
|
{
|
|
((ThinkingSDKFirstEvent)eventData).SetFirstCheckId(taEvent.ExtraId);
|
|
}
|
|
}
|
|
break;
|
|
case ThinkingAnalyticsEvent.Type.UPDATABLE:
|
|
eventData = new ThinkingSDKUpdateEvent(taEvent.EventName,taEvent.ExtraId);
|
|
break;
|
|
case ThinkingAnalyticsEvent.Type.OVERWRITABLE:
|
|
eventData = new ThinkingSDKOverWritableEvent(taEvent.EventName, taEvent.ExtraId);
|
|
break;
|
|
}
|
|
if (dynamicSuperProperties != null)
|
|
{
|
|
eventData.SetProperties(dynamicSuperProperties.GetDynamicSuperProperties());
|
|
}
|
|
if (taEvent.Properties != null)
|
|
{
|
|
eventData.SetProperties(taEvent.Properties);
|
|
}
|
|
if (taEvent.EventTime != null)
|
|
{
|
|
eventData.SetEventTime(taEvent.EventTime);
|
|
}
|
|
ThinkingPCSDK.Track(eventData, token.appid);
|
|
}
|
|
|
|
private void track(string eventName, string properties)
|
|
{
|
|
Dictionary<string,object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.Track(eventName,propertiesDic,token.appid);
|
|
}
|
|
|
|
private void track(string eventName, string properties, DateTime dateTime)
|
|
{
|
|
Dictionary<string,object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.Track(eventName,propertiesDic,dateTime,token.appid);
|
|
}
|
|
|
|
private void setSuperProperties(string superProperties)
|
|
{
|
|
Dictionary<string, object> superPropertiesDic = TD_MiniJSON.Deserialize(superProperties);
|
|
ThinkingPCSDK.SetSuperProperties(superPropertiesDic,token.appid);
|
|
}
|
|
|
|
private void unsetSuperProperty(string superPropertyName)
|
|
{
|
|
ThinkingPCSDK.UnsetSuperProperty(superPropertyName,token.appid);
|
|
}
|
|
|
|
private void clearSuperProperty()
|
|
{
|
|
ThinkingPCSDK.ClearSuperProperties(token.appid);
|
|
}
|
|
|
|
private Dictionary<string, object> getSuperProperties()
|
|
{
|
|
return ThinkingPCSDK.SuperProperties(token.appid);
|
|
}
|
|
|
|
private Dictionary<string, object> getPresetProperties()
|
|
{
|
|
return ThinkingPCSDK.PresetProperties(token.appid);
|
|
}
|
|
private void timeEvent(string eventName)
|
|
{
|
|
ThinkingPCSDK.TimeEvent(eventName,token.appid);
|
|
}
|
|
|
|
private void userSet(string properties)
|
|
{
|
|
Dictionary<string, object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.UserSet(propertiesDic,token.appid);
|
|
}
|
|
|
|
private void userSet(string properties, DateTime dateTime)
|
|
{
|
|
Dictionary<string, object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.UserSet(propertiesDic,dateTime,token.appid);
|
|
}
|
|
|
|
private void userUnset(List<string> properties)
|
|
{
|
|
ThinkingPCSDK.UserUnset(properties,token.appid);
|
|
}
|
|
|
|
private void userUnset(List<string> properties, DateTime dateTime)
|
|
{
|
|
ThinkingPCSDK.UserUnset(properties,dateTime,token.appid);
|
|
}
|
|
|
|
private void userSetOnce(string properties)
|
|
{
|
|
Dictionary<string, object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.UserSetOnce(propertiesDic, token.appid);
|
|
}
|
|
|
|
private void userSetOnce(string properties, DateTime dateTime)
|
|
{
|
|
Dictionary<string, object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.UserSetOnce(propertiesDic,dateTime,token.appid);
|
|
}
|
|
|
|
private void userAdd(string properties)
|
|
{
|
|
Dictionary<string, object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.UserAdd(propertiesDic,token.appid);
|
|
}
|
|
|
|
private void userAdd(string properties, DateTime dateTime)
|
|
{
|
|
Dictionary<string, object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.UserAdd(propertiesDic,dateTime,token.appid);
|
|
}
|
|
|
|
private void userDelete()
|
|
{
|
|
ThinkingPCSDK.UserDelete(token.appid);
|
|
}
|
|
|
|
private void userDelete(DateTime dateTime)
|
|
{
|
|
ThinkingPCSDK.UserDelete(dateTime,token.appid);
|
|
}
|
|
|
|
private void userAppend(string properties)
|
|
{
|
|
Dictionary<string, object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.UserAppend(propertiesDic,token.appid);
|
|
}
|
|
|
|
private void userAppend(string properties, DateTime dateTime)
|
|
{
|
|
Dictionary<string, object> propertiesDic = TD_MiniJSON.Deserialize(properties);
|
|
ThinkingPCSDK.UserAppend(propertiesDic,dateTime,token.appid);
|
|
}
|
|
|
|
private void setNetworkType(ThinkingAnalyticsAPI.NetworkType networkType)
|
|
{
|
|
|
|
}
|
|
|
|
private string getDeviceId()
|
|
{
|
|
return ThinkingPCSDK.GetDeviceId();
|
|
}
|
|
|
|
private void optOutTracking()
|
|
{
|
|
ThinkingPCSDK.OptTracking(false, token.appid);
|
|
}
|
|
|
|
private void optOutTrackingAndDeleteUser()
|
|
{
|
|
ThinkingPCSDK.OptTrackingAndDeleteUser(token.appid);
|
|
}
|
|
|
|
private void optInTracking()
|
|
{
|
|
ThinkingPCSDK.OptTracking(true, token.appid);
|
|
}
|
|
|
|
private void enableTracking(bool enabled)
|
|
{
|
|
ThinkingPCSDK.EnableTracking(enabled);
|
|
}
|
|
|
|
private ThinkingAnalyticsWrapper createLightInstance(ThinkingAnalyticsAPI.Token delegateToken)
|
|
{
|
|
return this;
|
|
}
|
|
|
|
private string getTimeString(DateTime dateTime)
|
|
{
|
|
|
|
return ThinkingPCSDK.TimeString(dateTime,token.appid);
|
|
}
|
|
|
|
private void enableAutoTrack(AUTO_TRACK_EVENTS autoTrackEvents)
|
|
{
|
|
if ((autoTrackEvents & AUTO_TRACK_EVENTS.APP_INSTALL) != 0)
|
|
{
|
|
ThinkingPCSDK.EnableAutoTrack(ThinkingSDK.PC.Main.AUTO_TRACK_EVENTS.APP_INSTALL, token.appid);
|
|
}
|
|
if ((autoTrackEvents & AUTO_TRACK_EVENTS.APP_START) != 0)
|
|
{
|
|
ThinkingPCSDK.EnableAutoTrack(ThinkingSDK.PC.Main.AUTO_TRACK_EVENTS.APP_START,token.appid);
|
|
}
|
|
if ((autoTrackEvents & AUTO_TRACK_EVENTS.APP_CRASH) != 0)
|
|
{
|
|
ThinkingPCSDK.EnableAutoTrack(ThinkingSDK.PC.Main.AUTO_TRACK_EVENTS.APP_CRASH,token.appid);
|
|
}
|
|
}
|
|
private static void enable_log(bool enableLog)
|
|
{
|
|
ThinkingPCSDK.EnableLog(enableLog);
|
|
}
|
|
private static void calibrateTime(long timestamp)
|
|
{
|
|
ThinkingPCSDK.CalibrateTime(timestamp);
|
|
}
|
|
|
|
private static void calibrateTimeWithNtp(string ntpServer)
|
|
{
|
|
|
|
}
|
|
#endif
|
|
}
|
|
} |