埋点(Event Tracking)vs 无埋点(Codeless Tracking) vs 可视化埋点(Visual Event Tracking)
在理解什么是埋点之前,首先需要了解一些基础知识:(以下摘自:http://www.chinawebanalytics.cn/auto-event-tracking-good-bad-ugly/)
我们能够监测网站上用户的行为,或者app上用户的行为,都需要在网站的每一页或者app中加上一些程序代码(基础代码)。这样的程序代码,在网站上叫监测代码,在app中叫SDK(Software Development Kit)。
但是你要想收集到所有用户行为的数据,光有基础代码是不够的,总有一些特殊的用户操作行为是不能靠基础代码捕获的。这一类基础代码不能捕获的用户操作行为,最典型的,是被称为event(事件)的一类行为。至于什么是event(事件),在网页上,是那些非http类型的交互:JavaScript的、Flash的、Silverlight的、AJAX的、各种页面插件的交互等等;而在app上,则包含用户点击在内的所有交互。你可以直接理解一个规律,那就是凡是遵守http协议的交互(最典型的就是网页的链接),皆是可以由基础监测代码直接监测到数据的,但非http类型的用户交互,基础监测代码都无能为力。app上的所有可点击交互都是event,因为app不遵循http协议,所以基础监测代码对它们都无效。
如果每一个需要我们监测的event都被称为一个“监测点”,那么可以想象,网页上的监测点不会很多(因为大部分都是http互动,所以基础代码能搞定),而app上则布满了监测点。
什么是埋点?
埋点是数据领域的专业术语,它的学名叫事件追踪,对应的英文是Event Tracking。它主要是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。
根据上面所说,为了收集到监测点上的用户互动行为数据,我们可以在这些监测点上部署专用的事件监测代码(即event tracking code),这些代码需要手工一个一个地添加在想要获取数据的监测点上,这个过程被形象地称为埋点。
埋点分为前端埋点和后端埋点:
前端(客户端):在Web页面/App的源码里面添加行为上报的代码,当用户的行为满足某一个条件时,这些代码就会被执行,向服务器上报行为数据。
网站:目前主流的网站分析工具都是在网站上加一小段JavaScript代码,以此方式来收集数据,这种方法被称为页面标记法。以Google Analytics为例,在网站上加上GA基础代码后,用户来到这个网站,将会加载analytics.js 这个脚本文件,当用户浏览器发生相应的事件时,GA代码立即响应,携带着用户浏览器等信息一并以type为pageview 的http 请求发送到GA 的收数服务器,这样GA 服务器就收到一条记录了用户浏览了该property ID对应站点的一条日志。
APP:在APP或者界面初始化的时候,初始化第三方数据分析服务商的SDK,然后在某个事件发生时就调用SDK里面相应的数据发送接口发送数据。例如,我们想统计APP里面某个按钮的点击次数,则在APP的某个按钮被点击时,可以在这个按钮对应的 OnClick 函数里面调用SDK提供的数据发送接口来发送数据。
后端(服务器端):开发人员在监测点植入统计代码。
前端埋点和后端埋点的区别:https://www.jianshu.com/p/15b1ffeb9724。
埋点优点:可以精准控制,设置自定义属性、自定义事件,传递比较丰富的数据到服务端。
埋点缺点:1,每一个控件的埋点都需要添加相应的代码,不仅工作量大,而且限定了必须是技术人员才能完成;2,每一次更新埋点方案,都必须改代码,然后通过各个应用市场进行分发,并且总会有相当多数量的用户不喜欢更新APP,这样埋点代码也就得不到更新了;3,所有前端埋点方案都会面临,数据传输时效性和可靠性的问题,这个问题只能通过在后端收集数据来解决。
什么是无埋点?
无埋点无差别地记录用户在前端页面上的行为,对应的英文是Codeless Tracking。无埋点并不是说不要添加代码,而是不需要开发人员添加额外代码。无论是埋点的方法,还是不埋点的方法,都必须要添加基础代码。
无埋点直接对页面中所有的用户行为进行监听,因此即使你不需要监测某个部分,它也仍然会将这部分的用户行为数据和对应发生的信息全收录下来。
网站:在head里面插入了一个新的script标签,异步去下载真正的核心SDK代码下来工作。所以并不是基础代码可以根据配置上报行为,而是基础代码会下载一段“更大”的SDK核心代码,这段代码才是SDK真正的功能实现。
APP:在APP里嵌入SDK,SDK利用CSS选择器技术和监听控件的事件触发技术,会把用户的行为数据尽可能的采集下来。
无埋点优点:1,技术成本低,对用户非常友好,不需要重新部署,配置完成就可以生效;2,数据可以“回溯”。
无埋点缺点:1,上报的数据量比埋点大很多,里面可能很多是没有价值的数据;2,不能灵活地自定义属性;3,传输时效性和数据可靠性欠佳;4,由于所有的控件事件都全部搜集,会给服务器和网络传输带来更大的负载。
什么是可视化埋点?
可视化埋点,即可视化事件监测部署,指通过可视化工具快速配置采集节点(圈点),在前端自动解析配置,并根据配置上传埋点数据。
可视化埋点和无埋点非常相似,两者的区别在于:可视化埋点先通过界面配置哪些控件的操作数据需要收集,而无埋点则是先尽可能收集所有的控件的操作数据,然后再通过界面配置哪些数据需要在系统里面进行分析。
在Web页面/App的界面上进行圈选,配置需要监测界面上哪一个元素,然后保存这个配置,当App启动时会从后台服务器获得产品/运营预先圈选好的配置,然后根据这份配置查找并监测App界面上的元素,当某一个元素满足条件时,就会上报行为数据到后台服务器。
可视化埋点优点:方便产品和运营直接在页面上进行圈选所需的部分。
可视化埋点缺点:可视化埋点能够覆盖的功能有限,只能采集到用户肉眼可见的数据。
总结:
| 埋点 | 无埋点 | 可视化埋点 |
| 前端+后端 | 前端 | 前端 |
| 基础代码+事件监测代码 | 基础代码 | 基础代码+可视化工具 |
此外,现在很多地方对埋点的叫法都不一样,因此在这里把可能的叫法都列举一下,以免搞混:
埋点---代码埋点,手动埋点
无埋点---全埋点,无痕埋点
可视化埋点---可视化无痕埋点
参考:
http://www.imooc.com/article/27151
埋点(Event Tracking)vs 无埋点(Codeless Tracking) vs 可视化埋点(Visual Event Tracking)的更多相关文章
- Visual Event :快速查看 DOM 上绑定的 JS 事件
http://web.jobbole.com/82503/ Javascript中的事件经常被认为如谜一般不可解.Javascript是一个事件驱动的语言,在这样的前提下前面的看法是很奇怪,但是说到它 ...
- App可视化埋点技术原理大揭秘
一.背景 运营者能够对用户行为进行分析的前提,是对大量数据的掌握.在以往,这个数据通常是由开发者在控件点击.页面等事件中,一行行地编写埋点代码来完成数据收集的.然而传统的操作模式每当升级改版时,开发和 ...
- 可视化埋点 & XPath
可视化埋点 & XPath https://www.w3.org/TR/xpath-full-text-30/ 数据的准确性 采集时机 数据发送策略 full XPath demo XML & ...
- 如何使用Android可视化埋点
Android可视化埋点是Android全埋点的增强.开发者可以将App界面同步至DTM界面,并在DTM界面通过可视化点击的方式添加埋点事件.目前Android可视化埋点包含两种埋点方式:普通可视化埋 ...
- Correlation Filter in Visual Tracking系列一:Visual Object Tracking using Adaptive Correlation Filters 论文笔记
Visual Object Tracking using Adaptive Correlation Filters 一文发表于2010的CVPR上,是笔者所知的第一篇将correlation filt ...
- 论文笔记之:Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking
Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking arXiv Paper ...
- Visual Event插件----查看html元素绑定的事件与方法的利器
WEB标准提倡结构.表现和行为相 分离,现在越来越多采用这种表现和行为的方式,但它也为我们开发调试带来一些问题,网页载入一堆JavaScript,,我们很难搞清楚最后在哪些元素的哪个动作绑定了事件,尤 ...
- Chrome插件Visual Event查看Dom元素绑定事件的利器
找这工具找了好久,统一找着了,开发人员不可多得的好东东,收藏做一下分享. 用Chrome插件Visual Event查看Dom绑定的事件 Visual Event简介 Visual Event是一个开 ...
- Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记
Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记 arXiv 摘要:本文提出了一种 DRL 算法进行单目标跟踪 ...
随机推荐
- 洛谷 题解 P2937 【[USACO09JAN]激光电话Laserphones】
看到这题,一下就想到了爆搜.(不过这题输入也是够坑的) 单纯的搜索肯定是会超时的,所以这里需要考虑一些剪枝. 我们令bin[i][j][k]为在第i行j列时,方向为k的最小镜子数,若当时的镜子数已大于 ...
- c++ 行为型_备忘录模式(Memento)
行为型_备忘录模式(Memento) 作用场景: 当意图在对象外面保存对象的内部状态,但是又不想破坏对象的封装性,就可以考虑备忘录模式. 解释: 其参与者包括 1.Memnto(备忘录,如下列Coun ...
- [CF132C] Logo Turtle
[CF132C] Logo Turtle , Luogu A turtle moves following by logos.(length is \(N\)) \(F\) means "m ...
- 把Javascript 对象转换为键值对连接符字符串的方法总结
307down votefavorite 93 Do you know a fast and simple way to encode a Javascript Object into a strin ...
- Ubuntu中使用python3中的venv创建虚拟环境
以前不知道Python3中内置了venv模块,一直用的就是virtualenv模块,venv相比virtualenv好用不少,可以替代virtualenv 一.安装venv包: $ sudo apt ...
- java中讲讲PrintStream的用法,举例?
[学习笔记] 1.2 PrintStream的用法 从学java第一天,我们就经常用到System.out.println(),实际上查阅文档可知,System.out就是Sun 编的一个Prin ...
- 【51nod】2589 快速讨伐
51nod 2589 快速讨伐 又是一道倒着推改变世界的题... 从后往前考虑,设\(dp[i][j]\)表示还有\(i\)个1和\(j\)个\(2\)没有填,那么填一个1的话直接转移过来 \(dp[ ...
- MySQL 按照日期格式查询带有时间戳数据
按照日期格式查询带有时间戳数据一般在MSQL数据库中的时间都是以时间戳的格式来存储时间的,但是对于我们来说,时间戳格式具体表示的是什么时间,我们很难一眼看出来,所以当我们要具体查询某一个时间或时间段的 ...
- php操作string的函数
函数库来源于:http://www.w3school.com.cn/php/php_ref_string.asp 我常用的 echo()------------输出一个或多个字符串. 如:echo ' ...
- VBA精彩代码分享-1
今天下班前分享一下之前在网上搜到的两段好用的VBA代码,貌似都来自国外,觉得挺好,模仿不来. 第一段的功能是修改VBA控件中的文本框控件,使其右键可以选择粘贴.复制.剪切等: Option Expli ...