埋点依赖demo
安装依赖
npm install bm-sentry -S
初始化方法
示例:import { bmSentryInit } from 'bm-sentry'
//初始化方法
bmSentryInit({
appid: '',
uid: '',
session_id: '',
loginToken: '',
bmSentryService: '',
bmSentryServiceUrl: '',
},{});
or
bmSentryInit({
appid: '',
uid: '',
session_id: '',
loginToken: '',
bmSentryService: {
FUNCTION_MODULE: '功能事件上报接口地址',
CHAT_LOG_AI_REP: '用户输入上报接口地址'
},
},{});
bmSentryInit参数说明:
|参数|类型|是否必填|描述|规则说明|
|---|---|---|---|---| |{}|object|是|业务数据|| |appid|string|是|产品appid|| |uid|string|是|用户uid|| |sessionid|string |是|会话id,用聊天登录接口返回,取sessionCode值|| |loginToken|string |是|AToken:登录接口获取到的token,应用身份凭证,用于接口中接入应用身份校验|| |bmSentryService|string |否|上报接口通用域名。用于拼接到接口方法前|拼接规则:bmSentryServiceUrl无值且bmSentryService有值| |bmSentryServiceUrl|string or object |否|上报接口具体地址,不传或传空值或null或undefined或空对象或对象类型匹配不到值 接口以默认值|统一上报接口地址使用string类型。若是指定事件类型的上报接口地址则使用object,例如:功能事件上报 bmSentryService={FUNCTIONMODULE:'接口地址'}| ||||| |{}|object |是|插件配置数据,包含两个参数,可传空对象| |isTaro|boolean|是|上报页面停留时长路径| |engine|any|是|如果是taro, 需要透传Taro实例|
更新插件配置
示例:import { updateParams } from 'bm-sentry'
updateParams({
uid: 'xxxxxxx'
})
updateParams参数说明:
|参数|类型|是否必填|描述|
|---|---|---|---| |{}|object|是|同bmSentryInit的业务数据参数|
获取设备信息
示例:import { getSystemData } from 'bm-sentry'
getSystemData()
getSystemData参数说明:无
getSystemData返回结果说明:
|参数|类型|描述|
|---|---|---| |{}|object|获取设备信息结果返回数据| |deviceos|string|终端操作系统| |devicemodel|string|终端机型| |clientip|string|客户端ip|
上报
- 聊天上报示例:
import { reportTrackDataByKey, TRACK_DATA_ENUM } from 'bm-sentry'
//用户输入上报示例
let param = {
'user_request': 'msg',
'event_time': '123456789',
'input_type': '用户输入类型'
}
let key = TRACK_DATA_ENUM['CHAT_LOG_AI_REP']
reportTrackDataByKey(key,param)
//AI回复 上报
let param = {
'response': 'msg',
'event_time': '123456789',
'output_type': '回复类型',
'response_origin': '回复来源'
}
let key = TRACK_DATA_ENUM['CHAT_LOG_AI_RESP']
reportTrackDataByKey(key,param)
- 功能事件上报示例:(例如:快捷回复点击、猜你想问点击、模糊匹配点击、选项列表点击等)
- 接口默认校验token值,即接口调用前,判断loginToken是否有值,无值则一直等待获取到token值后在进行接口调用。
import { reportTrackDataByKey, TRACK_DATA_ENUM, FUNCTION_MODULE_ENUM } from 'bm-sentry'
let key = TRACK_DATA_ENUM['FUNCTION_MODULE']
let param = {
event_time: '123456789',
}
let funckey = FUNCTION_MODULE_ENUM['AI_REPLY_OPTION_CLICK']
reportTrackDataByKey(key, param, funckey, headerParam)
reportTrackDataByKey参数说明:
|参数|类型|是否必填|描述|规则说明|
|---|---|---|---|---| |key|string|是|上报的事件类型|详见
TRACK_DATA_ENUM
|
|param|object|是|想要上报的数据|上报参数由数仓管理平台配置,包括参数类型、参数是否必传等|
|funckey|string|-|上报的功能事件类型|若key值为功能函数事件'FUNCTIONMODULE',则必传。详见FUNCTION_MODULE_ENUM
|
|headerParam|object|否|上报接口请求header头信息|-|TRACKDATAENUM
上报事件枚举|type|描述|
|---|---| |APPLICATIONOPEN|应用打开| |PAGEINTO|页面进入| |PAGESTAY|页面停留| |FUNCTIONMODULE|功能事件| |SYSTEM|系统信息| |ADDRESS|地理信息| |CHATLOGAIREP|聊天日志用户输入| |CHATLOGAIRESP|聊天日志AI回复| |AIFEEDBACKLIKE|用户反馈用户点赞| |AIFEEDBACKDISLIKE|用户反馈用户点踩|
FUNCTIONMODULEENUM
功能函数枚举|type|描述|
|---|---| |CUSTOMCLICK|自定义点击| |TOPQUESTIONSCLICK|热门问题点击| |TOPQUESTIONSREFRESH|热门问题换一批| |NAVIGATORNAVCLICK|服务导航点击| |NAVIGATORQUESTIONCLICK|服务导航具体问题点击| |SUPPOSEASSOCIATECLICK|猜你想问点击| |SUPPOSEFUZZYMATCHCLICK|模糊匹配点击| |AIREPLYOPTIONCLICK|快捷回复选项点击| |AIREPLYOPTIONLISTCLICK|选项列表点击|
自定义上报
示例:- 接口默认校验token值,即接口调用前,判断loginToken是否有值,无值则一直等待获取到token值后在进行接口调用。
import { reportTrackData } from 'bm-sentry'
//以猜你想问-点击上报 为例
let param = {
appid: 'x.xxxxx',
topic: 'prod_func',
subtopic: 'function',
uid: '123456',
event_code: 'prod_func_click006',
event_time: '1234567890',
session_id: 'xxxxxxxxxxxxxxxx',
event_count:1,
event_value:''
}
reportTrackData(param,headerParam,url)
reportTrackData参数说明:
|参数|类型|是否必填|描述|
|---|---|---|---| |param|object or array|是|想要上报的数据| |headerParam|object|否|上报接口请求header头信息| |url|string|否|自定义上报接口的具体地址。例如:https://upgrade.nekoplan.com/gateway/dataService/v1/dataDetail/report/prodfunc。 |