百度小程序 SDK
1. 配置SDK安全域名
1.登录百度智能小程序平台
2.打开开发设置,到服务器域名配置部分
3.在request合法域名中添加对应的域名(数据上传地址)
2. 安装sdk
将SDK文件复制到项目目录下
3. 引用sdk
3.1. 在app.js文件头部引入sdk
import './zhuge-baidu.min.js' //sdk文件项目路径
App.zhuge.load('AppKey', {
// load配置参数,具体见下方
})
引入成功后,即可在全局任意地方,通过App.zhuge调用sdk函数,如:App.zhuge.track('登录')
3.2. API列表
load(appkey, config)
appkey: 您在诸葛申请的APPKEY config: sdk配置信息。不需要自定义的参数可忽略 完整默认配置如下:
{
debug: false, // 开启实时调试
serverUrl: { // 事件上报地址。使用的上报地址,应在开发设置中,注册为合法域名
normal: 'https://u.zhugeapi.net', // 主地址
bac: 'https://ubak.zhugeio.com' // 主地址
},
timeout: 1800000, // 会话超时时间(默认30分钟),单位:毫秒
did: '', // 自定义设备id,默认首次加载sdk时,sdk会自动为当前设备生成唯一的did(uuid)
vn: '1.0', // 小程序版本(小程序项目本身的版本)
pv: false, // 是否自动上报pv 默认关闭
click: false, // 是否自动上报click 默认关闭
utmMode: 'session', // utm模式:session(会话级控制,即以会话开始时的utm为准)、fresh(就近原则)
parseScene: true, // 是否自动解析小程序场景值为utm信息
forwardShare: true, // 是否启用分享采集
superProperty: { // 全局事件属性,设置后除会话、环境及identify事件外,所有事件都会自动加上该配置所有属性
propA: 'hello'
},
sendLimit: 1, // 批量上传限制,默认为1。即事件即时上传。当该配置大于1时,事件会累计达到limit限制再批量上传,也可调用flush方法手动清空
shareToUtm: { // 打开分享页面时,分享属性到utm信息的映射配置。当设置该映射后,映射的分享属性会当做对应的utm信息就行setUtm操作
商品名称: 'utm_content' // 分享打开的「商品名称」属性,映射为utm_content属性
},
duration: false, // 自动采集页面停留时长
beforeDuration: (durationPage) => { // 函数参数为页面对象
// 时长上报事件之前执行
},
afterDuration: (durationPage) => {
// 时长上报事件之后执行
},
countDuration: 3000 // countDuration配置是trackCount函数连续触发的动作停止之后等待的时间,单位毫秒默认值为3000ms。超过等待时间会上传定义的事件和属性包含函数执行的次数和连续触发持续的时间
}
使用示例:
App.zhuge.load('AppKey', {
pv: true
})
utm就近原则:每次打开小程序时,sdk即会再应用的onShow声明周期中,解析并更新utm信息。如果onShow时没有获取到有效utm信息,则utm信息保持不变。 parseScene为true时,打开小程序时,sdk会自动根据小程序场景值生成utm_source与utm_medium,如果启动参数中包含有这两个utm信息,则以启动参数中的utm信息为准 当superProperty属性与上传事件时指定的属性冲突,则superProperty被覆盖 当页面onHide时,sdk会自动flush所有请求
identify(cuid, props)
cuid: 用户唯一标识 props: 用户属性 为了保持对用户的跟踪,你需要为他们记录一个识别码,可以使用手机号、email等唯一值来作为用户的识别码。另外,也可以在跟踪用户的时候, 记录用户更多的属性信息,便于你更了解你的用户 使用示例:
App.zhuge.identify('17711111111', {
'性别': '男',
'会员级别': '白金'
})
track(eventName, props)
eventName: 事件名称 props: 事件属性 使用示例:
App.zhuge.track('加入购物车', {
'商品名称': '华为P30',
'商品分类': '3C'
})
注意: 在添加事件属性时,需注意事件属性类型。如果事件属性类型为「数值型属性」,需要在上传数据时修改数据类型为「数值型」,并且在诸葛io后台埋点管理中修改为「数值型」。
trackCount(eventName, props)
eventName: 事件名称 props: 事件属性 使用示例:
App.zhuge.trackCount('like', {
'商品名称': '华为P30',
'商品分类': '3C'
})
trackCount是用来记录事件触发的次数,适用于频繁触发事件的场景,比如视频直播点赞。函数连续触发时会记录执行的次数,当函数停止执行会等待集成sdk设置的countDuration时间,超时后会上传事件和事件属性,通过trackCount函数上传的事件会附带两个自定义属性count和countTime,分别代表执行的次数和连续触发持续的时间。 注意: 函数执行的过程中如果事件名称和事件属性发生变化trackCount函数会立刻上传上次的事件和属性,然后重新开始计数。
setUtm(utm)
utm
App.zhuge.setUtm({
utm_source: '扫码',
utm_medium: '长按图片识别二维码'
})
调用setUtm方法时,utm信息会强制更新,不会受utmMode限制。设置后的utm信息,会在后续事件上传中生效。该方法本身不会上传任何事件。
trackRevenue(props)
props: 收入数据属性
{
price: 0, // <number>价格
productID: null, // <string>商品id
productQuantity: 0, // <number>商品数量
revenueType: null // <string>收入类别
}
收入数据采集 使用示例:
App.zhuge.trackRevenue({
price: 2000,
productID: 'product001',
productQuantity: 2,
revenueType: '3c'
})
price和productQuantity属性,只能为数值类型。
记录转发分享
转发分享数据默认不采集,如需采集,需要在调用load方法时,设置forwardShare为true
setSuperProperty(superProperty)
superProperty
extendSuperPropertys(property)
合并property到全局事件属性
removeSuperProperty(delList)
移除全局事件属性,函数参数为数组
getSuperProperty
获取全局事件属性
flush()
手动批量上传已缓存的所有事件
4. 常见问题
- 集成后报错:Uncaught ReferenceError: regeneratorRuntime is not defined 检查小程序开发工具是否开启增强编译,没开启的话,开启后即可避免报错