数据埋点
2023-03-15 11:30:00 0 举报
AI智能生成
前端数据埋点技术研究
作者其他创作
大纲/内容
开源工具对比分析
vue-uweb
vueTrackSdk
collect
原生js保存数据
据采集 Collect.js
子主题
vue-uweb
<script src="./node_modules/vue-uweb/dist/vue-uweb.min.js"><script>
<button v-track-event.click="'category, action''"></button> // 统计click事件
<button v-track-event="'category, action'"></button> // 统计click事件简写
<input v-track-event.keypress="'category, action'"> // 统计keypress事件
<button v-track-event="'category, action, label, value, nodeid'"><button> // 以字符串传递参数
<button v-track-event="{category:'event', action:'click'}"></button> // 以对象字面量传递参数
<button v-track-event="'category, action'"></button> // 统计click事件简写
<input v-track-event.keypress="'category, action'"> // 统计keypress事件
<button v-track-event="'category, action, label, value, nodeid'"><button> // 以字符串传递参数
<button v-track-event="{category:'event', action:'click'}"></button> // 以对象字面量传递参数
trackpoint-tools
mport { after } from 'trackpoint-tools'
class SomeComponent {
onClick = after(() => console.log('send after'))(() => {
return ajax.post(...).then(() => {
console.log('normal click')
})
})
}
class SomeComponent {
onClick = after(() => console.log('send after'))(() => {
return ajax.post(...).then(() => {
console.log('normal click')
})
})
}
ES7 注解
class SomeComponent {
@track(before(() => console.log('before')))
onClick () {
console.log('click')
}
@track(after(() => console.log('after')))
onClickAjax () {
return ajax.get(...').then(() => {
console.log('request done')
})
}
}
class SomeComponent {
@track(before(() => console.log('before')))
onClick () {
console.log('click')
}
@track(after(() => console.log('after')))
onClickAjax () {
return ajax.get(...').then(() => {
console.log('request done')
})
}
}
vue-ba
vue指令
<button v-track-event.click="'category, action''"></button> // 统计click事件
<button v-track-event="'category, action'"></button> // 统计click事件简写
<input v-track-event.keypress="'category, action'"> // 统计keypress事件
<input v-track-event.someEvent:custom="'category, action'"> // 统计someEvent事件,someEvent是自定义事件
<button v-track-event="'category, action, opt_label, opt_value'"><button> // 以字符串传递参数
<button v-track-event="{category:'event', action:'click'}"></button> // 以对象字面量传递参数
<button v-track-event="'category, action'"></button> // 统计click事件简写
<input v-track-event.keypress="'category, action'"> // 统计keypress事件
<input v-track-event.someEvent:custom="'category, action'"> // 统计someEvent事件,someEvent是自定义事件
<button v-track-event="'category, action, opt_label, opt_value'"><button> // 以字符串传递参数
<button v-track-event="{category:'event', action:'click'}"></button> // 以对象字面量传递参数
web-sdk
封装的挺不错的
https://github.com/bailinlin/web-sdk
collect.onload
collect.setIframe
collect.onload
helper.each
collect.setIframe
collect.onload
helper.each
封装可借鉴
监听浏览器的默认事件,
beforeunload
click
onpopstate
onpushstate
web-tracing
前端 - 埋点, 性能采集, 异常采集, 请求采集, 路由采集
兼容, js vue2, vue3
smart_web_data_sdk
多设备详情,判断的比较多
device.fxosTablet
浏览器的内容
mixpanel-browser
控制台收集器
vueTrackSdk
普光监听
intersection-observer 监听是不是在浏览器的视窗范围内
v-track
vue指令,区域埋点
<!-- 页面行为埋点(track-view为v-track全局注册的组件) -->
<track-view v-track:18015></track-view>
<track-view v-track:18015.watch="{ rest }"></track-view>
<track-view v-track:18015.watch.delay="{ rest }"></track-view>
<track-view v-if="rest" v-track:18015></track-view>
<!-- 事件行为埋点(DOM) -->
<div v-track:18015.click="handleClick"></div>
<div v-track:18015.click="{ handleClick, item, index }"></div>
<div v-track:18015.click.async="{ handleSearch, rest }"></div>
<div v-track:18015.click.delay="handleClick"></div>
<!-- 事件行为埋点(组件) -->
<cmp v-track:18015.click="handleClick"></cmp>
<cmp v-track:18015.[自定义事件名]="handleSearch"></cmp>
<cmp v-track:18015.[自定义事件名].delay="handleSearch"></cmp>
<cmp v-track:18015.[自定义事件名].async="{ handleSearch, rest }"></cmp>
<!-- 区域展现埋点(block 可以是 DOM 或者组件) -->
<block v-track:18015.show></block>
<block v-track:18015.show.once></block>
<block v-track:18015.show.custom="{ ref: 'scroll' }"></block>
<block v-track:18015.show.custom.once="{ ref: 'scroll' }"></block>
<track-view v-track:18015></track-view>
<track-view v-track:18015.watch="{ rest }"></track-view>
<track-view v-track:18015.watch.delay="{ rest }"></track-view>
<track-view v-if="rest" v-track:18015></track-view>
<!-- 事件行为埋点(DOM) -->
<div v-track:18015.click="handleClick"></div>
<div v-track:18015.click="{ handleClick, item, index }"></div>
<div v-track:18015.click.async="{ handleSearch, rest }"></div>
<div v-track:18015.click.delay="handleClick"></div>
<!-- 事件行为埋点(组件) -->
<cmp v-track:18015.click="handleClick"></cmp>
<cmp v-track:18015.[自定义事件名]="handleSearch"></cmp>
<cmp v-track:18015.[自定义事件名].delay="handleSearch"></cmp>
<cmp v-track:18015.[自定义事件名].async="{ handleSearch, rest }"></cmp>
<!-- 区域展现埋点(block 可以是 DOM 或者组件) -->
<block v-track:18015.show></block>
<block v-track:18015.show.once></block>
<block v-track:18015.show.custom="{ ref: 'scroll' }"></block>
<block v-track:18015.show.custom.once="{ ref: 'scroll' }"></block>
MonitorFE
浏览器获取ip
需求
简单,业务隔离,方便引入, 可配置,粒度可大可小
获取内容
设备与系统信息
浏览器信息
浏览器版本
浏览器 localStory,session
浏览器事件 load。beforeload
屏幕信息
网络信息
用户信息
行为信息
按钮点击
页面切换
停留时长
接口交互信息
拦截器
明度系统
系统类型
模块类型
租户
子主题
子主题
保存
编码与解码
队列
实现
支持
原生js
vue2
vue3
使用的方式
引入sdk,配置开启
全局方法
全局指令
0 条评论
下一页