- tencentCloudMta
- 概述
- init
- trackActiveBegin
- trackActiveEnd
- trackPageViewBegin
- trackPageViewEnd
- trackCustomKeyValueEvent
- trackCustomKeyValueEventBegin
- trackCustomKeyValueEventEnd
- trackCustomKeyValueEventDuration
- trackCustomEvent
- trackCustomEventBegin
- trackCustomEventEnd
- commitCachedStats
- reportAccountExt
- removeAccountExt
- setUserProperty
- reportQQ
- getCustomProperty
- trackError
- trackException
- startMonitor
- stopMonitor
- getLastLocation
- MTA管理控制台使用
tencentCloudMta
来自于:开发者立即使用
基础类
init trackActiveBegin trackActiveEnd trackPageViewBegin trackPageViewEnd trackCustomKeyValueEvent trackCustomKeyValueEventBegin trackCustomKeyValueEventEnd trackCustomKeyValueEventDuration trackCustomEvent trackCustomEventBegin trackCustomEventEnd commitCachedStats reportAccountExt removeAccountExt setUserProperty reportQQ getCustomProperty trackError trackException
LBS功能
注意:在 iOS 上版本使用定位功能,需要在云编译时勾选 定位(使用期间) 和 定位服务(始终)
startMonitor stopMonitor getLastLocation
概述
tencentCloudMta 模块封装了腾讯移动分析MTA。
腾讯移动分析MTA提供实时数据统计分析服务,监控版本质量、渠道状况、用户画像属性及用户细分行为,通过数据可视化展现,协助产品、运营和市场决策。主要功能:
- 通过网页监控,可以监控用户访问的页面。
- 通过自定义事件,对用户行为进行追踪,完成对用户行为细节的记录。
- 通过账号统计,可以实现对多种账号应用系统的统计,如微信/qq/微博等账号分类及统计,统计数据指标含新增账号、活跃账号等,相对于设备维度统计,可以帮助开发者更贴合业务统计用户注册以及登录情况。
- 通过自定义用户属性,比如游戏用户的会员等级、电商用户累计消费金额,并通过管理台查看其属性分布或创建不同属性的用户群,从其活跃程度、留存率、流失、用户画像等全维度进行对比分析。
- 通过用户画像, 简单方便的统计用户数据。
- 通过在线参数, 可用于内容更新,文案、价格、应用欢迎语、开关控制,广告的开启和关闭、简单的逻辑控制,比如当满足一定条件之后更改对应的内容展示。
- 通过错误统计, 既可以统计 APP 的 crash,也可以统计 APP 中的逻辑错误,用于产品的优化。
- 通过LBS上报,实时提供地理位置,MTA只会在App在前台运行的时候进行采集,并且有针对采集频率的自动控制策略,主要用于反作弊监测。
使用前需了解MTA相关内容,可查看文档。
1.ios系统版本:ios8.0及以上, 请注意编译时在编译界面的高级设置里面选择支持的系统版本。
2.Android: 编译时需勾选“使用升级环境编译”。
3.必须注册有MTA账户,并开通服务。
使用此模块之前先配置 config 文件,配置方法如下:
- 名称:tencentCloudMta
- 参数:iosAppKey、androidAppKey、channel
- 配置示例:
<feature name="tencentCloudMta">
<param name="iosAppKey" value="I1WRR2****" />
<param name="androidAppKey" value="AQ2WX6W****" />
<param name="channel" value="test" />
</feature>
字段描述:
iosAppKey:账号生成的App Key(ios), 是构建 API 请求的重要凭证
androidAppKey:账号生成的App Key(android), 是构建 API 请求的重要凭证
channel:渠道-用户下载安装应用的来源平台。若用户从多个渠道下载安装应用,只会按初始来源渠道计算用户。
模块接口
init
初始化sdk (调用优先级最高,只需要调用一次) 如果有输入参数,则使用输入的参数,否则默认从config文件中读取参数。
init({params}, callback(ret, err))
示例代码
var mta = api.require('tencentCloudMta');
mta.init({
reportStrategy: 1
}, function(ret, err) {
alert(JSON.stringify(ret));
});
params
iosAppKey:
- 类型:字符串
- 默认值:若在 config.xml 里面配置了iosAppKey,则默认值为配置的值
- 描述:(可选项)从MTA获取的app key(ios)
channel:
- 类型:字符串
- 默认值: 若在 config.xml 里面配置了channel,则默认值为配置的值
- 描述:(可选项)渠道,用户下载安装应用的来源平台,可自定义,例如:test;该字段只 iOS 有效
reportStrategy:
- 类型:数字
- 描述:(可选项)上报策略
- 默认值: 平台设置的上报策略
- 取值:
{
1 --- MTA_STRATEGY_INSTANT,实时上报
2 --- MTA_STRATEGY_BATCH,批量上报,达到缓存临界值时触发发送
3 --- MTA_STRATEGY_APP_LAUNCH,应用启动时发送
4 --- MTA_STRATEGY_ONLY_WIFI,仅在WIFI网络下发送
5 --- MTA_STRATEGY_PERIOD,每间隔一定最小时间发送,默认24小时
6 --- MTA_STRATEGY_DEVELOPER,开发者在代码中主动调用发送行为
7 --- MTA_STRATEGY_ONLY_WIFI_NO_CACHE,仅在WIFI网络下发送, 发送失败以及非WIFI网络情况下不缓存数据
8 --- MTA_STRATEGY_NO_CACHE_BATCH_PERIOD,不缓存数据,批量上报+间隔上报组合。适用于上报特别频繁的场景。该字段只 iOS 有效
}
maxStoreEventCount:
- 类型:数字
- 描述:(可选项)最大缓存的未发送的统计消息,默认1024条
maxLoadEventCount:
- 类型:数字
- 描述:(可选项)一次最大加载未发送的缓存消息,默认30条;该字段只 iOS 有效
minBatchReportCount:
- 类型:数字
- 描述:(可选项)统计上报策略为BATCH时,触发上报时最小缓存消息数,默认30条;该字段只 iOS 有效
maxBatchReportCount:
- 类型:数字
- 描述:(可选项)统计上报策略为BATCH时,设置最大批量发送消息个数,默认30条;该字段只 Android 有效
maxSendRetryCount:
- 类型:数字
- 描述:(可选项)发送失败最大重试数,默认3次
sendPeriodMinutes:
- 类型:数字
- 描述:(可选项)上报策略为PERIOD时发送间隔,单位分钟,默认一天(1440分钟)
maxParallelTimingEvents:
- 类型:数字
- 描述:(可选项)允许同时统计的时长事件数,默认1024条
maxReportEventLength:
- 类型:数字
- 描述: (可选项)最大上报的单条event长度,超过不上报,单位Byte,默认4096,即4KB
ifa:
- 类型:字符串
- 描述:(可选项)设备的idfa,建议有广告权限的app设置此字段;该字段只 iOS 有效
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.init({
reportStrategy: 1
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackActiveBegin
开始统计使用时长,最好在APP进入前台时调用,使用“resume”事件属性
trackActiveBegin(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackActiveBegin(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackActiveEnd
结束统计使用时长,最好在APP退出前台时调用,使用“pause”事件属性
trackActiveEnd(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackActiveEnd(function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackPageViewBegin
标记页面访问
trackPageViewBegin({params}, callback(ret, err))
params
pageName:
- 类型:字符串
- 描述:访问页面名称
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackPageViewBegin({
pageName: 'index'
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackPageViewEnd
结束页面访问
trackPageViewEnd({params}, callback(ret, err))
params
pageName:
- 类型:字符串
- 描述:访问页面名称
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackPageViewEnd({
pageName: 'index'
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackCustomKeyValueEvent
自定义事件次数统计
trackCustomKeyValueEvent({params}, callback(ret, err))
params
eventId:
- 类型:字符串
- 描述:事件id, 平台配置自定义事件id
kvs:
- 类型:JSON对象
- 描述:事件参数, 平台配置自定义事件参数
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
statusCode: 0 //错误码 0 - 成功
-1 - MTA服务未启动,请检查是否调用
1000 - 参数错误
1001 - 参数过长
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackCustomKeyValueEvent({
eventId: 'push_1',
kvs: {
name: 'wkz',
value: '123'
}
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackCustomKeyValueEventBegin
自定义事件时长统计 开始
trackCustomKeyValueEventBegin({params}, callback(ret, err))
params
eventId:
- 类型:字符串
- 描述:事件id, 平台配置自定义事件id
kvs:
- 类型:JSON对象
- 描述:事件参数, 平台配置自定义事件参数
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
statusCode: 0 //错误码 0 - 成功
-1 - MTA服务未启动,请检查是否调用
1000 - 参数错误
1001 - 参数过长
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackCustomKeyValueEventBegin({
eventId: 'push_1',
kvs: {
name: 'wkz',
value: '123'
}
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackCustomKeyValueEventEnd
自定义事件时长统计 结束
trackCustomKeyValueEventEnd({params}, callback(ret, err))
params
eventId:
- 类型:字符串
- 描述:事件id, 平台配置自定义事件id
kvs:
- 类型:JSON对象
- 描述:事件参数, 平台配置自定义事件参数
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
statusCode: 0 //错误码 0 - 成功
-1 - MTA服务未启动,请检查是否调用
1000 - 参数错误
1001 - 参数过长
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackCustomKeyValueEventEnd({
eventId: 'push_1',
kvs: {
name: 'wkz',
value: '123'
}
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackCustomKeyValueEventDuration
自定义事件时长统计 上传已统计时长
trackCustomKeyValueEventDuration({params}, callback(ret, err))
params
eventId:
- 类型:字符串
- 描述:事件id, 平台配置自定义事件id
kvs:
- 类型:JSON对象
- 描述:事件参数, 平台配置自定义事件参数
seconds:
- 类型:数字
- 描述:自定义事件已统计时长
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
statusCode: 0 //错误码 0 - 成功
-1 - MTA服务未启动,请检查是否调用
1000 - 参数错误
1001 - 参数过长
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackCustomKeyValueEventDuration({
seconds: 65,
eventId: 'push_1',
kvs: {
name: 'wkz',
value: '123'
},
isRealTime: true
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
trackCustomEvent
带任意参数的自定义事件次数统计
trackCustomEvent({params}, callback(ret, err))
params
eventId:
- 类型:字符串
- 描述:事件id, 平台配置自定义事件id
args:
- 类型:字符串
- 描述:事件参数
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require(‘tencentCloudMta’);
mta.trackCustomEvent({
eventId: 'button_click',
args: 'OK'
}, function (ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
trackCustomEventBegin
带任意参数的自定义事件时长统计 开始
trackCustomEventBegin({params}, callback(ret, err))
params
eventId:
- 类型:字符串
- 描述:事件id, 平台配置自定义事件id
args:
- 类型:字符串
- 描述:事件参数
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require(‘tencentCloudMta’);
mta.trackCustomEventBegin({
eventId: 'playTime',
args: 'firstPass'
}, function (ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
trackCustomEventEnd
带任意参数的自定义事件时长统计 结束
trackCustomEventEnd({params}, callback(ret, err))
params
eventId:
- 类型:字符串
- 描述:事件id, 平台配置自定义事件id
args:
- 类型:字符串
- 描述:事件参数
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require(‘tencentCloudMta’);
mta.trackCustomEventEnd({
eventId: 'playTime',
args: 'firstPass'
}, function (ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
commitCachedStats
手动上传缓存事件
commitCachedStats({params}, callback(ret, err))
params
maxCount:
- 类型:数字
- 描述:最大上报事件的条数
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.commitCachedStats({
maxCount: 200
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
reportAccountExt
账号统计
reportAccountExt({params}, callback(ret, err))
params
userInfo:
- 类型:JSON对象
- 描述:账号信息
- 内部字段:
{
accountType: 1, //账号类型, 必填, 默认0: 1-电话 2-邮箱 3-QQ号 1000-微信 1001-QQ开放平台Openid 1002-新浪微博 1003-支付宝 1004-淘宝 1005-豆瓣 1006-facebook 1007-twitter 1008-谷歌 1009-百度 1010-京东 1011-钉钉 1012-小米 1013-linkedin 1014-line 1015-instagram 2000-游客登录 2001-用户自定义
account: '153123456789' //账号id, 字符串类型, 必填
requestType: 1, //账号登录类型, 可选填, 默认-1: -1-未定义 1-新登录 2-刷新token 3-交换短票据 4-交换第三方票据
accountStatus: 1, //账号状态, 可选填, 默认-1: -1-未定义 1-正常使用 0-登出
expireDate: 1556357906439, //账号过期时间, 数字类型, 时间戳, 可选填
lastUpdateDate: 1556357906439 //账号上次更新时间, 数字类型, 时间戳, 可选填
}
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.reportAccountExt({
userInfo: {
accountType: 1,
account: '15396261029',
requestType: 1,
accountStatus: 1,
expireDate: 1556357906439,
lastUpdateDate: 1556357706439
}
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
removeAccountExt
账号统计 注销 注意: 此接口仅Android可用,iOS用户注销直接调用reportAccountExt接口,accountStatus属性传0即可。
removeAccountExt({params}, callback(ret, err))
params
accountType:
- 类型:数字
- 描述:账号类型,必填,默认0;与reportAccountExt接口的账号类型一致
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require(‘tencentCloudMta’);
mta. removeAccountExt({
accountType: 1
}, function (ret, err) {
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
setUserProperty
自定义用户属性
setUserProperty({params}, callback(ret, err))
params
user:
- 类型:JSON对象
- 描述:平台配置的自定义用户属性
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.setUserProperty({
user: {
name: 'wkz',
age: 17
}
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
reportQQ
用户画像
reportQQ({params}, callback(ret, err))
params
qq:
- 类型:字符串
- 描述:用户的QQ号码
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require('tencentCloudMta');
mta.reportQQ({
qq: '492239071'
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getCustomProperty
获取在线参数 注意: 首次配置或者更改参数配置后,需要3-5分钟才能生效
getCustomProperty({params}, callback(ret, err))
params
key:
- 类型:字符串
- 描述:必填,在平台配置的key
defaultValue:
- 类型:字符串
- 描述:选填,默认为空,没取到参数时返回的默认值
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
value: 'off' //在线参数的值或者默认值(当线上没有这个参数时,会返回所传默认值)
}
示例代码
var mta = api.require(‘tencentCloudMta’);
mta. getCustomProperty({
key: 'online',
defaultValue: 'off'
}, function (ret, err) {
var value = ret.value;
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackError
统计异常(描述)
trackError({params}, callback(ret, err))
params
error:
- 类型:字符串
- 描述:错误描述
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
statusCode: 0 //错误码 0 - 成功
-1 - MTA服务未启动,请检查是否调用
1000 - 参数错误
1001 - 参数过长
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackError({
error: '该接口发生报错!'
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
trackException
统计异常(堆栈信息)
trackException({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:错误名称
reason:
- 类型:字符串
- 描述:错误描述信息
userInfo:
- 类型:JSON对象
- 描述:错误的详细信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
statusCode: 0 //错误码 0 - 成功
-1 - MTA服务未启动,请检查是否调用
1000 - 参数错误
1001 - 参数过长
}
示例代码
var mta = api.require('tencentCloudMta');
mta.trackException({
name:'login',
reason: '出现问题!',
userInfo: {
name: 'wkz'
}
}, function(ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
startMonitor
启动LBS监控
startMonitor(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require(‘tencentCloudMta’);
mta.stopMonitor(function (ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopMonitor
停止LBS监控
stopMonitor(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功
}
示例代码
var mta = api.require(‘tencentCloudMta’);
mta.stopMonitor(function (ret, err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
getLastLocation
获取最新一次上报LBS的地理位置
getLastLocation(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true // 布尔类型 是否成功
statusCode: 0 // 错误码 0-成功、-1-MTA服务未启动、1000-参数错误
location: {
lat: 28.92776. // 纬度
lon: 112.880023 // 经度
}
}
示例代码
var mta = api.require(‘tencentCloudMta’);
mta.getLastLocation(function (ret, err) {
var location = ret.location;
var lat = location.lat;
var lon = location.lon;
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
MTA管理控制台使用
0.官方文档
1.APPKEY的获取(init)
2.页面访问(trackActiveBegin、trackActiveEnd)
说明:单次使用时长指的是用户从进入应用前台到离开前台的时间。 SDK自动通过Activity类名作为页面名称,比如com.tencent.mm.MainActiveity,客户可通过管理台配置此名称的别名,方便查看。 注意:trackActiveBegin()与trackActiveEnd()必须搭配使用。
3.自定义事件
3.1 自定义事件时长统计(trackPageViewBegin、trackPageViewEnd) 说明:采用客户调用时传递的页面名称,需注意方法调用成对匹配。
3.2 自定义事件次数统计(trackCustomKeyValueEvent) 说明:可以直接上传一个自定义事件。
3.3 自定义事件已有时长统计(trackCustomKeyValueEventDuration) 说明: 可以先将自定义事件事件缓存,之后再调用此接口一次上传。
4.账号统计(reportAccountExt、removeAccountExt)
说明: 用于用户群体统计
5.自定义用户属性(setUserProperty)
说明:您可以为您的用户设置属性标识,比如游戏用户的会员等级、电商用户累计消费金额、常见的A/B Testing中的AB分组等,并通过管理台查看其属性分布或创建不同属性的用户群,从其活跃程度、留存率、流失、用户画像等全维度进行对比分析。
6.用户画像(reportQQ)
注意:用户画像统计需要app开发者主动上报QQ号码,若没有上报QQ号码,则无法使用用户画像及QQ登录数等特色功能。
7.在线参数(getCustomProperty)
说明:开发者在腾讯移动分析网站上设置Key-Value值之后,可以通过接口调用动态获取线上最新的参数值。
8.错误统计(trackError、trackException)
说明:Crash 错误分析实现了多平台的Crash数据完全采集,帮助开发者动态监测App在各移动设备的异常情况,且支持按错误类型和应用版本筛选/分析错误, 如果APP若发生重大的质量问题,系统将自动告警给相关人员,让相关人员做出相应的应急处理
9.LBS服务
说明: 该服务主要用于反作弊监测,在控制台没有具体的数据展示。