Vue前端神策数据埋点

集成JS SDK
全埋点

1、从 npm 获取 sdk

 npm install sa-sdk-javascript

2、utils新建sensors.js文件夹,Vue全局挂载

import sensors from 'sa-sdk-javascript';

sensors.init({
  // 神策系统配置
  server_url: 'http://sademo.datasink.sensorsdata.cn/sa?project=VideoWebcastDemo', // 数据接收地址
  is_track_single_page: true, // 单页应用页面浏览事件采集(url改变就触发)
  use_app_track: true,
  show_log: true, // 控制台显示数据开
  heatmap: {
    // 热图设置 default开启 not_collect关闭(详细配置解释看官方文档)
    clickmap: 'default', // 点击热图,收集点击事件
    scroll_notice_map: 'default', // 视区热图,收集页面区域停留时间
  },
});

sensors.quick('autoTrack'); // 首次触发页面加载事件 $pageview
export default sensors;

3、若有用户登录功能,则设置登录。

 this.$sensors.login(res.currentMobile);
公共属性

埋点设计表是根据SDK的公共属性APIsensors.registerPage进行设置的。

eg:自定义平台类型等

// 注册公共属性
sensors.registerPage({
	current_url: location.href,
	referrer: document.referrer
});
代码/自定义事件埋点

sensors.track()来进行设置

// 下面演示一个 div 标签被点击时触发预置的元素点击事件
<div id="submit_order">提交订单</div>

<script type="text/javascript">
$('#submit_order').on('click', function() {
	sensors.quick('trackHeatMap', this, {
		customProp1: 'test1', //如果需要添加自定义属性需要将 SDK 升级到 1.13.7 及以上版本。
		customProp2: 'test2'
	}, function() {
		console.log('callback');
	});
});
</script>
<think>我们正在寻找适用于Vue前端项目的埋点库或解决方案。根据引用内容,我们可以总结出几个可行的方案: 1. **自定义封装埋点库**(如引用[2]的`kk-vue-log`): - 支持在Vue文件和ts文件中使用 - 提供配置项(上传接口、方法、请求头、拦截器等) - 支持记录页面停留时间和跳转来源(需传入路由实例) 2. **使用神策埋点SDK**(如引用[3]): - 引入`sensorsdata`的SDK(`sa-sdk-javascript`) - 提供初始化配置(服务端地址、页面自动采集、点击图等) - 支持自动采集页面浏览事件和自定义事件 3. **其他通用方案**: - 如Google Analytics、百度统计等,但需要结合Vue特性进行封装 根据上述引用,我们重点推荐两个方向: ### 一、自定义封装方案(适合需要高度定制的项目) 引用[2]展示了一个名为`kk-vue-log`的封装库,它提供了以下功能: - 支持在`main.js`中全局配置 - 支持页面停留时间记录(通过`durationRoute`配置) - 支持路由跳转来源记录(通过`needReferrer`和`sign`配置) - 支持请求拦截器,可动态添加请求头(如token) 使用示例: ```javascript // main.js import Vue from 'vue' import kkVueLog from "kk-vue-log" import router from './router' const options = { url: "//your-backend-api", method: 'post', router, // 传入路由实例 durationRoute:['*'], // 记录所有页面停留时间 needReferrer: true, // 记录来源 sign: 'from' // 来源标记字段 } Vue.use(kkVueLog, options) ``` ### 二、使用成熟SDK(如神策数据) 引用[3]展示了神策埋点的集成方式: 1. 安装SDK:`npm install sa-sdk-javascript` 2. 创建封装文件(如`sensor.js`): ```javascript import sensors from 'sa-sdk-javascript' sensors.init({ server_url: '您的数据接收地址', show_log: false, is_track_single_page: true, // 开启单页面自动采集 heatmap: { clickmap: 'default', // 开启点击图 scroll_notice_map: 'default' // 开启触达图 } }) // 注册页面信息 sensors.registerPage({ current_url: location.href, referrer: document.referrer }) // 开启自动采集 sensors.quick('autoTrack') export default sensors ``` 3.Vue项目中全局引入(如`main.js`): ```javascript import sensors from './utils/sensor' Vue.prototype.$sensors = sensors ``` 4. 在组件中使用: ```javascript this.$sensors.track('event_name', { key: 'value' }) ``` ### 三、其他推荐库 1. **Vue-GA**:Google Analytics的Vue插件(适合使用GA的项目) 2. **vue-baidu-analytics**:百度统计的Vue插件 3. **logrocket**:专业的用户行为记录工具(收费) ### 选择建议 - 需要**深度定制**且**减少依赖** → 选择自定义封装(方案一) - 需要**成熟解决方案**且对接**神策后台** → 选择神策SDK(方案二) - 使用**第三方分析平台**(如GA/百度) → 选择对应插件 ### 注意事项 1. 单页面应用(SPA)需开启路由切换监听(如方案一的`router`配置和方案二的`is_track_single_page`) 2. 埋点数据安全:敏感信息需脱敏,建议在拦截器中统一处理 3. 性能影响:高频率埋点需考虑节流和批量上报 --- §§相关问题§§ 1. 如何在Vue3中实现手动埋点? 2. 如何避免埋点数据影响前端性能? 3. 神策埋点如何与Vue Router结合使用? 4. 埋点数据如何做用户行为分析?</think>基于提供的引用内容和Vue.js前端埋点需求,以下是推荐的埋点解决方案和库: ### 一、推荐埋点方案 1. **轻量级自定义封装方案**(引用[2]) ```javascript // main.js 配置 import kkVueLog from "kk-vue-log" Vue.use(kkVueLog, { url: "//your-api-endpoint", // 埋点上报接口 method: "post", // 上报方式 router, // 传入Vue Router实例 durationRoute: ["*"], // 所有页面记录停留时间 needReferrer: true, // 记录跳转来源 interceptorsRequest(config) { // 请求拦截器 config.headers.token = "动态token" return config } }) ``` **优势**: - 专为Vue设计,支持Vue文件和TS文件双环境 - 自动记录页面停留时间和路由跳转 - 支持请求拦截器动态添加参数 - 配置简单,开箱即用 2. **企业级神策埋点方案**(引用[3]) ```javascript // utils/sensor.js import sensors from 'sa-sdk-javascript' sensors.init({ server_url: '数据接收地址', is_track_single_page: true, // 开启SPA路由追踪 heatmap: { clickmap: 'default', // 开启点击热力图 scroll_notice_map: 'default' // 页面停留分析 } }) // 在路由守卫中使用 router.afterEach((to) => { sensors.registerPage({ current_url: to.fullPath }) sensors.quick('autoTrack') // 自动采集 }) ``` **适用场景**: - 需要用户行为分析热力图 - 企业级数据监控需求 - 跨平台数据统一管理 ### 二、其他推荐库 1. **Vue-GTM**(Google Tag Manager集成) ```bash npm install vue-gtm ``` ```javascript // 配置示例 Vue.use(VueGtm, { id: 'GTM-XXXXXX', // GTM容器ID vueRouter: router // 自动追踪路由 }) ``` 2. **Vue-Analytics**(Google Analytics集成) ```javascript Vue.use(VueAnalytics, { id: 'UA-XXXXX-X', router, autoTracking: { pageviewOnLoad: true } }) ``` ### 三、选择建议 | 方案类型 | 适用场景 | 特点 | |----------------|---------------------------|---------------------------| | 自定义封装 | 中小项目/定制需求 | 轻量灵活,开发成本低 | | 神策SDK | 企业级数据分析 | 功能全面,支持行为热力图 | | Google系方案 | 海外项目/Google生态 | 无缝集成GA/AdWords | ### 四、最佳实践 1. **路由级埋点**(在router.ts中): ```typescript router.beforeEach((to, from, next) => { trackEvent('ROUTE_CHANGE', { from: from.path, to: to.path }) // [^2] next() }) ``` 2. **组件级埋点**(Vue单文件组件): ```vue <script> export default { mounted() { this.$track('PAGE_VIEW', { page: this.$route.name, duration: 0 }) // [^2] }, beforeDestroy() { reportPageDuration() // 上报页面停留时间 [^3] } } </script> ``` 3. **自定义事件上报**: ```javascript // 任意.ts文件 import track from '@lib/tracker' track('BUTTON_CLICK', { element: 'buy-now', product_id: 12345 }) // [^1][^2] ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值