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 |
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago