❶ 数据埋点是什么设置埋点的意义是什么
所谓埋点就是在应用中特定的流程收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑,包括访问数(Visits),访客数(Visitor),停留时长(Time On Site),页面浏览数(Page Views)和跳出率(Bounce Rate)。
这样的信息收集可以大致分为两种:页面统计(track this virtual page view),统计操作行为(track this button by an event)。
埋点的主流有两种方式:
第一种:自己公司研发在产品中注入代码统计,并搭建起相应的后台查询。
第二种:第三方统计工具,如友盟、神策、Talkingdata、GrowingIO等。
如果是产品早期,通常会使用第二种方式来采集数据,并直接使用第三方分析工具进行基本的分析。而对于那些对数据安全比较重视,业务又相对复杂的公司则通常是使用第一种方式采集数据,并搭建相应的数据产品实现其数据应用或是分析的诉求。
埋点的内容
看完关键的这些指标后,其实埋点大致分为两部分,一部分是统计应用页面访问情况,即页面统计,随页面访问动作发生时进行上报;另外一部分是统计应用内的操作行为,在页面中操作时进行上报(例如:组件曝光时,组件点击时,上滑,下滑时)。
为了统计到所需要的指标,应用中的所有页面,事件都被唯一标记,用户的信息,设备的信息,时间参数以及符合业务需要的参数具体内容被附加上报,就是埋点。
关于埋点的数据的注意事项不要过分追求完美
关于埋点数据有一点至关重要,埋点是为了更好地使用数据,不要试图得到精准的数据要得到的是高质量的埋点数据,前面讨论跳出率就是这个例子,得到能得到的数据,用不完美的数据来达成下一步的行动,追求的是高质量而不是精确。这是很多数据产品容易入坑的地,要经常提醒自己。
❷ 关于埋点文档的一点总结
埋点就是在用户使用产品时记录下用户行为数据,以便后面对用户行为进行数据分析。比如说需要页面的浏览量,就需要对用户浏览页面这一行为进行记录,然后一个页面的所有用户浏览量相加,便可以得到这个页面的浏览量了。
1)埋点是为了进行数据分析,因此最好先明确数据指标或者是分析目的,这样能够保证自己想要的数据都能找到。
2)埋点可以事件为单位进行的,每一条埋点数据或者说是用户行为数据,记录了一个事件的发生。每一条事件数据需要讲清楚“ 什么人在什么时间、地点以什么方式完成了什么事情 ”,也就是who/when/where/what/how。
举个例子,以视频播放这个事件为例,视频播放其实就是用户播放视频这个行为,那么这个事件里就包含是哪个用户在什么时间、什么模块看了什么样的视频,如果需要投递视频播放这个事件,那么包含的字段就有:用户ID/时间/在APP的位置/视频ID/视频属性。
比如像点击、浏览、曝光这些行为便可以用前端埋点,主要是发生在用户与界面的交互;如果是电商中要统计下单成功这个事件,客户端是没有办法知道订单是否成功的。如果统计的事件里有需要用到后端的数据,也是要进行后端埋点的。
埋点数据是需要存储起来的,数据就会有它对应的字段。一般一条埋点数据需要记录:
事件ID、事件名(英文名、中文解释)、事件属性(属性英文名、中文解释、属性类型)、埋点形式(前端/后端)、事件触发时机(什么时候投递这个事件)
一个事件发生时,像用户ID、设备信息这些都是每个事件可以共用的,因此可以定义一些每个事件都可以使用的公共属性,比如可以定义:
像用户信息(用户ID、设备信息、网络信息、地理位置信息)、时间信息等字段是所有事件都会用到的,因此可以把他们当做所有事件的公共属性。
事件类型分为点击事件、曝光事件、页面停留事件等,在设计事件时,可以按产品的功能模块、点击事件、曝光事件等维度进行划分。比如说现在对西瓜视频进行埋点,从功能上可以划分为视频相关的事件、视频互动(评论、点赞、分享等)相关的事件,一些较为简单页面可以直接统计点击和曝光事件。
视频相关的事件包括有视频播放、视频曝光这两大类。
西瓜视频首页视频播放过程可能会有:
因为视频播放中可能会出现各种情况,此时最好列出所有情况,尽量考虑到每种情况下播放时长应该怎样进行计算。关于视频曝光事件这块,后面如果在数据计算时,会计算曝光事件总和作为曝光量,如果是小视频推荐出视频就算曝光了,而且这块可能出现快速滑走的情况,为了防止曝光时间过短,可以设置有效曝光时间,这样计算曝光量时我们可以控制什么样的曝光用来计算曝光量。
对于简单的页面曝光,可以进行简单的罗列;如果页面点击事件比较简单的话,可以用一个点击按钮属性来区分不同的点击按钮,但是如果点击事件比较复杂,本身可能就带有比较多得事件属性,或者这个点击事件很重要时,还是建议单独写一个点击事件,便于后面的分析。
一个APP里面有很多的埋点事件,而且都是不断迭代的(其实我就想说写完太累了,哈哈哈哈),所以就大概写一点了,大概形式就差不多了,总而言之,埋点还是得根据数据的需求来,比如数据需求想分析用户关注行为,就可以把关注单拎出来做一个事件集合。
❸ 数据埋点技巧
移动互联网时代,无论是Android、iOS还是小程序,都有很多成熟的解决方案,无需花费很多的时间去处理埋点的事情,而且基于第三方提供的SDK进行埋点,在数据处理和分析上也有很大的优势。
但是在之前的PC互联网时代,除了网页端有网络统计、谷歌分析等,客户端的埋点似乎没有一套能拿出来可供大家讨论的解决方案,我就基于我的工作经验和理解,给大家分享一下PC客户端的埋点。
PC客户端的埋点
首先,在PC上,我们得知道我们需要统计些什么内容。
一个PC客户端,无论是工具类的还是内容类的,我们都希望知道我们提供的服务的效果。那么,我们从一个客户端安装、运行到最终被卸载来看看。
就拿产品使用较多的工具“Axure RP”来举例吧。如果“Axure RP”是我们自己的软件,首先我们需要知道被安装了,之后,我们关注激活情况,也就是使用,到最后,被卸载了,这一整个环节,构成了一个生命周期。 重点来了,对于这个生命周期,所有你想知道的关于“Axure RP”的情况你都可以统计到。
1.软件的安装
在PC客户端安装的过程中,流程一般是这样的:①运行安装包②弹出安装界面提供给用户操作③执行安装过程-写注册表、启动项、计划任务等④执行安装过程-创建安装的文件夹(③和④可以交换)。
在这个环节,我们一般需要知道:
安装包被运行了
在安装界面用户做了哪些操作
我们的安装过程是否正常执行
我们最终是否安装成功
在PC上,只要我们的安装包运行起来了,无论是弹出安装界面、写注册表还是创建文件,这些都是安装包可以控制的,所以我们能通过安装包进程,将整个安装环节的所有数据记录下来发送到我们的后台并记录下来 (这里要重点记住,由于安装是一次性的动作,所以统计一定要发实时的) 。
2.软件的使用
软件的使用,包括启动软件、使用功能和退出软件。
在PC上,软件的启动有很多种方式,例如开机自启动、计划任务、手动点击快捷方式,我们继续以“Axure RP”举例,当我们装上了“Axure RP”后,会在桌面、开始菜单中,创建快捷方式(有些程序会在任务栏上也创建),同时,会将后缀名为“rp”的文件默认打开方式调整为“Axure RP”。
对于启动, 我们就有了三种方式:桌面快捷方式、开始菜单快捷方式和默认软件打开,所以我们需要统计软件是否被启动了,是如何启动的。
对于使用功能, 当软件运行起来后,其进程就会启动,这个时候就跟移动端的应用类似,我们需要统计一系列事件,每个功能的使用情况、功能状态、付费、登录等一系列信息(区别于移动端的是,在PC上一般这些统计都是做单点统计,例如统计弹窗的弹出、功能的点击、某个状态,对于相互关联的一组事件统计是比较复杂的,需要定义结构体,在一条统计中包含很多组字段信息,因为没有成熟的SDK集成,所以基本都要自己定义埋点,复用性较差)。
这部分统计分为公共统计和专用统计。公共统计就是基本信息,常用的是用户标识、用户基本信息、计算机硬件信息和其他的可复用的;专用统计就是针对你的功能,你想了解哪些情况,针对性进行埋点统计。
对于软件退出, 这就比较简单了,是正常退出还是异常退出?软件使用了多久退出?
3.软件的卸载
软件卸载的流程包括启动卸载程序、用户操作、删除注册表及文件等操作、完成卸载。
在这个过程中,我们主要关注两方面的信息,一方面是用户怎么卸载的?是主动使用卸载程序,还是通过一些管理软件进行卸载;另一方面是用户为什么要卸载,这个时候我们可以在卸载的界面中给用户提供选择,以获取用户的反馈。
该怎么埋点
1.埋点的分类
(1)时效性
PC客户端一般情况下都比较复杂,子功能很多,可统计的内容很多,为了节省带宽,我们不可能每次都实时将数据传输回来,而且很多时效性不是很强的功能没有必要实时上报。
实时统计
当功能触发时或达到一定条件,立即将统计回传,一般情况下用于时效性比较强的功能,例如活跃统计、营收类统计,我们需要实时分析并调整策略。
延时统计
统计不立即回传,将统计积累,达到一定的条件或者一定的时间,统一将这部分统计回传,一般情况用于时效性不强的功能,例如采集设备信息、获取某些功能的状态、常规功能的统计,这部分统计使用范围比较广,一般都是隔日发送,有一天的延迟,统计的信息晚一天不会对分析产生较大的影响。
(2)埋点的作用
常规的基础统计
每次统计都需要发送,可以理解为公用统计,这部分统计是将几乎所有的统计都需要的部分包括进来,封装成一个统一的部分,每次发送统计都会带上这些内容,方便管理,节省后续埋点时间。
功能统计
针对特定功能,当功能被使用或者生效的时候,我们需要统计效果或者状态,可以理解为专用统计,不同于移动端,PC一般没有第三方提供的SDK,需要每个专用统计自己埋点,维护大量的统计内容,不过在一个公司内部,可以统一设计规范,方便维护。
(3)数据类型
结构体
统计连贯的事件,各项信息之间的关联很重要。
计数
统计某个行为发生的次数。
字符串
统计内容。
整形
统计数值,也可用来统计状态。
布尔型
统计需要判断的类型,一般使用场景较少,为了方便计算,大部分被整形和字符串替代。
2.数据埋点实例
(1)软件安装
场景:统计安装过程中的信息
(2)软件的使用
场景:软件启动后,用户使用了分享功能,将自己做的原型分享到了云端,最后用户关闭了软件。
要注意的是,软件启动和关闭,看需要是可以调整的,如果你只是想知道是不是启动了,来判断活跃,那么仅仅需要启动的时候发送个整型的值标识即可;如果想知道更详细的信息,比如启动方式、启动时间等等,可以定义结构体,将这一刻更多的信息发送回来,可灵活定义。
(3)软件卸载
卸载跟软件安装类似,这里就不赘述了。
在这里,如果希望收集用户的卸载原因,可以定义一个字符串,将用户填写的内容上报,这种形式的数据如果太多,不太利于分析,所以看产品情况可灵活设置。
❹ 我想请教个问题,经常听他们说网页布点、埋点什么的是什么意思有什么用么
埋点是网站和APP等产品进行日常改进及数据分析的数据采集基础,根据采集得到的用户行为数据(例如:页面访问路径,点击了哪一个按钮)进行数据分析,从而更加合理的推送跟优化,增强用户体验。现在市面上有很多第三方埋点服务商,网络统计、友盟、growingIO等。
常见的埋点方法包括:
手动埋点:根据业务需求在需要采集数据的地方进行埋点,是比较常见的埋点手段。
可视化埋点:一些事件带有元素唯一标识。通过在后台进行埋点配置,将元素与要采集信息关联起来,然后自动生成埋点代码嵌入到页面中,目前发展比较火的埋点方式,但是技术上的实现跟推广比较困难
无埋点:简单来说就是没有埋点,前端会采集用户所有的行为跟信息,然后后台再对这些信息进行筛选,由于数据量巨大,对服务器的性能要求很高。
网页布点即布局,网页的三种布局:固定布局,流式布局,弹性布局。
固定布局:以px来设置宽度。
流式布局:以百分比来设置宽度!在宽度较小时,行宽会变得非常窄且难阅读。因此我们要给它添加以px或者em为单位的min-width,从而防止布局变得太窄。
弹性布局:相对于字号来设置宽度,以em为单位设置宽度!由于字号增加时整个布局宽度会加大,因此可能比浏览器窗口宽,导致水平滚动条出现。所以,要给它添加一个max-width为100%。
(4)百度埋点数据存储扩展阅读:
埋点分析,是网站分析的一种常用的数据采集方法。数据埋点分为初级、中级、高级三种方式。数据埋点是一种良好的私有化部署数据采集方式。
数据埋点分为初级、中级、高级三种方式,分别为:
初级:在产品、服务转化关键点植入统计代码,据其独立ID确保数据采集不重复(如购买按钮点击率);
中级:植入多段代码,追踪用户在平台每个界面上的系列行为,事件之间相互独立(如打开商品详情页——选择商品型号——加入购物车——下订单——购买完成);
高级:联合公司工程、ETL采集分析用户全量行为,建立用户画像,还原用户行为模型,作为产品分析、优化的基础。
❺ 关于数据埋点,你需要知道的技术方案和规范流程
埋点是数据采集的专用术语,在数据驱动型业务中,如营销策略、产品迭代、业务分析、用户画像等,都依赖于数据提供决策支持,希望通过数据来捕捉特定的用户行为,如按钮点击量、阅读时长等统计信息。因此,数据埋点可以简单理解为:针对特定业务场景进行数据采集和上报的技术方案。
数据埋点非常看重两件事,一个是数据记录的准确性,另一个则是数据记录的完备性。
先讲数据的准确性。数据埋点非常强调规范和流程,因为参数的规范与合法,将直接影响到数据分析的准确性,如果准确性得不到保障,那么所有基于埋点得出的结论,都是不可信的。辛辛苦苦做了很久的方案,一旦因为一个疏忽的小问题,导致下游集中投诉,其实非常划不来。
道理每个人都懂,但现实情况中,数据埋点所面对的客观环境,其实非常复杂,例如:
因此本文有非常长的篇幅来写流程问题,其实是非常有必要的。
再讲数据的完备性。因为埋点主要是面向分析使用,对用户而言是个额外的功能,因此埋点的业务侵入性很强,很容易对用户体验造成影响。别的不说,仅仅是流量的消耗,就很容被用户喷。因此,要提前想清楚,我们要采集哪些东西,因为修改方案的成本,是伤不起的。
通常情况下,我们需要记录用户在使用产品过程中的操作行为,通过4W1H模型可以比较好的保障信息是完备的。4W1H包括:
规定好记录信息的基本方法之后,按照固定的频率,如每小时、每天,或者是固定的数量,比如多少条日志,或者是网络环境,比如在Wifi下上传,我们就可以开心的把埋点数据用起来了。
当然,数据记录的时效性也比较重要,但因为埋点数据通常量级会比较大,且各个端数据回传的时间不同,因此想做到实时统计,还是需要分场景来展开。在Flink技术日渐成熟的今天,全链路的实时采集与统计,已经不是什么难题。
在埋点的技术方案中,首先要重视的,是用户唯一标识的建设。如果做不到对用户的唯一识别,那么基础的UV统计,都将是错误的。
因此,在数据埋点方案中,有两个信息是一定要记录的,即设备ID+用户ID。设备ID代表用户使用哪个设备,如安卓的ANDROID_ID/IMEI,IOS中的IDFA/UDID,浏览器的Cookie,小程序的OpenID等。用户ID,代表用户在产品中所注册的账号,通常是手机号,也可以是邮箱等其他格式。
当这两个信息能够获得时,不论是用户更换设备,或者是同一台设备不同账号登录,我们都能够根据这两个ID,来识别出谁在对设备做操作。
其次,我们来看一下Web的数据采集技术。Web端数据采集主要通过三种方式实现:服务器日志、URL解析及JS回传。
浏览器的日志采集种类又可以分为两大类:页面浏览日志和页面交互日志。
除此之外,还有一些针对特定场合统计的日志,例如页面曝光时长日志、用户在线操作监控等,但原理都基于上述两类日志,只是在统计上有所区分。
再次,我们来看下客户端的数据采集。与网页日志对应的,是手机应用为基础的客户端日志,由于早期手机网络通讯能力较差,因而SDK往往采用延迟发送日志的方式,也就是先将日志统计在本地,然后选择在Wifi环境下上传,因而往往会出现统计数据延迟的情况。现如今网络环境好了很多,4G、5G流量充足,尤其是视频类APP基本上都是一直联网,因而很多统计能够做到实时统计。
客户端的日志统计主要通过SDK来完成,根据不同的用户行为分成不同的事件,“事件”是客户端日志行为的最小单位,根据类型的不同,可以分为页面事件(类比页面浏览)和控件点击事件(类比页面交互)。对于页面事件,不同的SDK有不同的方式,主要区别为是在页面创建时发送日志,还是在页面浏览结束后发送日志,区别在于业务统计是否需要采集用户的页面停留时长。
页面事件的统计主要统计如下三类信息:
埋点其实还需要考虑数据上传的方案,批量的数据可以通过Flume直接上报,流式的可以写到Kafka,或者直接使用Flink来处理。这些框架相关的内容不是本文考虑的重点,有兴趣的可以自行查阅资料。
有了指导思路和技术方案后,我们就可以着手制定相应的数据埋点流程规范了。
笼统上,流程规范会分成五个步骤,即需求评审、埋点申请、技术开发、埋点验证、发布上线。
第一步,需求评审。
前文提到过,数据埋点的方案一旦确定,返工和排查问题的成本都很高,但数据埋点之后的分析工作,又涉及到了PD、BI、算法、数据等多个角色。因此非常有必要,将需求内容和数据口径统一收口,所有人在一套口径下,将需求定义出来,随后业务侧再介入,进行埋点方案的设计和开发。
以前文提到的4W1H模型为例,常见的记录内容如下:
最后我们统计时,按照上述约定,统计用户在某个时间和地点中,看到了哪些信息,并完成了怎样的动作。上下游的相关人员,在使用这份数据时,产生的歧义或者是分歧,会小很多。
第二步,埋点申请
当下的热门应用,大多是以超级APP的形式出现,比如微信、淘宝、支付宝、抖音,超级APP会承载非常多的业务,因此技术方案上会十分统一。
因此,当我们的技术方案确定后,通常要在相应的埋点平台上,进行埋点申请。申请的内容包括分配的SPM、SCM码是什么,涉及到的平台是哪些,等等。SPM、SCM是什么,有什么用,同样可以自行查阅。
第三步,技术开发
当需求确定、申请通过后,我们就可以开始开发动作了,这里基本上是对研发同学进行约束。埋点的开发,简单讲,是分成行为埋点和事件埋点两个大类,每一类根据端的不同进行相应的开发。具体的技术方案详见前文01章节。
详细的设计规范,是需要留文档的,因为代码不能反应业务的真实意图,而不论是事后复盘与业务交接,都需要完整的文档来阐述设计思路。
第四步,埋点验证
埋点的验证很关键,如果上线后才发现问题,那么 历史 数据是无法追溯的。
验证有两种方式,一种是实时的功能验证,一种是离线的日志验证。
实时功能验证,指功能开发好后,在灰度环境上测试相应的埋点功能是否正常,比如点击相应的业务模块,日志是否会正确的打印出来。通常而言,我们需要验证如下三个类型的问题:
除去实时验证,我们也需要把日志写到测试环境中,查看数据上报的过程是否正确,以及对上报后的数据进行统计,侧面验证记录的准确性,如统计基本的PV、UV,行为、事件的发生数量。
很多时候,数据是需要多方验证的,存在一定的上下游信息不同步问题,比如对某个默认值的定义有歧义,日志统计会有效的发现这类问题。
第五步,发布上线。
应用的发布上线通常会有不同的周期,例如移动端会有统一的发版时间,而网页版只需要根据自己的节奏走,因此数据开始统计的时间是不同的。最后,应用应当对所有已发布的埋点数据,有统一的管理方法。
大多数时候,数据埋点的技术方案,只需要设计一次,但数据准确性的验证,却需要随着产品的生命周期持续下去,因此仅仅依靠人肉来准确性验证是不够的,我们需要平台来支持自动化的工作。埋点的准确性,大体有两种方法保障:一种是灰度环境下验证真实用户数据的准确性;另一种则是在线上环境中,验证全量数据的准确性。因此,发布上线之后,后续的管理动作,应该是对现有流程的自动化管理,因为团队大了,需要埋点的东西多种多样,让平台自己测试、自动化测试,就是很多测试团队必须走的路
❻ “知道如何埋数据点,取数据”是什么意思
所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语,指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。埋点的技术实质,是先监听软件应用运行过程中的事件,当需要关注的事件发生时进行判断和捕获,然后获取必要的上下文信息,最后将信息整理后发送至服务器端。所监听的事件,通常由操作系统、浏览器、APP框架等平台提供,也可以在基础事件之上进行触发条件的自定义(如点击某一个特定按钮)。一般情况下,埋点可以通过监测分析工具提供的SDK来进行编程实现。埋点的业务意义显而易见,即帮助定义和获取分析人员真正需要的业务数据及其附带信息。在不同场景下,业务人员关注的信息和角度可能不同。典型的应用场景有面向数字营销领域的分析,以及面向产品运营领域的分析。前者注重来源渠道和广告效果,后者更在意产品本身流程和体验的优化。两者各有侧重,也可以有一些交叉。所以,对于不同的项目和分析目的,应当设计不同的埋点方案。近年来,埋点的方法论上也出现了一些业界新趋势,如“无埋点”技术。所谓“无埋点”,是指不再使用笨拙的采集代码编程来定义行为采集的触发条件和后续行为,而是通过后端配置或前端可视化圈选等方式来完成关键事件的定义和捕获,可以大幅提升埋点工作的效率和易用性。在“无埋点”的场景下,数据监测工具一般倾向于在监测时捕获和发送尽可能多的事件和信息,而在数据处理后端进行触发条件匹配和统计计算等工作,以较好地支持关注点变更和历史数据回溯。当然,即便是“无埋点”技术,也仍然需要部署数据采集基础SDK(又称基础代码),这一点需要注意,容易产生误区。