tracker-sdk
采用图片上报的方式
引入方式
main.js
import trackerSdk from 'tracker-sdk'
Vue.use(trackerSdk, {
serverUrl: '', // 上报图片url 非必填,默认值:https://api-dev.kp-para.cn/event-gateway/events/site.png
log: false, // 上报日志log, 控制台输出。非必填,默认值:false
mock: false, // mock为true时,自动打开log, 不上报! 非必填,默认值:false
immediateReportPage: true, // 初始化时,自动上报路由埋点。默认值:true
data: {}, // 通用上报数据,每次上报时会携带。非必填,默认值:{}
})
注:trackerSdk已挂载在window、Vue原型上,兼容Vue2、Vue3
点击事件埋点
根据自定义属性,点击即可上报
<!-- key为产品定义 -->
<div data-tracker="aaa.bbb.ccc">111</div>
<!-- 对应循环的列表可以这样处理 -->
<div
v-for="item in list"
:key="item.id"
:data-tracker="item.trackerKey"
>...</div>
// js上报
this.$trackerSDK.reportClickAction('client.home_right');
// or
window.$trackerSDK.reportClickAction('client.home_right');
页面埋点
在路由守卫中处理
注:首次进入页面,会自动上报一次
router.beforeEach((to, from, next) => {
// 在每次路由导航开始时记录进入页面的时间戳
to.meta._startTime = Date.now() + '';
next();
});
router.afterEach((to, from) => {
const endTime = Date.now();
const startTime = from.meta?._startTime || 0;
const timeSpent = endTime - Number(startTime);
if (startTime && from.name) {
window.$trackerSDK?.reportPageView(location.origin + to.fullPath, {
domin: location.host,
duration: timeSpent / 1000, // "访问时长,单位秒"
referrer: location.origin + from.fullPath, // 访问来源
referrerDomin: location.host, // 来源域名
beginAt: new Date(Number(startTime)).toISOString(),
endAt: new Date().toISOString(),
})
}
});