upm-guru-sdk-analytics/Runtime/Script/Impl/AnalyticsAgentStub.cs

122 lines
3.8 KiB
C#

using System.Text;
using UnityEngine;
namespace Guru
{
public class AnalyticsAgentStub: IAnalyticsAgent
{
public static readonly string TAG = "[EDT]";
private bool _isShowLog = false;
private bool _isDebug = false;
public void Init(string appId, string deviceInfo, bool isDebug = false)
{
#if UNITY_EDITOR
_isShowLog = true;
#endif
_isDebug = isDebug;
if(_isShowLog)
Debug.Log($"{TAG} init with Debug: <color=orange>{isDebug}</color> appId:{appId} deviceInfo:{deviceInfo}");
}
public void SetScreen(string screenName)
{
if(_isShowLog)
Debug.Log($"{TAG} SetScreen: <color=orange>{screenName}</color>");
}
public void SetAdId(string id)
{
if(_isShowLog)
Debug.Log($"{TAG} SetAdId: <color=orange>{id}</color>");
}
public void SetUserProperty(string key, string value)
{
if(_isShowLog)
Debug.Log($"{TAG} SetUserProperty: <color=orange>{key} : {value}</color>");
}
public void SetFirebaseId(string id)
{
if(_isShowLog)
Debug.Log($"{TAG} SetFirebaseId: <color=orange>{id}</color>");
}
public void SetAdjustId(string id)
{
if(_isShowLog)
Debug.Log($"{TAG} SetAdjustId: <color=orange>{id}</color>");
}
public void SetDeviceId(string deviceId)
{
if(_isShowLog)
Debug.Log($"{TAG} SetDeviceId: <color=orange>{deviceId}</color>");
}
public void SetUid(string uid)
{
if(_isShowLog)
Debug.Log($"{TAG} SetUid: <color=orange>{uid}</color>");
}
public bool IsDebug => _isDebug;
public void LogEvent(string eventName, string parameters)
{
if (_isShowLog)
{
var raw = parameters.Split(',');
if (raw.Length > 0)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < raw.Length; i++)
{
var ss = raw[i];
if(string.IsNullOrEmpty(ss)) continue;
var p = ss.Split(':');
if (p.Length > 1)
{
var key = p[0];
var t = p[1].Substring(0, 1);
var v = p[1].Substring(1, p[1].Length - 1);
// 字符串解析
switch(t){
case "i":
sb.Append($"<color=orange>{key} : [int]{v}</color>\n");
break;
case "d":
sb.Append($"<color=orange>{key} : [double]{v}</color>\n");
break;
default:
sb.Append($"<color=orange>{key} : [string]{v}</color>\n");
break;
}
}
}
Debug.Log($"{TAG} LogEvent: event:<color=orange>{eventName}</color> Properties:\n{sb.ToString()}");
}
}
}
public void ReportEventSuccessRate()
{
Debug.Log($"{TAG} Log Event Success Rate");
}
public void SetTch02Value(double value)
{
Debug.Log($"{TAG} Tch02MaxValue: {value}");
}
}
}