jAnalytics
概述
本模块封装了极光统计SDK
JAnalytics产品简介
极光以提供更加全面的开发者服务为目标,利用极光推送的数据和网络优势结合更丰富的功能,推出了极光统计(英文:JAnalytics)。极光统计为独立的统计 SDK ,让开发者可以更便捷的集成无需依赖 JPush 可以单独使用。通过简洁直观的数据报表帮助开发者了解用户的属性和使用情况,优化用户体验,为企业决策提供有效的数据支撑。
iOS使用此模块之前需先配置 config.xml 文件,方法如下
- 配置示例:
<feature name="jAnalytics">
<param name="appkey" value=""/>
<param name="channel" value=""/>
<param name="advertisingId" value=""/>
<param name="isProduction" value=""/>
<param name="appkey" value=""/>
<param name="debug" value=""/>
</feature>
字段描述:
appkey:appkey,在极光官网申请开发者账号并创建应用获取。
**channel**:(可选项)发布渠道。 **advertisingId**:(可选项)广告标识符(IDFA),IDFA能帮助您更准确的统计。 **isProduction**:(可选项)是否生产环境. 如果为开发状态,设置为false; 如果为生产状态,应改为 true.默认为false。 **debug**:(可选项)设置是否打印sdk产生的Debug级log信息, 默认为false(不打印log) **urlScheme**:(可选项)用于实现应用间跳转及数据交换,开启圈选埋点必填。
Android 需要在config.xml中配置如下
<!-- 配置appkey:从 portal 上应用信息中获取 AppKey,并填写你的 Channel-->
<meta-data name="JPUSH_APPKEY" value="Your AppKey"/>
<meta-data name="JPUSH_CHANNEL" value="Your Channel"/>
Android 隐私政策说明
开发者请务必在《隐私政策》中向用户告知应用使用了极光统计SDK,参考条款如下:
SDK名称:极光统计SDK 服务类型:消息统计服务 SDK收集个人信息类型:
设备信息(IMEI/MAC/Android ID/IDFA/OAID/OpenUDID/GUID/SIM卡IMSI信息等):用于识别唯一用户,保证消息的精准统计;为开发者提供业务统计信息的服务; 网络信息与位置信息(IP地址,WiFi信息,基站信息等相关信息):优化SDK与极光服务器的网络连接请求,保证服务的稳定性和连续性;实现区域统计的功能。 APP安装列表信息:我们为向您提供统计功能,通过该信息推荐更符合您用户需要的统计内容,减少无用统计信息对您用户的打扰,您可以选择开启或关闭这项服务。 极光隐私权政策链接:《AURORA极光隐私政策》
注: 若通过极光统计SDK,请《隐私政策》向用户告知,建议如下:
隐私确认接口与SDK初始化 概述 极光合规授权接口是为了保障用户隐私为根本目的,广大的开发者务必遵循其相关协议,确保用户同意《隐私政策》之后,再另行使用极光业务SDK功能。
接口说明
var jAnalytics = api.require('jAnalytics');
jAnalytics.setAuth({
auth:true
});
调用逻辑:
- 宿主APP在首次安装,冷启动
- 用户隐私协议告知
- 用户确认授权
- 告知极光授权结果
同意隐私协议:
var jAnalytics = api.require('jAnalytics');
jAnalytics.setAuth({
auth:true
});
不同意隐私协议:
var jAnalytics = api.require('jAnalytics');
jAnalytics.setAuth({
auth:false
});
初始化SDK 确保App首次启动时,在用户阅读您的《隐私政策》并取得用户授权之后,才调用初始化函数 init(),此时SDK才会真正采集设备信息,并上报,如果没有在用户阅读您的《隐私政策》并取得用户授权, 或者用户不同意您的《隐私政策》,则不能调用初始化方法init()。
一旦App未获取到《隐私政策》的用户授权,后续的App冷启动,开发者应该保证在调用初始化SDK方法init()之前,调用setAuth()方法,告知极光未获得用户授权;
模块接口
setAuth
授权 (仅支持Android)
setAuth({param})
param
auth:
- 类型:布尔
- 描述:是否授权
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.setAuth({
auth:true
});
可用性
Android系统
可提供的1.0.0及更高版本
init
开始记录页面停留 (仅支持Android)
init(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status:true, //布尔类型;是否成功
}
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.init(function(ret){
alert(JSON.stringify(ret));
});
可用性
Android系统
可提供的1.0.0及更高版本
startLogPageView
开始记录页面停留
startLogPageView({params})
params
pageName:
- 类型:字符串
- 描述:页面名称
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.startLogPageView({
pageName:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
stopLogPageView
停止记录页面停留
stopLogPageView({params})
params
pageName:
- 类型:字符串
- 描述:页面名称
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.stopLogPageView({
pageName:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
setLatitudeAndLongitude
地理位置上报 (仅支持ios)
setLatitudeAndLongitude({params})
params
latitude:
- 类型:字符串
- 描述:纬度
longitude:
- 类型:字符串
- 描述:经度
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.setLatitudeAndLongitude({
latitude:'',
longitude:''
});
可用性
iOS系统
可提供的1.0.0及更高版本
crashLogON
开启Crash日志收集,默认是关闭状态
crashLogON()
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.crashLogON();
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
registerEvent
注册事件数据上报
registerEvent({params})
params
method:
- 类型:字符串
- 描述:注册方法
success:
- 类型:布尔
- 描述:(可选项)注册是否成功
- 默认:true
extra:
- 类型:json对象
- 描述:(可选项)扩展参数,可以添加任意字符串的key,value,注册事件模型中扩展参数中不能使用以下 key 值:register_method、register_success此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.registerEvent({
method:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
loginEvent
登陆事件数据上报
loginEvent({params})
params
method:
- 类型:字符串
- 描述:登陆方法
success:
- 类型:布尔
- 描述:(可选项)登陆是否成功
- 默认:true
extra:
- 类型:json对象
- 描述:(可选项)扩展参数,可以添加任意字符串的key,value,登录事件模型中扩展参数中不能使用以下 key 值:login_method、login_success 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.loginEvent({
method:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
browseEvent
浏览事件数据上报
browseEvent({params})
params
name:
- 类型:字符串
- 描述:内容名称
contentID:
- 类型:字符串
- 描述:内容ID
type:
- 类型:字符串
- 描述:内容类型
duration:
- 类型:数字
- 描述:(可选项)内容时长
- 默认:1
extra:
- 类型:json对象
- 描述:(可选项)扩展参数,可以添加任意字符串的key,value;浏览事件模型中扩展参数中不能使用以下 key 值:browse_content_id、browse_name、browse_type、browse_duration 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.browseEvent({
name:'',
contentID:'',
type:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
purchaseEvent
购买事件数据上报
purchaseEvent({params})
params
goodsID:
- 类型:字符串
- 描述:物品ID
goodsName:
- 类型:字符串
- 描述:物品名称
goodsType:
- 类型:字符串
- 描述:物品类型
price:
- 类型:数字
- 描述:(可选项)价格
- 默认:1
success:
- 类型:布尔
- 描述:(可选项)购买是否成功
- 默认:true
quantity:
- 类型:数字
- 描述:(可选项)物品数量
- 默认:1
currency:
- 类型:字符串
- 描述:(可选项)货币类型;CNY:人民币,USD:美元
- 默认:'CNY'
extra:
- 类型:json对象
- 描述:(可选项)扩展参数,可以添加任意字符串的key,value;购买事件模型中扩展参数中不能使用以下 key 值:purchase_goods_id、purchase_goods_name、purchase_price、purchase_currency、purchase_goods_type、purchase_quantity、purchase_success 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.purchaseEvent({
goodsID:'',
goodsName:'',
goodsType:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
countEvent
自定义计数事件数据上报
countEvent({params})
params
eventID:
- 类型:字符串
- 描述:事件ID
extra:
- 类型:json对象
- 描述:(可选项)扩展参数,可以添加任意字符串的key,value;自定义计数事件模型中扩展参数中不能使用以下 key 值:event_id此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.countEvent({
eventID:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
calculateEvent
计算事件数据上报
calculateEvent({params})
params
eventID:
- 类型:字符串
- 描述:事件ID
value:
- 类型:字符串
- 描述:事件值
extra:
- 类型:json对象
- 描述:(可选项)扩展参数,可以添加任意字符串的key,value; 自定义计算事件模型中扩展参数中不能使用以下 key 值:event_id、event_value 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.calculateEvent({
eventID:'',
value:''
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
identifyAccount
设置用户信息
identifyAccount({params},callback(ret,err))
params
accountID:
- 类型:字符串
- 描述:账号ID
creationTime:
- 类型:数字
- 描述:(可选项)账号创建时间、时间戳
sex:
- 类型:数字
- 描述:(可选项)性别;0:未知的,1:男性,2:女性
- 默认:1
birthdate:
- 类型:字符串
- 描述:(可选项)出生年月,yyyyMMdd格式校验
paid:
- 类型:数字
- 描述:(可选项)是否付费;0:未知,1:付费,2:未付费
- 默认:2
phone:
- 类型:字符串
- 描述:(可选项)手机号码
email:
- 类型:字符串
- 描述:(可选项)email
name:
- 类型:字符串
- 描述:(可选项)用户名
wechatID:
- 类型:字符串
- 描述:(可选项)微信id
qqID:
- 类型:字符串
- 描述:(可选项)QQid
weiboID:
- 类型:字符串
- 描述:(可选项)新浪微博id
callback(ret,err)
ret:
- 类型:JSON对象
- 内部字段:
{
status:true, //布尔类型;是否成功
}
err:
- 类型:JSON对象
- 内部字段:
{
err:0, //数字类型;错误码
msg:'' //字符串类型;错误信息
}
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.identifyAccount({
accountID:''
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本
detachAccount
解绑当前的用户信息
detachAccount(callback(ret,err))
callback(ret,err)
ret:
- 类型:JSON对象
- 内部字段:
{
status:true, //布尔类型;是否成功
}
err:
- 类型:JSON对象
- 内部字段:
{
err:0, //数字类型;错误码
msg:'' //字符串类型;错误信息
}
示例代码
jAnalytics = api.require('jAnalytics');
jAnalytics.identifyAccount({
accountID:''
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的1.0.0及更高版本