作者介绍

@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类埋点:展现埋点 + 曝光埋点 + 点击/输入框 等交互埋点 + 自定义埋点。

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

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

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

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

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

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

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

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

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

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

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

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

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

埋点记录

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

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

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

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

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

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

一个数据人的自留地是一个助力数据人成长的大家庭,帮助对数据感兴趣的伙伴们明确学习方向、精准提升技能。关注我,带你探索数据的神奇奥秘

1、回“数据产品”,获取<大厂数据产品面试题>

2、回“数据中台”,获取<大厂数据中台资料>

3、回“商业分析”,获取<大厂商业分析面试题>;

4、回“交个朋友”,进交流群,认识更多的数据小伙伴。

©著作权归作者所有:来自51CTO博客作者艾华丰的原创作品,如需转载,请注明出处,否则将追究法律责任

你的鼓励让我更有动力

赞赏

0人进行了赞赏支持

更多相关文章

  1. Linux学习之常用的Linux文件内容查看命令!
  2. 一篇文章掌握 Python 内置 zip() 的全部内容
  3. 动态加密?看我如何见招拆招爬取某点评全站内容!
  4. 别再问如何用Python提取PDF内容了!
  5. 提高页面的加载速度的几个小技巧[每日前端夜话0x3F]
  6. Python+Dash快速web应用开发——页面布局篇
  7. 使用 React 实现页面过渡动画仅需四个步骤【译】
  8. 《Python知识手册》更新V2.2版,添加 Plotly 可视化实战内容以及部
  9. 使用pkg打包编译nodejs程序,手动设置缓存内容

随机推荐

  1. Jquery读取xml
  2. 使用XmlTextWriter生成XML文件
  3. PHP扩展之XML操作(一)——SimpleXML
  4. js字符串转换成xml并使用
  5. XML数据读取方式性能比较(二)
  6. 让Asp与XML交互
  7. XML 实体引用、注释、命名规则
  8. XML数据读取方式性能比较(一)
  9. 给XML文档添加新 ”records”
  10. XML 增、删、改