找回密码
 注册
2月份电巢直播计划
查看: 225|回复: 0

数据埋点:前端页面PV/UV的触发和交互

[复制链接]

该用户从未签到

发表于 2021-1-15 14:13 | 显示全部楼层 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 fish1352 于 2021-1-15 14:15 编辑 " E2 [  q8 h, @. q  f8 P+ j
0 b. O$ r# _* t
数据埋点是数据产品经理、数据运营以及数据分析师,基于业务需求、产品需求等对用户行为的每一个事件对应的位置进行开发埋点,记录数据汇总后进行分析,推动产品优化或指导运营。今天,本文作者和大家聊一聊这次数据的诞生:前端埋点。3 N0 N4 s, }$ c, f; ]; k
* [; D2 g/ K! b8 N$ h; d

$ _8 e5 R: N, B) `1 ~8 q! G2 {8 `8 J8 R2 a
数据埋点是数据分析的基础,依据埋点数据中我们可以开展数据清洗、数据归因、分析模型、AB测试等工作。! |3 ~! R5 T/ \4 t! G

' Z: H/ r8 v# |( r9 c% L" [( a$ _: C8 | 如今数据分析可以说是当前最热门的技能了,不管是产品、运营还是设计都可以明显感知到各大平台、公众号都在使劲的推送。各种9.9秒杀课程、1元限时体验。
9 V& b3 I- q, O
8 J. f( a1 X* A7 J 这说明了数据分析确实是一个大家都需要掌握的趋势,但是我们不能忽视数据的生命周期(数据的诞生和沉寂),这次聊下数据的诞生:前端埋点。
" R- L% x) t& }
- B& N3 b! F' l7 v0 S( g( g 一、什么是埋点? * u0 ~: F+ L/ Q7 q6 z1 k# [4 D5 n1 k
) q- z4 {* I1 ]' H6 q
埋点我们可以理解成一个收费站,用户的行为就像开着车在高速路上跑。在没有做埋点的时候,我们只能知道有人在高速路上跑,但是用户跑的那条高速路,经过了哪些地方,在高速路上遇见了什么问题我们都不知道。7 i, E& H1 M" |) K) R
5 c$ y0 I' C" a* m3 B/ L! C
而做了埋点之后,就像我们在高速路上修建收费站。用户只要途径收费站,那么我们都会知晓,这就是埋点。而埋点数据则是用户在经过收费站时,我们要想知道的关于用户的信息。
1 C3 `2 ?& J. R, B( `
$ `* H! x' R: [7 {/ Y) q) _7 V6 u 除此之外我们也常说埋点我们要分代码埋点、可视化埋点和全量埋点,那么他们有什么区别?
1 N4 f; w2 S& [/ ?4 `- R) @5 g* S; p
1. 代码埋点 - e5 g6 d! {! b& D" C

# b' m4 q% s9 y' @: p+ [ 我们请了一个施工队,这个施工队听你的指挥,并根据你在高速路上指定的位置建造收费站,这种都是一砖一瓦的施工:  p( R1 `$ Z" g* s

- p) e' g, h4 y# @* R
; P& Q3 l  r. d- z0 `0 L- G
  • 优点:可控性高,满足所有的需求;  
  • 缺点:研发成本、设计成本高。
    4 m- {4 S8 {  K9 x4 L, w0 \, a& W9 c, |% n
2. 可视化埋点 我们将需要建造的收费站进行模具化,只需要到指定位置放置模具,对模具直接浇灌水泥,收费站就直接成型。% Q* L6 N- b' y

( l/ r$ r- C2 Z' @0 G7 z. r  c! { 8 v  @6 p. _4 I) K9 r
  • 优点:操作方面,布置快捷;  
  • 缺点:适应性差,纬度匹配度因“路”而异。 8 W! A  K: f; O+ o) ]
3. 全量埋点 直接组装卫星发射到天上,实时监控高速路上的用户行为。4 N  [& A- L! q1 k" Q
9 h6 g/ y. e* e! M6 N" @/ |2 d

9 Q/ T) s2 k+ w6 W" ^
  • 优点:用户的一举一动我们都知晓;  
  • 缺点:数据传输量大,数据需要二次清洗,占用大量实时资源进行数据传输。 # `& B" e6 A) e5 K: d: J+ _0 G
二、埋点类型 埋点我喜欢分为前端埋点和后端埋点。前端埋点指的是可视化页面上的埋点,只要是有可视化操作页面我们都可以看作是可以进行前端埋点。
5 z; K9 i1 K' r( D  i
/ v, p$ M) y: g( f& u+ m 后端埋点,指的是在用户看不见也摸不到的后端服务里进行埋点,比如订单的生成、额的计算、条件的触发等。
6 c5 v# v# {; F7 s
3 u' V6 C" U) f0 a; I- c

5 m9 y9 \& ]4 F! L$ E
+ R2 i& L( d$ Z" F& Z  y  S  B2 \& G 在前端埋点中,我们主要关注用户行为。用户在页面上浏览了什么、点击了什么。这样我们可以很好的了解页面内容对于用户感官的影响。5 J, z) W$ L; }. e2 ~% m
' n& k8 Z- \: J+ \* @# J: h
而后端埋点更加看重业务和逻辑,在用户发起行为交互后,对交互数据进行记录。例如:搜索的内容是什么,搜索到的结果怎么样等,由此得到数据后,我们可以更好优化“策略”。, Z0 p9 z0 b8 @2 e" W

( k& D" x3 t/ G' Y( K# c

- w4 r+ e% o& s. }; r
9 ^( D, u1 s  ^& \$ I; p 三、前端埋点:自动触发式 1. PV
$ ^6 [; u5 S6 |5 l2 o. b
( C, ~" c1 c2 }; e; b! d. ` 前端埋点我们常用的就是PV/UV(Page View / User View;页面浏览量 / 用户浏览量)。他们两个区别在于,PV(页面浏览量)关注的是页面被浏览的次数,打开一次计算一次。, G9 l, l" Q2 T2 h- `0 T
* Y8 Z( g) q; H0 n9 [
UV(用户浏览量)关注的是浏览用户的数量,记录打开浏览的用户数量。了解上面PV/UV的最基本认知之后,我们来讨论如何做好PV/UV的记录?
$ i8 p. p' ]% K- \
( h9 j( z* u8 F 我们常识中PV/UV就只是给技术提埋点数据需求(文档、口头)就完了,其实我们在提PV埋点的时候有很多细节。
, I: B/ m) j1 x
6 r( t* M: c. q 一般页面会存在生命周期,这种生命周期常见有4个阶段,以VUE(国内用的比较多的前端研发框架)为例分别是:创建、加载、更新、销毁,这4个阶段分别代表着用户在点击打开浏览网页到点击关闭退出网页。
+ g# u( k% R% Q
/ S7 T% h9 ?& F7 Y- p% ^ 正常情况下用户进入页面,先渲染一些简单的样式(html和css),随后便进行数据的加载更新,最后用户点击关闭退出页面,如果我们再细分可以分为创建前、创建后、载入前、载入后、更新前、更新后、销毁前、销毁后。
5 V; a8 M4 F/ `  \% P3 l' p# O2 d  A! O7 z3 S: d- O
在我们进行PV/UV埋点的时候,就算相同的一个纬度(PV/UV)选择不同的阶段进行埋点,得到的结果也会不一样。正常情况下,技术喜欢把埋点做在加载,更新这2个阶段。这样需要用户基本完整的看见也看才进行埋点数据的存储(才会触发埋点)。8 b- A1 l% a. o( @
% A& a! }% B& m" E, H
9 S: [6 N; {% j
5 e4 t1 d" O2 `$ ^3 J5 z
但是在特殊情况下,有些用户网络情况不佳,半天都加载不出页面,遇见我们常说的白屏,这样PV的触发将会有不可控性。1 z( v7 w! K# }, Z( ~8 D
; I' N' H& m8 E) D' ]
因为我们很难知道因为网络的问题,他到底触没触发我们的埋点。所以在这样的情况下,我们可以将PV的触发放在“创建”这个位置,当页面创建成功机会进行埋点数据的触发。3 o+ Q, w* G7 u# f7 T/ F
$ s9 J2 f1 p+ J# x* i, m
下面是pv埋在不同阶段会有不同的特点,但是常态下我们都还是选择放在更新这个阶段:这只是依据页面的生命周期的钩子(页面运行时,前端代码加载的先后顺序)进行说明。可能存在误差,有需要的可以自行去百度vue生命周期。/ f1 O1 j" P4 G6 G1 L- o2 B5 C) B

9 T9 L3 N! ~- k( f1 i1 K0 Y

" i/ m2 g5 S$ D. i% W; v+ Y( Q" C  C7 u* ~. f
2. UV . L6 g8 v- \4 p

8 K  x1 T$ }/ W/ j) ~" r UV和PV埋点的方式相同,唯一不同的地方就是UV需要在PV的基础上通过唯一标示进行筛选。统计有多少个唯一标示而得UV的数量,一般我们常见的唯一标示如下:8 g2 h0 l/ e/ K! x( y; M7 V

: \* |" t3 T. d% ^; f
  • 手机号:用户登录页面后依据他绑定的手机号来进行统计,但是如果用户未登录将无法统计;  
  • cookie:通过用户浏览器上的cookie作为唯一标示,但因为cookie是存在用户浏览器中容易被修改;  
  • localStorage:通过在浏览器在本地存储一个长期唯一标示,但是可以手动清理;  
  • IP:通过访问页面ip地址进行区分,如果ip变更将另行计算;  
  • seesionStorae:通过存在服务器的信息进行表示,有实效性。 ; U  j: x! V' w
这5个就是我们常用作为UV唯一标示的,他们推荐使用的优先级手机>ip>local>cookie>seesion。' o7 ]3 S* ]8 z* t4 P4 M2 L

+ |1 ]9 A- y. @2 L$ T  G& p 推荐使用手机号是因为,当我们拥有自己的账户体系的时候,使用手机号作为标示这样可以更好的和我们自身数据进行关联。但这样面临的问题将是需要用户进行登录,在一些宣传h5页面上,使用登录将显得格外繁琐,因此衍生出使用ip作为唯一标示。. T' M" f! }/ K! O( J

' O+ u9 A3 \  f: h  T! i ip我们大家都知道,会跟着你的网络变化而变化,那么按道理也是不准的,为什么反而在local前面了(local:网站在浏览器本地存的一个信息,具有唯一性,能手动清理,清理后生成的将不再是原来的)?
6 h8 ^* q" D+ [* p! d" s5 Z0 s& A+ k5 |$ f0 Y5 J2 ?4 `& }  K
因为local虽好,但因为大部分手机浏览器不支持,或者是部分支持这样数据采集又会不全,所以退而求次使用ip。" C' l1 z1 C: W5 A8 p

, e4 [5 ^. _! |3 q  I! ~, @ 四、扩展 # H2 r7 P5 X4 x
: s8 }. v% f) [6 ^+ W6 w
在大多数情况下,大部分公司都没健全的数据埋点体系,有个pv和uv就不错了。面对这样情况我们就去深挖他们的价值,通过对他们的简单应用,实现对我们大胆猜测的依据。* f! [; t4 O2 B8 p# n+ t

/ ?; v$ j8 g9 s* m2 M2 I! [: n. ^ 1. 转化率
3 ?# M7 X- @: I9 t3 `0 |! g" [6 P% c& e/ N' K- G
通过代码埋点或是全量埋点,将关键业务涉及页面进行埋点覆盖,使用下个页面pv/uv量除上个页面pv/uv量我们就可以得出页面之间的转化率。
0 m' \0 q0 k, g, ~! W2 M1 j0 x# u! t" M3 O
比如:有ab两个页面,点击a页面才会进入b页面。现有100个pv/uv被a页面进行统计,当在b页面时统计时候,出现了120个pv/uv,将这120个pv/uv与a页面的进行对比,出现有90个pv/uv相互重复(交集),最后用b页面相互重复的90个pv/uv除以a页面这100pv/uv,得出他们之间的转化率为90%(90/100=0.9)。0 j, L1 U( j6 s+ b) E, q" R9 e

0 F( E( R5 D' R3 |5 b 2. 停留时间
" b, U7 f0 ~+ ~! q- \: {2 ?
% T9 d6 m4 g1 Q* N+ M& J- q! c 如果只是pv/uv其实应用面会很少,那么我们就需要在页面的四个阶段中做其他的类似pv/uv的埋点,只不过是用户记录时间。
: O6 S, d: O3 F6 m& ~3 h+ @! L  I- h5 W3 |5 ^( [, F( _$ C
当页面创建(用户访问网站或页面)时,我们可以将出发pv/uv的时间进行存储。而当用户正常离开页面时,我们再次记录时间,后者减去前者我们就得到了停留时间。; Q. U2 m( y/ u. Z0 r" \

) i& I6 \6 U- L" e* q 但是需要我们注意的是,用户很少按照我们设计的流程执行。在app中会出现用户直接退出整个应用,这样会让数据存在差异。也有用户使用app将页面常挂手机后台,这样数据也会出现差异。
* m/ F0 H0 \7 v" Y- p$ d: d
& K* k6 ^) m* _, Q! `4 C6 e% K# P 同时在小程序(微信小程序)上使用停留时间的埋点,会因为微信小程序的特性无法关闭,后台执行出现差异。所以我们要警惕那些差异性很大的数据,将他们剔除,放置在其他数据中将是一个好方法。1 S, h7 T! U3 \5 S' @
7 }- }3 Y0 V; u. L. V
五、前端埋点:互动式
3 S* _1 M" u% U. P0 r& P! E, D# B5 e9 t
除了依据用户浏览行为进行自动式触发的埋点(不绝对)pv/uv外,我们还有一种埋点方式需要用户参与互动。5 j- |- S0 {' x  v2 b

& ^, V# m( n! F; B1 ]7 m 常见的是用户进行按钮的点击和页面的滑动。我们通过对按钮计数(pv)和去重(uv),这样我们可以了解这个功能按钮的使用情况,这样也就能够支撑我们进行一些小功能简单的ab测试。
: A) Z+ m% z* O& P- s6 _- W$ P$ x) w5 z  j3 O2 W" j
1 a& ?* t' `; ?  z) k9 ~3 q. _4 c

4 f+ ]' Q5 `- P  V) \ 又或者我们与用户的滑动行为结合起来埋点。技术可以通过监听用户滑动位置,来决定是否触发埋点,这也是我们常说的曝光埋点。* J" z) W2 R5 P4 C; U8 v9 j# G

8 u% C9 r4 @! |  W$ [* X  h 曝光埋点:这种埋点一般常用户商品、内容的推荐上。当我们设置推荐的商品或内容在首屏上时,同时用户首次进入页面,那我们可以根据自身业务选择使用pv或uv做作他们的曝光量,但是这仅限固定商品和内容。
; _, V5 c* F) P& o6 D8 \( b& ]  I9 Z/ |
这样对于多个商品进行轮播曝光时,会因为商品的轮播机制难以确认单个商品的曝光量,所以一般我们在对于多个商品进行轮播曝光时,暂时都只统计这个轮播模块的曝光量。" T; Y- w, v8 X8 d4 y$ U+ F

' _( a% o( Q- v4 V 而对于模块中的商品我们常用曝光转化率来看。计算方式有点像轮播图的计算方式,单个商品点击量(按钮pv/uv)/整体模块曝光量(pv/uv)= 单个商品的转化率。
; n" _0 R; ?; [$ L! \4 I
4 T& [1 B' N3 g0 F3 B5 l/ S 这种使用页面的pv/uv来作为计算模块和商品曝光量的方式,仅限在首屏上固定曝光的模块。如果计算曝光量的模块或商品不在首屏上,那么我们使用这样但方式是不科学、不可取的。
& n5 e/ f( n' V- S& Z, l$ ~1 m% d0 @6 i  j
我们就需要结合用户的滑动屏幕来触发曝光埋点,当用户滑动到什么位置,就可以看见这个模块时,我们才在看见模块的同时触发埋点。3 k" i/ f, G& u
& ~" W( i+ |3 E7 G1 q, h
" I$ z4 Z2 B6 }/ E# m
( m# z7 b7 E; w* X
这个时候,我们可以考虑是使用触发次数(pv)还是触发人次(uv)来进行计算。" i, K8 M8 G9 a+ I( c7 ]
# I: n2 {: f! n+ X8 a
六、前端埋点:自动触发式+互动式 3 `5 I: B. i; L5 D7 V5 A

/ Z: ~) p3 g3 `: p5 { 埋点的触发和互动,数据的次数和人次(pv/uv)基本上算前端埋点的两个核心,将他们两个结合起来,我们可以扩展很多的分析维度,比如我们常用的购买路径分析、跳出率等。# p) Q4 I+ q9 E  N

- N9 I+ Q) \" q( Q% m 这里我只是简单的讲了我们单纯埋个点,每次触发只是记录用户信息和次数。其实我们还可以记录商品信息,这样我们可以观察什么商品更受喜欢。记录金额,可以了解什么价位更符合用户预期等。& g7 J/ Y, _& {0 ~7 f

* O! U' A9 f9 V! t! a, c) g  z1 J, w1 v9 A
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』
您需要登录后才可以回帖 登录 | 注册

本版积分规则

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号 )

GMT+8, 2021-2-27 14:12 , Processed in 0.078125 second(s), 20 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19925233282

快速回复 返回顶部 返回列表