作者 kyson老师 2019.03.21 15:04:00 可视化埋点(1):思路 评论:0 ## 背景 目前统计打点已经是一个产品常见的需求,尤其在业务模式探索的前期,埋点功能更是必不可少的功能,下面将介绍最简单的 App 可视化埋点方案。 ## 前置知识 - 什么是数据埋点 数据埋点是一般项目采用统计 UV,PV,Action,Time 等一系列的数据信息,对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。 - 为什么要数据埋点 产品或运营分析人员,基于埋点数据分析需要,对用户行为的每一个事件进行埋点布置,并通过 SDK 上报埋点的数据结果,进行分析,并进一步优化产品或指导运营。 - 数据埋点包括哪些 以老牌的 PC 上的 Web 页面统计一般有 PV 、UV 和 IP 之分,对于 Crash 问题,本身 Web 页面就存在远程的服务器端,日志将会保存在服务器的目录,所以一般 Web 项目开发者无需考虑收集 Log 的 Case, 那么我们更 Care 的就是上面说的行为统计,下面说说这三种统计区别。 ## PV UV IP ### 含义 - IP,实际上也就是指独立 IP,是独立 IP 数的意思。00:00—24:00 时间内相同 IP 地址只记录一次。即使你有多台电 PC ,但是如果 IP 地址是一样的,那么也只能算是一个 IP 的访问, IP 数据依然为 1。当然多台 PC 的 IP 一般都不一样,除非你插上同一个网络端口然后换零一台连接,都是一样,同时连接多台,每台 PC 的 IP 就是不一样的。 - PV,指访问量,它的英文是 PageView,具体是指网站的是页面总浏览量或者点击量,页面被刷新一次就计算一次。如果网站被刷新了 10 次,那么流量统计工具显示的 PV 就是 10 。 - UV,它是独立访客的意思,英文为 Unique Visitor。具体指访问您网站的一个客户端(移动设备或者是电 PC )为一个访客。00:00 - 24:00 内相同的客户端(Mac地址区分)只被计算一次。 ### IP、PV 和 UV 之间的关系是什么 #### IP 和 PV 之间的关系 PV 是和 IP 的数量是成正比的,因为页面被刷新一次那么 PV 就会被记录一次,所以 IP 越多,说明网站的 PV 数据也就随之增多。但是需要注意的是 PV 并不是网站的页面的访问者数量,而是网站被访问的页面数量。因为一个访问者可以多次刷新页面,增加 PV 数量。 #### IP 和 UV 之间的关系 在记录网站流量统计数据时,运维有时候发现这样一种情况:有时候网站的 IP 数据大于 UV 数据,有时候 UV 的数据也会大于 IP 数据。为什么会出现这种现象呢?我们可以用一个例子来说明。比如,用同一个 IP 去访问我们的某个网站,但是一个是用的台式的电脑,一个是用的笔记本,那么网站流量统计工具显示的数据就会是 2 个 UV,1个 IP。这时 UV 的数据就会大于 IP 的数据。但是,再比如,只是用一个台式电脑访问我们的网站,但是一会拨一个号换一个IP,那么这时候网站流量统计工具显示的数据的 UV 就为 1,但是IP的数据就会高于 UV 的数据。因此,IP 和 UV 之间的数据并不一定存在比例关系,两者之间的数据也不是此消彼长的关系。 #### IP 和 PV 之间的关系 那么 IP 和 PV 的关系如何呢?如果一个 IP 刷新了网站 100次,网站的 PV 就为 100,所以从这点看二者之间没有多大关系。但是,我们可以通过 IP 和 PV 之间的数据差异,来更加深入的理解网站的流量数据。如果 IP 和 PV 的数据悬殊很大,比如,我们在查看网站流量数据时发现网站的 PV 是 1000, IP 为 100,那么说明这个站点平均一个 IP 访问了网站内容 10 次,说明网站内容还是比较受欢迎的,所以访客才愿意在网站中停留那么久的时间,并浏览了那么多的网站页面内容。但是如果 IP 和 PV 的数据很接近,比如,网站的 IP 为100,PV 为 110,说明一个 IP 也就访问了网站内容大约 1 次,就说明网站内容的可读性太差,客户点击进去之后就离开了,没有有过多的停留。如果网站流量统计这样的数据过多的话,站长就需要对网站内容进行深入思考了,以便更好的提高网站的流量。 ## 数据埋点采集模式 ### 手动埋点 App 通过代理,调用 SDK 相关 API,进行的将数据埋点上报的模式。 缺点: - 开发人员工作量大,需对业务提供唯一的ID,来区分每一个业务,无论是否提供 SDK 代理,业务开发人员至少需要多次调用 SDK 相关API。 - 业务人员和产品沟通成本提高,需要对具体业务制定相关的业务标识,以便于产品分析和统计。 优点: 产品运营工作量少,对照业务映射表,就能分析出还原相关业务场景, 数据比较精细,无需大量的加工和处理。 ### 无痕埋点 无需通过专门提供代理类,直接由 SDK 提供相关接口,或者通过编译工具,预编译替换代码等,直接由sdk全部负责采集上报。 缺点: - SDK 开发人员需提供一套无痕埋点技术成品,包括能正确获取 PV,UV,ACtion,Time等多项统计指标。前期技术投入大。 - 数据量大,需后端落地进行大量处理,并由产品进行自我还原业务员场景。 无论采用智能系统平台,还是通过原生的数据库查询数据,都是一种大量的分析精力。 优点: - 开发人员工作量小,无需对业务标识进行唯一区分,由 SDK 自动进行生成,ID 规则由 SDK 和产品进行约定。减少业务人员的沟通成本和使用步骤。 - 数据量全面,覆盖面广,产品可按需进行分析。做到毫无遗漏。 - 支持动态页面和局部动效的统计。 ### 可视化埋点 可视化埋点指 前端或者 App 端基于 DOM 元素和控件所精准自动埋点的上报的方案。 优点: - 相对数据量而言 相比较于无埋点相而言对较低,但是这个可视化元素的识别技术是客户端或者前端所要实现的,唯一 ID 生成也无需客户端去自定义规则,这套生成规则由相关产品在自动化工具的情况下生成配置表,下发到客户端,再由客户端按坑就班到相关界面去实现。 - 数据量相对精确 缺点: - 可视化工具的平台的搭建,静态页面的元素识别都需要额外开发。 - 动态效果可能会遗漏。 ## 实现方案 流程图大概如下:  其中H5端的页面大概如下:  如图,在左上角选择平台以及设备,主窗口是页面截图,以及每个控件的标注,右边是埋点添加、展示区域。 选中某个事件既可查看该事件的分析:  ##扩展阅读 ##### [Android 优质精准的用户行为统计和日志打捞方案](https://blog.csdn.net/sk719887916/article/details/50931485) ##### [App可视化埋点方案](https://www.jianshu.com/p/c650613581c7) 赏 标签:none