dm-track v3.0.0
DM前端埋点SDK文档
背景
DM是建立在数据分析之上的应用,对业务系统的原始数据、实时数据有很强的需求。依托于这些数据,DM对数据做实时监控、分析。为客户提供全渠道会员管理、用户画像、报表、商业决策建议。所以DM需要搭建一套埋点方案,实时采集业务事件。并提供存储、分析能力。 前端需要实现访问、停留、离开、分享等非重要埋点,允许丢失数据,重要埋点(下单,支付等)移交给后端处理,不可丢失。
埋点须知
埋点事件表
https://docs.qq.com/sheet/DZEpsUUFXaURPYk94?tab=BB08J2&c=N1K0E0
请求地址
dev环境
| methods | url |
|---|---|
| post | http://dm.dev.deepexi.top/common-log/ |
请求参数
| 字段 | 数据类型 | 是否必填 | 描述 |
|---|---|---|---|
| ip | string | true | 客户端ip |
| country | string | true | 事件国家 |
| province | string | true | 事件省份 |
| city | string | true | 事件城市 |
| device_os | string | true | 设备型号android\ios |
| time | string | true | 事件时间戳 |
| 以上字段后端补充 | |||
| 以下字段前端传入 | |||
| tenant_id | string | true | 租户id |
| acc_type | string | true | 账号类型(visitor、member) |
| one_id | string | true | 全渠道id |
| system_id | string | true | 业务子系统(DR、等) |
| channel | string | true | 业务渠道(weixin、alipay、H5等) |
| type | string | true | 事件类型(具体看事件表) |
| page_path | string | false | 页面路径 |
| keyword | string | false | 搜索关键字 |
| stay_time | long(s) | false | 页面停留时长(单位:毫秒) |
| activity_id | string | false | 活动ID |
| commodity_id | string | false | 商品ID |
| commodity_count | long | false | 商品数量 |
| commodity_detail | json(string) | false | 商品明细json数据 |
| payment | long | false | 订单金额(单位分) |
| real_payment | long | false | 实际支付金额(单位分) |
| order_id | string | false | 订单id |
| touch_type | string | false | 触达方式(wx_tpl、sms) |
| coupon_id | string | false | 优惠券id |
| coupon_expire | long | false | 优惠券过期时间 |
| for_share_id | string | false | 分享人id特殊列,任何事件都可能包含(前端sdk处理) |
| dm_activity_id | string | false | 活动id特殊列,任何事件都可能包含(前端sdk处理) |
| session_id | session_id | false | session_id 统计vv使用特殊列,任何事件都可能包含(前端sdk处理) |
| …… | …… | …… | …… |
SDK具体使用
one_id
全渠道唯一id 以后将通过租户id 渠道 等参数换取 现阶段使用userid填入游客状态下可不传 sdk将会生成一个uuid 并缓存到localstorage 每次埋点时带入已登录状态下必传该参数
安装
yarn add dm-track
初始化
以nuxt为例 在 /plugins/track.js 中 初始化 并注入到vue原型方便调用
import Vue from 'vue'
// 引入埋点sdk
import {dmTrack} from 'dm-track'
const options = {
tenant_id: 'tenantid',
// 全渠道唯一id 后期通过接口换取 现阶段使用userid
one_id: 'one_id',
// 账号类型(visitor/member) 游客身份可不传one_id
acc_type: 'visitor',
// 业务子系统
system_id: 'DR',
// 业务渠道
channel: 'pc'
}
export default function(context) {
let {$axios} = context
if (!Vue.$track) {
// 注入到vue原型 通过 this.$track.track 调用埋点
Vue.prototype.$track = new dmTrack(options, {
http: $axios,
url: 'http://124.172.188.124/common-log/',
console: true
})
}
}使用
// 在触发动作中直接调用 无需关注结果
// 访问页面埋点 埋点只需传入 事件类型 以及可变参数
// 全局参数将会被sdk缓存 每次埋点统一携带
this.$track.track('visit_page', {page_path: '/login'})从游客过渡到已登录
// 通过updateOptions方法更新配置项 可只传改动项
this.$track.updateOptions({acc_type: 'member', one_id: 'one_id'})api
| updateOptions | ||
|---|---|---|
| 函数名 | 参数 | 描述 |
| updateOptions | options,extendOptions | 更新配置项(具体配置项 ↓) |
全量配置项
new dmTrack(options, extendOptions) updateOptions(options, extendOptions)
| options {} | |||
|---|---|---|---|
| 字段 | 数据类型 | 是否必填 | 描述 |
| tenant_id | string | 是 | 租户id |
| acc_type | string | 看情况 | 账号类型 visitor(游客)member(会员)默认使用visitor |
| one_id | string | 看情况 | 游客时可不传 sdk默认生产登录状态必传 |
| system_id | string | 是 | 业务子系统(DR) |
| channel | string | 是 | 业务渠道(weixin、alipay、H5等) |
| extendOptions {} | |||
|---|---|---|---|
| 字段 | 数据类型 | 是否必填 | 描述 |
| http | function | 是 | 请求函数 需支持 httphttpMethods 调用 |
| httpMethods | string | 否 | 请求方法默认为$post |
| url | string | 是 | 请求地址 |
| console | Boolean | 否 | 是否打印出埋点参数 默认false |
| alert | Boolean | 否 | 是否弹窗展示埋点参数 默认 false |
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago