vue埋点实例,vue项目埋点

  vue埋点实例,vue项目埋点

  埋点分析是web分析中常用的数据获取方法。下面文章主要介绍如何通过Vue自定义指令实现前端埋点的相关信息。通过示例代码非常详细的介绍,有需要的朋友可以参考一下。

  

目录

  前言埋藏点的举报方式有哪些?一般埋了哪些数据?需求分析,代码实现,点击类封装,暴露类封装,指令封装,使用不足总结

  

前言

  在营销活动中,可以通过埋点获取用户的喜好和交互习惯,从而优化流程,进一步提升用户体验,提高转化率。

  在嵌入方案的先前实现中,当特定按钮或图片被点击或暴露时,嵌入点通过事件被主动报告。当项目中的嵌入点很少时,这种方法很好。一旦项目中需要大量的嵌入点,就不可避免的要添加大量的业务代码。很大程度上也造成了掩埋逻辑和业务逻辑的高度耦合。

  为了改善这种情况,我们对原有的掩埋方式进行了一些小的改进,大大提高了掩埋效率。

  在阐述我们的葬地改造之前,有必要简单了解一些葬地常识。

  

埋点上报方式都有哪些?

  要知道埋藏地点的种类很多,举报的方式也多种多样。有三种常见的前端嵌入方法:

  手动嵌入可视化嵌入无痕嵌入手动嵌入,顾名思义就是手动编写代码,调用嵌入SDK提供的函数,给需要嵌入的业务逻辑添加相应的方法,上报嵌入数据。这也是以前用过的方法。

  可视化埋葬点是指通过可视化系统对埋葬点进行配置。这样接触的不多,就不展开了。

  无痕埋点,也叫自动埋点和全埋点。即拦截并掩埋所有全局事件和页面加载周期。

  

一般对哪些数据做埋点?

  为了达到数据分析的目的,便于后续的运营和产品策略调整,一般需要对以下几点进行埋藏式统计:

  页面嵌入:统计用户进入或离开页面的信息,如页面浏览次数(pv)、页面浏览次数(uv)、页面停留时间、设备信息等。点击嵌入:统计用户在页面浏览过程中触发的点击事件,如按钮、导航或图片的点击次数;暴露嵌入:统计特定元素是否被有效暴露。

  

需求分析

  本论文是基于近期工程中增加埋设点的需求。我们需要的理想方案是:

  埋点应尽量与业务分离,埋点逻辑应独立于业务,尽量不存在对业务代码的侵入。埋点逻辑要通过统一关闭来处理。由于该项目由Vue开发,因此考虑使用自定义指令来完成埋点报告。之所以选择自定义指令,是因为它可以在一定程度上解耦业务和埋点。

  页面嵌入已经在框架级别为我们完成了。这里主要关心的是点击嵌入和暴露嵌入。

  其实实现思路也很清晰:在需要掩埋的DOM节点上挂载特殊属性,通过嵌入式SDK监控对应属性对应的事件,事件触发时上报嵌入数据。

  那么问题来了,如何监控?

  对于click事件,我们可以使用addEventListener来监控click事件。很简单。

  元素曝光有点麻烦。

  让我们先来看看为什么我们需要监控风险:

  为了衡量用户对产品的兴趣,需要计算该区域的点击率(点击/曝光)。为了保证点击率的准确性,我们必须保证用户确实浏览了这些产品(比如上图中机器酒产品的底部区域,因为用户需要滚动页面,所以用户有可能看到这个区域)。

  那么如何判断元素出现在页面的可见区域呢?

  按照之前的做法:监控滚动事件,通过getboundingClient()方法计算监控区域和窗口的位置,然后判断元素是否出现在页面的可见区域。然而,由于频率

  基于此,浏览器特意为我们打造了一个十字路口观察仪,把性能相关的细节都处理掉,让开发者只关心业务逻辑即可:

  由于用户浏览页面的不确定性,还必须要避免重复的曝光行为。这个在曝光之后,移除观察即可。

  

代码实现

  上面的需求分析还是比较抽象,下面让我们结合代码来看一下最终的实现。

  

Click 类封装

  点击事件的处理相对比较简单,每次点击触发数据上报即可:

  //src/指令/track/单击. js

  从导入{ sendUBT }././utils/携程

  导出默认类别单击{

  添加(条目){

  //console.log(entry ,entry);

  常量跟踪值=条目。埃尔。属性[跟踪参数].价值

  常量跟踪关键字=条目。埃尔。属性[ trace-key ].价值

  const { clickAction,detail }=JSON.parse(traceVal)

  常量数据={

  动作:点击动作,

  细节,

  }

  入口。埃尔。addevent侦听器( click ,function() {

  console.log(上报点击埋点,JSON.parse(traceVal))

  console.log(埋点键、跟踪键)

  sendUBT(traceKey,data)

  })

  }

  }

  

Exposure 类封装

  曝光的相对复杂一些。

  首先通过新的IntersectionObserver()实例化一个全局_观察员,如果得到有效曝光的(这里当元素出现一半以上则进行曝光),就去获取数字正射影像图节点上的跟踪键(埋点关键)和轨道参数(埋点值).

  //src/directive/track/exposure。射流研究…

  导入"交叉点-观察点"

  从导入{ sendUBT }././utils/携程

  //节流时间调整,默认100毫秒

  路口观察者。原型[节流_超时]=300

  导出默认类别风险{

  构造函数(){

  这个. observer=null

  this.init()

  }

  init() {

  const self=this

  //实例化监听

  这个.观察者=新的交叉观测器(

  功能(条目、观察者){

  entries.forEach((entry)={

  //出现在视窗内

  如果(条目。是交集){

  //获取参数

  //console.log(埋点节点,词条。目标。属性);

  常量跟踪关键字=条目。目标。属性[ trace-key ].价值

  常量跟踪值=条目。目标。属性[跟踪参数].价值

  console.log(traceKey ,traceKey)

  console.log(traceVal ,traceVal)

  const { exposureAction,detail }=JSON.parse(traceVal)

  常量数据={

  行动:揭露行动,

  细节,

  }

  //曝光之后取消观察

  自我.观察者。未观察到(条目。目标)

  self.track(traceKey,data)

  }

  })

  },

  {

  root: null,

  根边距:“0px”,

  阈值:0.5,//元素出现面积,0 - 1,这里当元素出现一半以上则进行曝光

  }

  )

  }

  /**

  * 元素添加监听

  *

  * @param {*}条目

  * @曝光的成员

  */

  添加(条目){

  这个。_观察者这个. observer . observer(entry . El)

  }

  /**

  * 埋点上报

  *

  * @曝光的成员

  */

  track(traceKey,traceVal) {

  //console.log(曝光埋点、traceKey、JSON。parse(跟踪值));

  sendUBT(traceKey,traceVal)

  }

  }

  

指令封装

  有了点击和曝光类,下一步就是某视频剪辑软件指令的封装了,也是之所以能实现半自动埋点的核心。

  这里存在一个场景就是对于同一个按钮或者图片,同时存在既需要点击埋点又需要曝光埋点的场景。所以在指令的设计时支持了单独传入和同时传入的场景:

  v-track:click exposure v-track:exposure//src/directives/track/index。射流研究…

  从“vue”导入某视频剪辑软件

  导入单击来源。/点击

  从导入风险。/曝光度

  //实例化曝光和点击

  常数exp=新风险()

  const cli=new Click()

  Vue.directive(track ,{

  bind(el,binding) {

  //获取指令参数

  const { arg }=绑定

  arg.split( ).forEach((item)={

  //点击

  if (item===click) {

  cli.add({ el })

  } else if (item===exposure) {

  exp.add({ el })

  }

  })

  },

  })

  需要在src/index.js中同时引入:

  “导入”。/指令/跟踪

  

使用

  在需要掩埋的地方使用也非常简单:

  图片

  ref=imageDom

  trace-key=o_img

  垂直跟踪:点击曝光

  :track-params=

  JSON.stringify({

  曝光操作: s_pictures ,

  点击操作: c_pictures ,

  详细信息:{

  值:“测试”,

  },

  })

  /

  

不足

  通过对Vue自定义指令的简单封装,业务代码和嵌入代码在一定程度上解耦,无论是开发成本还是嵌入点的维护成本都比以前降低了很多。

  但这只是最简单的实现,还有很多情况需要考虑:

  时频曝光度很高,可以考虑批量举报吗?用户访问了页面的一半,突然把它剪下来,然后重新进入。这种情况怎么举报?用户不支持交叉点观察器。要不要考虑向后兼容?鉴于这套嵌入方案还在不断完善中,经过后续的完善和在业务中的顺利运行。我会和你分享细节。

  

总结

  关于如何通过Vue自定义指令实现前端嵌入的这篇文章到此为止。关于Vue实现前端嵌入的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: