API功能
一、启动配置接口
BonreeSDK启动接口
启动小程序SDK需要调用start
函数,并在参数对象中设置Config地址与AppID。
function start({
configAddress: "",
appId: ""
})
- 接口说明
参数名 | 类型 | 注释 |
---|---|---|
configAddress | String | Config地址 |
appId | String | 博睿SDK平台生成的应用唯一ID |
示例
const BonreeSDK = require('./BonreeSDK_MP.min.js') const BRSAgent = BonreeSDK.start({ configAddress: "https://demtest.bonree.com/800config", appId: "db012cbf-a6d3-46a5-89ad-3e0edebbba06" })
设置小程序版本
小程序版本默认获取真实版本号。如有主动配置需求,需要启动接口参数中设置verson
字段即可。
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
version | String | 需要设置的版本信息 | 最大长度不超过64 |
示例
const BRSAgent = BonreeSDK.start({ configAddress: "https://demtest.bonree.com/800config", appId: "db012cbf-a6d3-46a5-89ad-3e0edebbba06", version: "1.0.0" })
小程序默认的版本号在微信小程序开发者后台中发布时设置,debug环境下获取不到,建议根据真实版本情况设置,保证数据的完整性。
设置渠道
小程序SDK支持渠道信息设置,在启动接口参数中设置channelId
字段即可。
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
channelId | String | 需要设置的渠道名称 | 最大长度不超过256 |
示例
const BRSAgent = BonreeSDK.start({ configAddress: "https://demtest.bonree.com/800config", appId: "db012cbf-a6d3-46a5-89ad-3e0edebbba06", channelId: "channel001" })
设置自定义的设备ID
设备ID(deviceID)默认由SDK生成并在local storage中保存。如有主动配置需求,在启动接口参数中设置deviceId
字段即可。
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
deviceId | String | 需要设置的设备ID | 最大长度不超过256 |
示例
const BRSAgent = BonreeSDK.start({ configAddress: "https://demtest.bonree.com/800config", appId: "db012cbf-a6d3-46a5-89ad-3e0edebbba06", deviceId: "0123456789" })
设置网络请求超时
网络请求超时(timeout)用于配置config请求和upload请求的超时时间,若未配置,则默认60000ms超时。
- 接口说明
参数名 | 类型 | 注释 |
---|---|---|
timeout | number | 请求超时时间(ms) |
示例
const BRSAgent = BonreeSDK.start({ configAddress: "https://demtest.bonree.com/800config", appId: "db012cbf-a6d3-46a5-89ad-3e0edebbba06", timeout: 10000 })
二、自定义功能接口
一般自定义接口的调用位置不在小程序的入口文件App.js
中,因此需要在调用接口的文件开头引入SDK实例化对象:
const BRSAgent = require("../../app")
通常情况下在代码中直接键入实例化对象后,微信开发者工具会自动补全对象的引用。
自定义用户信息
BonreeSDK支持设置与用户相关的信息,从而完成性能数据与实际用户相关联的需求场景。
设置用户信息有两种方式:
1. 设置用户ID,以字符串形式给用户做标识。接口如下:
/// 设置用户ID
function setUserId(userId)
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
userId | String | 用户ID | 字符串可为空或空串。 字符串小于等于256,且不包含特殊字符(仅支持字母数字下划线_连接符-),否则接口调用失败。 |
示例
BRSAgent.setUserId("1234")
2. 以对象形式设置用户附加信息。接口如下:
/// 设置附加信息
function setExtraInfo(extraInfo)
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
extraInfo | Object | 用户附加信息。 | Map可为空或空集合。 转JSON后长度在7000字符以内,否则接口调用失败。 |
示例
BRSAgent.setExtraInfo({ key0: "value0", key1: "value1" })
自定义视图
调用接口并传入相应参数,可完成自定义视图数据统计功能。
/// 自定义视图——标记视图开始(和视图结束方法成对调用)
function customPageStart(name, alias)
/// 自定义视图——标记视图结束(和视图开始方法成对调用)
function customPageEnd(name, alias)
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
name | String | 视图名称。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256,否则接口调用失败。 |
alias | String | 视图别名。可选参数。 | 字符串可为空或空串。 字符串小于等于256,超长截取。 |
示例
BRSAgent.customPageStart("page01", "首页") BRSAgent.customPageEnd("page01", "首页")
注意:自定义视图的开始与结束记录接口必须成对调用,并且同一视图的name必须一致,才能正确统计一个完整自定义视图数据并上报。
自定义事件(完整版)
分别调用开始与结束接口并传入相应参数,可完成自定义事件数据与事件持续时间的统计功能。
/// 自定义事件开始
function customEventStart(eventId, eventName, eventLabel, eventParam, info)
/// 自定义事件结束
function customEventEnd(eventId, eventName, eventLabel, eventParam,info)
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
eventId | String | 事件ID。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256 |
eventName | String | 事件名称,可选参数。 | 字符串可为空或空串。 字符串小于等于256,超长截取。 |
eventLabel | String | 事件标签,可选参数。 | 字符串可为空或空串 字符串小于等于256,超长截取。 |
eventParam | String | 附加信息(预留字段,暂无使用场景),可选参数。 | 字符串可为空或空串 字符串小于等于7000,超长截取。 |
info | Object | 事件详情,可选参数。 | 转JSON后长度在7000字符以内,否则接口调用失败。 |
示例
BRSAgent.customEventStart("001", "用户登录", "Login", "",{"key":"value"}) // Some code... BRSAgent.customEventEnd("001", "用户登录", "Login", "",{"key":"value"})
注意:1.自定义事件开始与结束的匹配使用eventID唯一匹配,使用时请确保未结束事件ID的唯一性。2.info参数为object类型,对象中的key和value值需为string类型
自定义事件(精简版)
调用接口并传入相应参数,可完成自定义事件数据统计功能。
/// 自定义事件
function customEvent(eventId, eventName, eventLabel, eventParam, info)
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
eventId | String | 事件ID。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256,否则接口调用失败。 |
eventName | String | 事件名称,可选参数。 | 字符串可为空或空串。 字符串小于等于256,超长截取。 |
eventLabel | String | 事件标签,可选参数。 | 字符串可为空或空串 字符串小于等于256,超长截取。 |
eventParam | String | 附加信息(预留字段,暂无使用场景),可选参数。 | 字符串可为空或空串 字符串小于等于7000,超长截取。 |
info | Object | 事件详情,可选参数。 | 转JSON后长度在7000字符以内,否则接口调用失败。 |
示例
BRSAgent.customEvent("001", "用户登录", "Login", "",{"key":"value"})
注意:info参数为object类型,对象中的key和value值需为string类型
自定义日志
调用接口并传入相应参数,可完成自定义日志数据统计功能。
/// 自定义日志
function customLog(info, param)
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
info | String | 日志信息。必传参数,空或空串接口调用无效。 | 字符串长度大于0,否则接口调用失败。 字符串小于等于10000,超长截取。 |
param | String | 附加信息(预留字段,暂无使用场景),可选参数。 | 字符串长度大于0,否则接口调用失败。 字符串小于等于10000,超长截取。 |
示例
BRSAgent.customLog("2020-01-01 08:30:00 Print log info.")
自定义指标
调用接口并传入相应参数,可完成自定义指标数据统计功能。
/// 自定义指标
function customMetric(metricName, metricValue, param)
- 接口说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
metricName | String | 指标名称。必传参数,空或空串接口调用无效。 | 字符串长度大于0,小于等于256,否则接口调用失败。 |
metricValue | Number | 指标值。必传参数,指标为空接口调用无效。 | - |
param | String | 附加信息(预留字段,暂无使用场景),可选参数。 | 字符串长度大于0,否则接口调用失败。 字符串小于等于10000,超长截取。 |
示例
BRSAgent.customMetric("测试指标01", 1)
自定义操作结束
调用该接口,结束根据调用栈匹配到的操作。该方法必须直接或间接地由操作相关的方法调用,否则调用无效。
function recordCustomActionEnd()
- 使用场景
以登录场景为例
- 点击登录按钮,触发
onClickHandle
方法; onClickHandle
方法中,调用了login
方法和其他的一些方法;
如果我们只关注触发登录按钮到调用login
方法结束时的耗时及函数调用关系等数据,不关注login
方法后等其他方法执行的数据,那么我们可以在 login
方法后调用自定义操作结束接口。
示例
Page({ ... onClickHandle:function(){ ... login() BRSAgent.recordCustomActionEnd() ... // 其他方法或请求 }, login:function(){ ... } ... })
三、使用插件
使用小程序SDK的插件,需先解压获取到的BonreeSDK_TDEM_MP.zip
文件,将对应的插件引入到项目中,并调用install
方法注册插件。
数据加密插件
加密功能当前仅支持One平台。使用该功能前请务必先与技术支持或实施沟通获取加密Key,保证与平台配置一致,否则会导致SDK数据请求异常。
解压获取到的
BonreeSDK_TDEM_MP.zip
文件,并将对应的borneeEncryptor.js
在app.js中引入const BonreeSDK = require('./bonreeSDK_MP.min.js') const BorneeEncryptor = require('./borneeEncryptor.js')
注册插件
const BonreeSDK = require('./bonreeSDK_MP.min.js') const BorneeEncryptor = require('./borneeEncryptor.js') BonreeSDK.install(BorneeEncryptor,{key:string,identifier:string}) const BRSAgent = BonreeSDK.start(...)
注:BonreeSDK.install方法需在BonreeSDK.start方法前调用
参数说明
参数名 | 类型 | 注释 | 参数限制 |
---|---|---|---|
key | String | 加密秘钥,从平台获取 | 需为16字节字符串,请勿使用< > & ' " %特殊字符 |
identifier | String | 加密标识,从平台获取 | 字符串长度大于0且不超过256 不能包含中文及特殊字符 |
示例
const BonreeSDK = require('./bonreeSDK_MP.min.js') const BonreePlugin = require('./borneeEncryptor.js') BonreeSDK.install(BorneeEncryptor,{key:'qawsedrftgyhujik',identifier:'v20'}) const BRSAgent = BonreeSDK.start(...)