对于计划从事互联网数据分析岗位的同学,尤其是应届生,会学习Excel、Sql、Python,甚至Java、hadoop都有的去学习,但是用户行为分析是很多人都会遗漏的,而且可能都没听说过,往往在面试的时候被问到相关问题回一脸懵圈。这篇文章就是给应届生或者计划从事互联网数据分析的同学在用户行为分析上入个门,知道如何去准备。
一.1个需求
先从一个需求说起,以京东会员为例,假设下面的需求(数据是虚拟的)
现在每天购买京东Plus会员的用户为1千人,但是每天访问Plus频道的用户高达10万人,转化率只有1%,
业务方(负责运营plus会员的同事)想分析一下,每天99%的用户都是在哪里流失的,找到其中的可能的原因,
可以针对性的做一下产品调整或者营销方案,提高京东会员购买转化率。
二.用户行为日志
1.概念
用户行为,就是用户在网站或者APP上所做的动作,比如:搜索内容,浏览页面,观看视频,购买商品,收藏,评论等等。
2.三大特点
数据量大:占比当前大数据存储至少80%以上,浏览一个页面至少产生几KB字节数据
半结构化:每个页面/按钮的行为数据是结构化,但是扩展参数比较个性,各不相同
不可改变:行为一旦发生即已过去,不可变更(相对一笔订单而言,从下单一直最后的退货,状态一直在变动的过程中)。
3.用户行为数据如何收集
收集用户行为数据的专业术语叫“埋点”,这个词在工作过程中频繁用到,需要记住。
埋点是在网站/APP中针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程,技术实质,是监听软件应用运行过程中的事件,当需要关注的事件发生时进行判断和捕获。
收集用户行为数据一般是由数据分析师、数据产品经理提出埋点需求或者规划,由前端开发工程师/app开发工程师进行实现。下图就是蘑菇街网站的一个埋点数据。
4. 用户行为重点名词解释
Cookie
在客户端记录用户身份的信息,实际上是一小段文本,有效期一般是一年。在数据分析中主要有2个作用,一个是在cookie中添加一些统计参数已满足特殊业务场景需求,另外一个就是识别用户身份(在用户没有登录的情况下,都是通过Cookie中的唯一标识来区分用户,统计访客量)。
重要程度:五星
Cookie查看方式一般有2种:
1)谷歌浏览器=》鼠标右键=》检查=》Network=》刷新当前页面
2)通过Charles、Fiddler等专业抓包软件
Session
在服务端记录并确认用户身份,有效期一般较短,保存在服务器上,在数据分析中一般用来跟踪用户来源,或者跟踪订单成交来源,还可以统计访问次数(这个主要是在PC上统计),app端一般不根据这个统计,目前统计访问次数更多的是根据2次打开之间的时间间隔。
Url
统一资源定位符,一个给定的独特资源在Web上的地址;五部分组成(协议/域名/路径/端口/参数);App中没用url概念,一般用路由或者模块名替代,而且IOS和Android不同。
重要程度:五星
在数据分析中主要是用来页面分析和漏斗分析。来看一个案例:
案例:https://list.mogu.com/book/trousers/50020?acm=3.mce.1_10_1pq5m.128038.0.enS7ZscGeR3IT.pos_872-m_600121-sd_119&ptp=31.v5mL0b.0.0.9HgY4AVC
协议:https
域名:list.mogu.com
路径:/book/trousers/50020
端口:80(默认是80,不显示)
参数1:acm=3.mce.1_10_1pq5m.128038.0.enS7ZscGeR3IT.pos_872-m_600121-sd_119
参数2:ptp=31.v5mL0b.0.0.9HgY4AVC
Refer
本质就是一个Url,是当前页面的引荐页面(上一步页面),比如我从京东首页点击进去了京东会员页面,京东会员页面的的refer就是首页。在数据分析中主要是用来做路径分析、漏斗分析,像下图的漏斗分析主要就是靠Url、Refer组合分析出来的。
重要程度:五星
抓包
将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作(数据分析是查看),常用抓包工具:Charles、Fiddler、谷歌浏览器右键检查,在数据分析中主要是查看某个页面的需要埋点参数是否有,或者验证开发工程师的埋点准确性,这点很重要,一般情况下开发都说已经完成埋点工作,但是没有专门的测试同学对埋点进行测试,准确性有一定的误差。
重要程度:五星
常用抓包工具:Charles、Fiddler、谷歌浏览器右键检查。
三.如何解决京东这个需求
一般流程如下图,要注意一点就是在数据统计分析出来之后反馈给需求方,这个一般情况下来回多次沟通反馈才能达到预期的结果,一轮一般搞不定。
- 跟需求方明确需求,不要只是根据业务方的简单文字需求就开工,一定要当面确认,很多情况下写的比较简单,业务方也没想清楚
- 体验业务流程,这个非常重要,你要从用户的角度来体验,才有可能根据数据现象发现一些潜在问题
- 页面信息收集,下面这些主要信息都要收集到
1、详情页Url:
https://plus.jd.com/index?flow_system=appicon&flow_entrance=appicon11&flow_channel=pc
页面路径: https://plus.jd.com/index
2、订单页Url:
https://plus.jd.com/order/page
3、详情页主要连接出口
京东首页: https://www.jd.com/
我的京东: https://home.jd.com/
权益介绍页: https://plus.jd.com/right/index#item-coupon
4、这里PC端相对好收集,APP端比较难,需要抓包(内部人员可以方便的获取)
- 查找数据源及数据字典
1、数据表名及数据字典(每个字段含义)
2、各层级粒度汇总表(可以大幅提升分析效率)
3、数据量级及分区键
4、Url后面参数含义(细分业务可能需要用到)
5、内部一般都会有元数据平台的,直接跟老员工要相关信息,效率更高
- 数据统计及分析,下面是几段可能的sql统计,这种需求一般sql就能解决,不要python、java等代码
#假设流量表名是dwd_pc_log
#到达详情页Top10来源
Select refer,count(*) pv
From dwd_pc_log
Where url=‘https://plus.jd.com/index’
Group by refer
Order by pv desc
Limit 10
#从详情页出去的Top10页面
Select url,count(*) pv
From dwd_pc_log
Where refer =‘https://plus.jd.com/index’
Group by refer
Order by pv desc
Limit 10
#到付款页面人数最高的前10页面
select refer,count(*) uv
from (Select uid,refer from dwd_pc_log Where url=‘https://plus.jd.com/index’ Group by refer,uid) a
join( Select uid from dwd_pc_log Where url='https://plus.jd.com/order/page' Group by uid) b on a.uid=b.uid
group by refer
order by uv desc
limit 10
- 给需求方反馈结果,以下几个注意点
1、在给业务方反馈时不能只给数据,要有建议和观点
2、数据可读性要强,如果你告诉他某个url页面跳出率最高,是没用的,要说到页面名称
3、数据分析逻辑性要强,建议和观点有理有据
4、分析脚本、数据、结论都要存档,后续复用概率非常高
四. 结束语
这篇文章主要目的是希望应届生或者想入互联网行业的分析师对用户行为分析有一个概念,然后根据这些概念再进行深入自学,这篇文章确实比较难写,看起来也有一定难度,个人觉得写的也一般,主要还是因为当中涉及到了一些web技术和专业名词。希望对大家能够有所帮助,估计也会有很多疑问,希望各位看客可以留言讨论。