埋点
wangzf / 2020-09-22
Data Buried Point
流量统计的基础-埋点
所谓埋点就是在应用中特定的流程收集一些信息,用来跟踪应用使用的状况, 后续用来进一步优化产品或是提供运营的数据支撑,包括
- 访问(Visits)
- 访客(Visitor)
- 停留时间(Time On Site)
- 页面查看(Page Views,又称为页面浏览)
- 跳出率(Bounce Rate,又可称为蹦失率)
这样的信息收集可以大致分为两种:
- 页面统计(track this virtual page view)
- 统计操作行为(track this button by an event)
关键指标
无论是 APP 还是 HTML5 都会关注一些指标,了解这些指标的计算方法的细微差异以及复杂性
访问与访客
访问(Visits)与访客(Vistors)是几乎所有应用都需要统计的指标,这也是最基础的指标
对于应用的统计来说,希望统计的是访客(Vistors)。访问(Visits)是指会话层, 用户打开应用花一段时间浏览又离开,从指标定义来说这杯称之为一个会话(Session)。 一次会话(Session 或 Visit)是打开应用的第一个请求(打开应用)和最后一个请求决定的。 如果用户打开应用然后放下手机或是离开电脑,并在接下来30分钟内没有任何动作, 此次会话自动结束,算作一次访问或会话期
在计算访客时,埋点上报的数据是尽可能接近真实访客的人数。对于独立访客这个指标, 这里还是需要强调一下,独立访客数并不是真实独立的人, 因此收集数据时必须知道独立访客虽然能够很好的反映使用应用的真实访问者的数量, 但不等于使用应用的真实人数
原因是,重复安装的应用,或是手机参数被修改都会使得独立访客的指标收到影响。 独立访客的埋点都是依赖 Cookie,用户打开应用,应用都会在此人的终端创建一个独立 Cookie, Cookie 会被保留,但还是难免会被用户手动清理或是 Cookie 被禁用导致同一用户使用应用 Cookie 不一致, 所以独立访客只能高度接近于使用应用的真实人数
停留时间
停留时长用来衡量用户在应用的某一个页面或是一次访问(会话)所停留的时间
页面停留时长,表示在每个页面所花费的时间
例如:首页就是进入首页(10:00)到离开首页进入下一个页面(10:01)的时长, 首页停留时长计算为1分钟。页面A是2分钟。页面B进入时间(10:03),离开时间没有记录,这时候计算就是 0 , 这种特殊情况的处理是需要在埋点特别注意的,还是那句话,不要尝试收集绝对精准的数据,要学会使用不全的数据,活学活用。
应用的停留时长,表示一次访问(会话)所停留的时间,计算起来就是所有页面的访问时长, 同样是上一个流程,应用的停留时长就是4分钟
页面查看
跳出率
跳出率的计算方法现在在各个公司还是很多种,最精彩被使用的是:单个页面访问的所占的会话比例。 这种场景意味着用户来了访问了一个页面就离开了,想想用户使用的心里画面应该是:打开应用,心想什么鬼, 然后关闭应用甚至卸载了。这个场景多可怕,这也是为什么跳出率指标被如此关注。
跳出率可以分解到两个层次:一是整个应用的跳出率,二是重点的着陆页的跳出率,甚至是搜索关键词的跳出率。 跳出率的指标可操作性非常强,通过统计跳出率可以直接发现页面的问题发现关键词的问题
退出率
退出率是针对页面的,这个指标的目标很简单,就是在某个页面有多少用户离开这个页面, 主要用户反映用户从应用离开的情况。哪些页面需要被改进最快的方式被发掘。 (有些流程中设定走完标准流程,退出率最高的在标准流程的最后的页面反映的正向呢,不要认为退出率高都是坏的事情哦)
转化率
我们在产品上投入这么多,不就是为了衡量产出么?所以对于电商类应用, 还有比转化率更值得关注的指标吗?转化率的计算方法是某种产出除以独立访客或是访问量, 对于电商产品来说,就是提交订单用户数除以独立访客
转化率的计算看起来想到那简单,但却是埋点中最贴近业务的数据收集。 这也是最体现埋点技巧的指标,需要结合业务特点制定计算方法。 提交订单量/访客数是最基本的转化率,转化率还可以分层次, 指定用户路径的,如:完成某条路径的提交订单数/访客数
参与度
参与度并不是一个指标,而是一系列的指标,访问深度,访问频次这些都是衡量参与度的指标。 之所以把参与度列为一个指标,是希望大家明白把指标组合后续产生化学反应,发现实物的本质
埋点方式
现在埋点的主流有两种方式:
- 第一种:自己公司研发在产品中注入代码统计,并搭建起相应的后台查询。
- 第二种:第三方统计工具,如友盟、百度移动、魔方、App Annie、talking data等
如果你的数据来自第二种,那你使用的工具也应该是第三方统计工具,后续没啥数据产品了, 好好用这些产品吧。这里说说第一种的埋点方式吧,怎么数据埋点, 就需要根据自己产品的任务流及产品目标来设计
前端埋点
代码埋点出现的时间很早了,在 Google Analytics 年代,就已经出现了类似的方案了。 目前,国内的主要第三方数据分析服务商,如百度统计、友盟、TalkingData 等都提供 iOS、Android、Web 等主流平台的代码埋点方案。 原理就是在APP或者界面初始化的时候,初始化数据分析的 SDK, 然后在某个事件发生时就调用SDK里面相应的数据发送接口发送数据。 现在业界有吹嘘无埋点的其实并不是没有埋点,而是不需要手动埋点, 其实是从接入 SDK,数据就一直都在收集。有兴趣读一读提供的 SDK, 会更了解前端的埋点,收集的信息。包括现在也有了不断的演化统计埋点的那些事
后端埋点
后端埋点也就是服务器端埋点,除了将接口的日志记录下来, 在接口附加一些参数进行逐层传递将信息串联, 因为需要依赖接口的改造通常被用来补充前端埋点不能实现的统计, 大部分自己公司的数据统计都是前后端埋点并存
埋点的内容
看完关键的这些指标后,有没有发现埋点的来源也大致分为两部分
- 一部分是统计应用页面访问情况,即页面统计
- 另外一部分是统计应用内的操作行为,及自定义事件统计
数据产生就是在每次页面浏览或是点击,滑动等事件发生时都上报一条数据, 包括页面信息,控件信息,设备信息,用户信息等,为了将用户行为串联, 需要确保有一个全局唯一的 ID 串联访问的顺序
后续的统计将用户的行为流串联统计出想要的结果即可
关于埋点的数据的注意事项
不要过分追求完美
关于埋点数据有一点至关重要,埋点是为了更好地使用数据,不要试图得到精准的数据要得到的是高质量的埋点数据, 前面讨论跳出率就是这个例子,得到能得到的数据,用不完美的数据来达成下一步的行动, 追求的是高质量而不是精确。这是很多数据产品容易入坑的地,要经常提醒自己