miduo_client/Assets/ManagedResources/~Lua/Modules/DataCenterService/ThinkingAnalyticsManager.lua

131 lines
3.0 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

ThinkingAnalyticsManager = {}
local this = ThinkingAnalyticsManager
TA_EVENT = {
}
local function _DicToStr(data)
local index = 1
local str = ""
local fmt = "%s#%s#%s"
for key, value in pairs(data) do
if index ~= 1 then
str = str .."|"
end
local valueType = 0
if type(value) == "number" then
valueType = 1
elseif type(value) == "string" then
local sl = string.split(value, "#")
value = sl[1]
if sl[2] then
valueType = tonumber(sl[2]) or 0
end
end
str = str..string.format(fmt, key, tostring(value), valueType)
index = index + 1
end
return str
end
function this.Initialize()
if AppConst.isSDK then
-- 监听赛季结束事件
Game.GlobalEvent:AddEvent(GameEvent.Network.OnReceiveHeartBeat, function(network, time)
if network.type == SocketType.LOGIN then
this.CalibrateTime(time)
end
end)
-- 尝试触发 安装事件怀疑安装事件是在第一次触发track时触发的
-- App.TAMgr:Init()
end
end
-- 校对时间
function this.CalibrateTime(time)
if AppConst.isSDK then
App.TAMgr:CalibrateTime(time*1000)
end
end
-- 设置访客Id
function this.SetDistinctId(distinctId)
if AppConst.isSDK then
App.TAMgr:SetDistinctId(distinctId)
end
end
-- 获取访客Id
function this.GetDistinctId()
if AppConst.isSDK then
return App.TAMgr:GetDistinctId()
end
return ""
end
-- 获取设备Id
function this.GetDeviceId()
if AppConst.isSDK then
if ServerConfigManager.IsSettingActive(ServerConfigManager.SettingConfig.ThinkAnalysis_GetDeviceID)
or ServerConfigManager.GetSDKVersionCode() >= 24
then
return App.TAMgr:GetDeviceId()
end
return AndroidDeviceInfo.Instance:GetDeviceID()
end
return ""
end
-- 登录
function this.Login(accountId)
if AppConst.isSDK then
App.TAMgr:Login(accountId)
end
end
-- 登出
function this.Logout()
if AppConst.isSDK then
App.TAMgr:Logout()
end
end
-- 静态数据设置
local _SuperPropertise = {}
function this.SetSuperProperties(data)
if AppConst.isSDK then
for key, value in pairs(data) do
_SuperPropertise[key] = value
end
local sData = _DicToStr(_SuperPropertise)
Log("打点静态数据:"..sData)
App.TAMgr:SetSuperProperties(sData)
end
end
-- 清除静态数据
function this.ClearSuperProperties()
if AppConst.isSDK then
_SuperPropertise = {}
App.TAMgr:ClearSuperProperties()
end
end
-- 打点事件
function this.Track(event, data)
if AppConst.isSDK then
Log("打点事件:"..event)
local dStr = data and _DicToStr(data) or ""
Log("打点数据:"..dStr)
App.TAMgr:Track(event, dStr)
end
end
return ThinkingAnalyticsManager