美文网首页
如何做数据分析的需求分析:以用户页面路径分析为例

如何做数据分析的需求分析:以用户页面路径分析为例

作者: 桂旭 | 来源:发表于2019-05-30 02:03 被阅读0次

本人为一枚小小的数据产品从业者,3年数据分析及数据产品经验,本文将以笔者实际工作为基础,以需求的口径问题为角度,讲解拿到数据需求后,该如何从0到1的过程。
数据从业者大多体会过,需求方提出的数据需求,有时候简单明了,但是实则遍地是坑,有数不尽的定义,口径需要我们要能够提前想到,并给出建议和解决方案。
所以本文也只是从我的小角度小案例出发,来探讨如何做数据的需求分析,抛砖引玉。
本文涉及以下关键词: 需求分析用户行为SQL

需求背景

现在我们的app有h5页面版本,h5页面的入口来源也有众多,其中最主要的便是我们公司的主要app,入口分布在主要app的各个位置,比如搜索框,播放器页面,首页推荐卡片。

需求目的

本需求方为部门的流量产品经理,其目前负责h5的渠道入口的流量管理,她需要对这些入口质量进行评估,方便做对比,后续优化做abtest。

数据需求

获取通过每个渠道入口进入h5页面的pv,并统计这些用户在后续是否在h5的下载提示点击量,最后得到点击率

数据逻辑

本文的数据逻辑是指将使用的表逻辑,目前有2张埋点表记录了用户在h5的行为,分别名为web_show,web_click,展现在文中的表已经是经过了数据清洗,去除了无用字段

web_show

http_refer buvid timestamp
http://xxx.com?from=a sdfasd 1559148871742
http://xxx.com?from=b sdfasd 1559149871742
http://xxx.com sdfasd 1559148875134
字段释义
  • http_refer,用户浏览了h5页面时,会携带from=,在来源页面进行埋点后,可在url中携带跳转来源
  • buvid,我司定义的用户唯一身份识别,不同公司情况不同
  • timestamp,触发的时间戳

web_click

buvid timestamp
sdfasd 1559148890000

字段与web_show表一致,该表数据记录了在某时刻点击了下载提示

分析思路

以下分析思路仅供参考,不一定百分百正确,方法可以有多种,所以希望读者能有所收获或者给出更好的方案

明确口径

拿到需求,确认了方案的可行性后,要对结果的口径进行探究,需求方提出的需求是否已经完整地明确了定义,根据其需求,我们可以初步判定:
由于表中没有识别用户的会话id,我们只知道用户经历了a页面—b页面,b页面—c页面,无法得知用户是否在同一会话中从主app的入口进入页面后,在页面点击了下载提示,也即a页面—b页面—c页面 or c事件。所以需要定义用户如何操作才会被算为有效的渠道来源并点击。

页面路径可能性

可以发现,用户从主app的渠道进入h5页面后,在页面路径上有非常多的可能性,例如:

  • 离开
  • 进入h5页面的另一个页面,产生了不带from的浏览记录,也就是上文web_show的第三条记录
  • 点击了下载提示
  • 点击了下载提示后,返回h5页面 或 时隔几小时后 点击了下载提示
  • 浏览了部分页面,因为有事关闭屏幕,时隔6小时继续浏览并点击下载
  • 点击下载,时隔5小时,从主app的另一个渠道进入h5页面,点击下载
  • 未点击下载,时隔5小时,从主app的另一个渠道进入h5页面,点击下载

抛出疑问

根据上述情况,需要解决以下问题:

  • 用户多次下载是否需要去重?
  • 多次下载如果去重,选择用户的哪次下载作为计算其渠道来源的基础?判断的依据是什么?
  • 选择好有效下载后,如何确定本次下载的有效入口?
  • 如果从渠道进入的时机与下载时机间隔长达5小时,是否算同一次会话?

问题解决

上述问题无标准答案,我只提出本人见解:
用户的多次下载需要去重,找到其在当日的首次下载,其有效来源入口如果有多个不同来源记录,选择时间最近的记录。
而对于时间间隔的选择,我倾向于选择在1天内都算,如果4小时,那上文提到的,时隔5小时下载,难道认定不算有效下载?

时间导致的误差解决

因为数据的计算都是t+1,所以按每日的维度来计算,会产生如下问题:如果在23点50分用户从渠道入口进入,隔日0点5分下载,在本计算方案中无法被判定为有效下载,该问题无法绕过。
所以我们可以结合实际业务数据来将数据的准确性提高到最大,本人给出的方案是:
用户在24小时内,在每个时间点上有使用分布,根据数据表现得出用户在每日的24点左右活跃数非常高,但在每日的5点活跃数最小,所以我们可以将数据的计算周期不再固定为每天,而是在每天凌晨4点后的任意时间点开始自动化跑报表,时间范围为:昨日凌晨4点到当日凌晨4点,这样可以将误差的数量降到最低

SQL

由于笔者所面临的表,往往是复杂,量级大,使用的查询引擎也是hive,试错成本高,所以通常选择建立中间表,筛选后所需数据后再进行数据的统一及汇总。
具体sql的思路为

  1. 筛选掉show表的所有不带from的记录,并建中间表
  2. 清洗click表,找出每个buvid的min(timestamp)
  3. 将click表作为左表,join show中间表,on click.buvid=show.buvid and click.timestamp>show.timestamp
  4. 用窗口函数给show的timestamp降序排序,找出排名等于1的,该记录即为其有效渠道入口
  5. 使用聚合函数求出每日不同渠道的有效下载数
  6. 最后调度,形成自动化报表

总结

数据分析往往面临的业务需求,看似简单,问题颇多,口径问题首先确定,在初期的数据探索过程中,不停抛出疑问,作出假设,并用数据验证,成为自己完成业务数据需求的依据。也要与需求方多沟通,在不断的磨合中,碰撞出新的思路与解题方案。

相关文章

网友评论

      本文标题:如何做数据分析的需求分析:以用户页面路径分析为例

      本文链接:https://www.haomeiwen.com/subject/cqeptctx.html