dndc-wxmp-analytics
v2.10.9
Published
微信小程序用户数据统计工具
Downloads
8
Readme
[TOC]
安装
$ npm install [email protected] -D
配置文件
# 域名配置
development_host:
trackENV: dev
production_host:
trackENV: prod
初始化
dndc-wxmp-analytics 需在 App 的 onLaunch 生命周期执行前配置初始化参数:
/** app.js */
import Statistics from 'dndc-wxmp-analytics';
const dndcAnalytics = new Statistics({
site_code: '', // 咨询数据组
app_id: '',
app_name: '小程序',
track_ali_env: '', // 测试环境 'dev' 生产环境 'prod'
event_code_url: '', //page平台生成-直接使用page生产地址
show_log: false,
black_pv_list: [],
})
// 神策配置
dndcAnalytics.loadSensorsData({
// 测试环境 `server_url:'https://dongfengrichan-production.datasink.sensorsdata.cn/sa?token=17906b5c9eb1cda1&project=default'`
// 生产环境 `server_url:'https://dongfengrichan-production.datasink.sensorsdata.cn/sa?token=17906b5c9eb1cda1&project=nissan_production'`
server_url: '' // 根据环境使用上面的地址,
});
App({
/** 为了方便后续页面的行为采集,请将 Statistics 的实例赋值给 App 的属性 */
sa: dndcAnalytics,
});
参数列表
| 参数 | 类型 | 必填 | 默认值 | 说明 |
| -------------- | ------- | ---- | ------ | ------------------------------------------------------- |
| site_code | string | 是 | - | 站点编码(咨询数据组获取)
| app_id | string | 是 | - | appid |
| app_name | string | 是 | - | 小程序名称 |
| event_code_url | string | 是 | - | 事件码JSON |
| black_pv_list | Array | 否 | - | 收集页面浏览事件的路径黑名单 |
| show_log | boolean | 否 | False | 设置为 true 时,会在控制台打印 log 信息(用于开发模式) |
| send_timeout | number | 否 | 60000 | 数据上报接口超时时间,单位为毫秒 |
| source_channel | Array | 否 w | [] | 需要解析的渠道参数名称 |
| track_ali_env | dev
| prod
| 否 | prod
| 日志接口环境 |
神策配置mid
业务如有要求的情况下,当用户注册成功或者登录成功时,需要调用login()
方法传入mid
const app = getApp();
app.sa.login("登录 ID");
点击事件采集
静态事件码
/** page.js */
const app = getApp();
Page({
onClick() {
app.sa.track({
hit_type: 'click',
event_id: 'chebaba-app-20210105164547-1di0'
});
},
});
动态事件码
/** page.js */
const app = getApp();
Page({
onClick() {
app.sa.track({
hit_type: 'click',
event_id: 'chebaba-web-20210308084439-l9so-{carseries_id}-{cartype_id}',
event_info: {
dynamic: {
carseries_id: 17,
cartype_id: 279244,
},
},
});
},
});
target字段
特殊情况只能使用id
并需要知道具体的名称可以使用target
字段
用target字段必须要有动态参数id
id可以传具体有意义的值、如商品ID、活动ID、广告ID,没有实际ID情况可以用序号
/** page.js */
const app = getApp();
Page({
onClick() {
app.sa.track({
hit_type: 'click',
event_id: 'chebaba-web-20210308084439-l9so-{id}',
event_info: {
dynamic: {
id: 11,
target: '海蓝色'
},
},
});
},
});
如下图,如果数据组要求只有{序号}不需要具体名称,target可以不传。
非序号情况,都需要传target
字段
令牌获取(特征编码)
业务如有要求的情况下,根据数据组要求特殊场景需要获取令牌
后传给接口存储到业务表
const app = getApp();
Page({
onClick() {
const resFeatureID = app.sa.track({
hit_type: 'feature'
});
console.log('resFeatureID', resFeatureID)
},
});
特殊业务场景追加参数使用feature_extra
Page({
onClick() {
const resFeatureID = app.sa.track({
hit_type: 'feature',
feature_extra: {
custom: 'test',
}
});
console.log('resFeatureID', resFeatureID)
},
});
弹窗事件
业务如有要求的情况下,根据数据组要求特殊场景发送popup
事件
/** page.js */
const app = getApp();
Page({
onClick() {
app.sa.track({
hit_type: 'popup',
event_id: 'chebaba-app-20210105164547-1di0'
});
},
});
页面标题
在Page中配置saTitle
Page({
saTitle: '页面标题',
onShow() {
// 页面代码
}
})
在Component中配置saTitle
(没有Page的情况)
Component({
data: {
saTitle: '页面标题',
},
methods: {},
});
秒针
秒针小程序API文档 传送门 秒针通码已封装到自建SDK,业务项目无需再引入秒针(历史项目需要移除秒针通码)。
/** app.js */
import Statistics from 'dndc-wxmp-analytics';
const dndcAnalytics = new Statistics({
// ...
})
// 初始化秒针通码
dndcAnalytics.loadMiaozhen({
appid: '',
trackid: '', // 咨询数据组
})
App({
sa: dndcAnalytics,
});
设置用户openid
const app = getApp();
app.sa.setOpenId('');
设置用户unionid
const app = getApp();
app.sa.setUnionId('');
设置用户信息
业务如有要求的情况下使用
const app = getApp();
wx.getUserInfo({
success: res => {
app.sa.setUser(res.userInfo)
}
})
设置is_oneid (pz1a联友ID)
业务如有要求的情况下使用
const app = getApp();
app.sa.setIsOneId('');
手动发送pageView事件
当同一个Page
通过URL参数或者状态控制不同模块的展示,需要关闭当前页面pavaView
自动触发,调整为手动触发
// app.js文件 埋点初始化配置关闭自动触发pageView
black_pv_list: ['pages/index/index']
// 手动触发pageView
app.sa.pageView({
title: '首页-车系',
pageid: 'pages/index/index'
})
查看black_pv_list是否有效
配置pages/index/index
,搜索ali
刷新页面没有pageview
事件触发即可
查看手动发送pageView事件是否有效
调用app.sa.pageView
方法,搜索ali
参数pagetitle
、pageid
与发送的参数一致即可
秒针热力图
无需加载秒针通码,已在SDK加载
业务如有要求的情况下使用
因为微信小程序的限制,无法采集到控件的内容和结构数据,因此SDK无法自动收集用户的点击行为,所以我们采取的是声明式编程,需要小程序开发者绑定touchend
事件
// 需要热图分析页面的顶层 View 控件
<view bindtouchend="handleTouchEnd">
...
</view>
const app = getApp()
Page({
handleTouchEnd: (e) => {
app.smwt.heatmap(e);
}
})
// 将"test"替换为实际切片名称
app.smwt.setSection("test");
秒针通码修改内容
- 变更初始化方法
init
- 变更
titleKey
- 增加
component
构造器获取title
初始化样例
/** app.js */
import Statistics from 'dndc-wxmp-analytics';
const dndcAnalytics = new Statistics({
track_ali_env: mc.$hosts.track,
event_code_url: '', //page平台生成-直接使用page生产地址
show_log: false,
site_code: '', // 咨询数据组
app_id: '',
app_name: '小程序',
black_pv_list: [], // 收集页面浏览事件的路径黑名单
})
// 初始化秒针通码
dndcAnalytics.loadMiaozhen({
appid: '',
trackid: '', // 咨询数据组
})
// 初始化神策通码
dndcAnalytics.loadSensorsData({
server_url: '',
});
App({
sa: dndcAnalytics,
onLaunch(options) {},
});
采集字段
| 字段 | 字段说明 |来源方式| | ---------- | ----------------------- |-----| | site_code | 主站编码 |事件公共属性| | site_channel | 渠道 |事件公共属性| | openid | 微信小程序用户 openid |事件公共属性| | unionid | 微信小程序用户 unionid |事件公共属性| | unionid | 微信小程序用户 unionid |事件公共属性| | is_oneid | 联友oneid |事件公共属性| | app_id | 微信小程序 app_id |事件公共属性| | app_name | 微信小程序名称 |事件公共属性| | scene | 场景值 |自动读取| | path | 页面路径 |自动获取| | pagetitle | 页面标题 |-| | referrer | 来源页面 |自动读取| | pageid | 页面源信息 |-| | event_id | 事件编码 |-| | event_info | 事件扩展信息 |-| | event_name | 事件名称 |自动读取| | hit_type | 类型(pageview|event) |-| | smartcode | 推广入口 |自动读取|事件公共属性| | sourcecode | 内部入口 |自动读取|事件公共属性| | brand | 设备品牌 |wx.getSystemInfoSync()自动获取| | model | 设备型号 |wx.getSystemInfoSync()自动获取| | platform | 客户端平台 |wx.getSystemInfoSync()自动获取| | sr | 屏幕宽高 |wx.getSystemInfoSync()自动获取| | system | 操作系统及版本 |wx.getSystemInfoSync()自动获取| | version | 微信版本号 |wx.getSystemInfoSync()自动获取| | client_id | 客户端ID |自动读取|
从 v1 到 v2
帮助你从1.x版本升级到2.x版本说明
移除废弃的 API
业务项目如果部署了秒针SDK,需要移除第三方相关代码,所有方法统一使用自建SDK方法
- 移除了
appInit
方法, SDK自动获取 - 移除了
registerApp
、appendRegister
方法, 使用setUser
、setOpenId
、setUnionId
、setIsOneId
代替 - 移除了
clearAllRegister
方法,SDK处理 - 移除了
pageInit
方法,SDK自动获取
track方法参数变更
移除第一个参数,例子如下
// v1
this.$app.sa.track('Click', {
hit_type: 'click',
event_id: 've_mp-20210203163908-1wbn',
});
// v2
this.$app.sa.track({
hit_type: 'click',
event_id: 've_mp-20210203163908-1wbn',
});