作者介绍

@Sven

BAT数据打杂专家。

之前做过用户增长。

目前负责数据全链路。


01

前言

随着互联网时代的到来,各行各业都开始融入“ 互联网+” 的思维。从最开始的TOC的服务&消费型产品,到如今TOB的数字化转型,数据越来越重要。打开京东淘宝,头条抖音,里面琳琅满目的商品推荐,视频推荐。


那么,问题来了,这些算法上千人千面的推荐,是怎么做到的?答案:用户行为数据。


那再深入一些,如何更精准的拿到 用户行为数据?

答案:埋点。

这就是今天我们要讲述的内容:数据埋点。


02

埋点简介

定义:埋点是用户行为数据的来源。


目前来说,大部分企业对于用户行为数据的获取,都是在各个终端上设置埋点。

通过各种各样的埋点,拿到相应的用户行为数据。用于下游的统计分析和业务迭代。


主流的方式有两种:

第一种:公司自研,在产品的各个页面、(可交互)模块,按照一定的规范,“注入”统计代码。

第二种:第三方统计工具,如友盟,神策,GrowingIO等第三方监测平台的接入。


各个公司随着业务的不断扩大,一般都会选择自研发,并设定相应的埋点规则和统计规则。


我们这期重点就来聊聊“埋点规范”的设计。


03

埋点参数

一般来说,埋点主要由两个部分组成:公参和业务参数。


公参

什么是公参?通俗来说,就是无论这个业务怎么变,每个埋点中都必须有的值。


举个例子,用户的业务id(如 uid),就是公参;用户的手机imei,也是公参。我们可以根据我们的业务形态,及我们一定需要的数据,给出公参。


一般公参有4个要素:用户识别 、设备识别 、 页面识别 、关联识别。


用户识别顾名思义,用户的唯一标识。即用户无论在哪台手机(终端)上登陆,我们都能映射到该app下的唯一用户的标识;且对应到这个用户上的一些固定信息,如手机号,实验分桶标识等常用信息。


设备识别:由于用户可能在不同的机型上,所以我们需要记录到设别信息,如imei,手机型号,手机系统等。


页面识别:特定的页面上的信息,如搜索,我们需要每个页面都透传用户的搜索词;如头条,可能需要每一次打开app的行为id,这些特定的,非业务参数信息,都可以记录到页面识别参数里。


关联识别:由于行为和行为之间,会有链路的串联关系,所以我们需要记录页面之间的关联关系参数。比如:页面和页面之间的关系,我们可以记录 来源页面;模块和页面之间的关系,我们可以记录 来源模块;如果所有页面流量都有算到某一页面上,那我们可以将 该页面识别(如页面id)透传至需要统计的页面。


业务参数

业务参数,就是对应到具体的产品模块,展现内容等具体业务上需要统计的内容的映射值。


对于业务参数的设计,我们在下文中会具体讲解如何定业务参数。


04

埋点设计方法

每个公司,每个业务都会有独特的埋点方案,但是无论哪种埋点,我们都会有个明确的层级及关系划分。这里主要介绍两种较通用的埋点方案,为大家埋点设计提供一定的参考。


模块式埋点

模块式埋点,就是用产品本身,肉眼可见的明确区分的模块,来构建业务参数。


每个app,都由多个页面组成,不同的页面及页面上的功能组合,构建了一个app。

所以,我们可以定义模块式埋点的第一个层级:页面。


具体到某一个具体页面,我们可以较明确的区分出区域,比如微信信息列表页,我们可以较明确的看到三个区域:头部区域(搜索框 & 右上角的加号),中间信息列表区域,底部4个按钮区域。这些明确可以划分的区域,我们可以定义成第二个层级:区域。


而在看这些区域中的具体 可以交互 的内容(或者功能),我们可以定义成第三个层级:按钮。比如头部区域中的搜索框点击,右上角加号的点击;中间信息列表区域的聊天窗口点击;底部按钮区的四个按钮的点击。


这样,我们把三个层级串联起来,就形成了这样一套业务埋点规则:页面_区域_按钮。


当然,我们可能还需要记录某些具体的业务附加信息。


如点击聊天列表,是点击了群聊,还是好友,我们可以记录一个聊天类型,而对应的如好友id,群聊id,我们也可以记录在附加信息中。


这些附加信息,我们也可以记录到具体的参数值里,但这个参数需要和模块层级埋点区分,不能埋在同一个值中,这点需要注意。


比如上文所述的微信的埋点,我们可以这样标记:



我们按照上述结构,将页面&区域&按钮链接在一起(比如以 @ 符号关联),就形成了该页面的埋点,如页面展现,我们可以打点为 wx_list_page@0@0,如公众号点击,我们可以打点为 wx_list_page@talk_list@pub_acc_clk,以此类推。


如果我们想统计中间区域的点击,那么我们之需要把点击埋点截断至 区域,不用明确区分按钮,我们就能很方便的统计出想要的区域,页面,点位上的数据。


内容式埋点

和模块式埋点类似,模块式埋点是产品本身的层级区分,内容式埋点是内容本身的层级区分。


内容式埋点一般会应用在广告等内容的数据统计上。

首先,我们需要一个串联ID来串联前端数据和服务端数据。


往上层,我们需要知道这个串联id属于什么内容,这时需要内容id。再往上,内容id属于哪种大的类目,这时需要内容分类。


这个就是内容埋点,同模块埋点,内容埋点需要有明确的内容层级区分。

而这时基础层级,串联后就形成了内容埋点规范:内容分类_内容id_串联id。


当然,模块式埋点以及内容式埋点还可以继续往上层划分,比如 模块式埋点可以增加至 产品_业务_页面_区域_按钮;内容式埋点可以增加至 业务_系统_内容分类_内容id_串联id。


这些都可以根据特定的业务场景修改,只要有相应的层级划分,统计起来就会方便很多。


05

埋点TIPS

事件分类

一般情况下,主要有3类埋点:展现埋点 + 曝光埋点 + 点击/输入框 等交互埋点 + 自定义埋点。


展现埋点:通俗来说,某个页面里的内容被展现了。


怎么定义展现,这个其实就是一个服务端的触发。服务端如果触发了,用户侧会展现什么内容。


由打点时机可以明确出,展现埋点需要记录的是 页面展现的内容信息。


也就是说,服务端下发的内容都包含什么(这些东西一定是当前页面主要内容,不包含一些交互信息)。


曝光埋点:哪些下发的内容被用户实际看到了。


和展现埋点类似,由于屏幕有限,但内容可以无限。哪些内容被用户侧实际看到(曝光),我们也需要记录下来。


不同的是,曝光埋点,我们需要记录的是单个“内容”被看到,不能是一串内容。一串内容,可以触发多次曝光埋点,但是曝光埋点一定是单个“内容”。


交互埋点:哪些功能/内容被用户“点击”了。


从埋点时机来说,这个是展现 & 曝光的下游。

记录的是,对于我们提供的“服务”的“消费”情况。


比如,一个页面,用户可以点击,那么我们需要记录相应的交互埋点;比如,一个视频可以点赞,我们也可以记录交互埋点;比如,一个视频可以播放暂停,我们也可以记录消费埋点。


总体来说,就是,我们要记录 被看到的可交互功能/信息的“消费”数据。


自定义埋点:随着业务的发展,产品种类越来越多,总会有需要特殊埋点的地方,可以留一个自定义埋点备用,总要给业务一个机会嘛(玩笑话)。


埋点记录

关于埋点记录,或者叫埋点文档,我们只要明确记录两个信息:点位信息 & 点位映射。


点位信息:明确每个业务事件下的具体的参数信息,即上文所述的公参+业务参数。


点位映射:每个埋点对应的业务含义。


只要埋点文档中记录了这两个内容,那么这份埋点文档就是一个合格的埋点文档。


当然,上文所说的层级,参数,事件等,都是一份好的埋点设计的组成“成分”。

多思考,多参考,相信大家都能设计出合适自己业务的埋点规范。


点赞(3263) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部