数据建模:会话切割
01 什么是用户会话
用户会话(技术领域叫session)就是用户在某个时间,对App或者网站进行了一次访问。既然用户访问了我们的产品,那我们就想知道在一次访问中,用户都干了啥,停留了多长时间。基于这些数据需求,于是产生了会话相关的数据需求。
02 会话相关的数据指标
与会话相关的数据指标,有很多,以下例举一些:
- 访问次数:即所有用户的会话总数(也即session数)
- 平均交互深度:所有 session 内事件数之和/访问次数
- 使用时长:访客一次访问会话中所持续的时间
- 平均使用时长:所有访客的总访问时长 / 访问次数
- 页面平均停留时长:等于该页面停留时长的总和 /该页面的pv
- 跳出率:一个会话中,只产生了一个事件,则为跳出。跳出率,分为页面的跳出率和全站的跳出率。页面的跳出率为该页面的跳出数/该页面的pv;全站跳出率则为总的跳出数/全站总的访问次数
- 页面退出率:当用户从某个页面结束了会话,则称从该页面退出。页面退出率等于该页面退出数/该页面的pv
03 会话切割
传统的会话切割:传统的会话切割方法,是规定一个时间间隔,如果用户在这个时间间隔内,没有做任何操作,那间隔时间外的下一次的操作则将被当做新的一次会话。比如用户点击了搜索按钮后,在30分钟内,没有在进行任何操作,那么30分钟后,如果用户再次操作,则这一次的操作会被当做新会话。
传统会话切割的不足:传统的会话切割,按照时间要求(一般Web网站的会话(session)过期时间为30分钟,App的会话(session)过期时间为1分钟)切割会话,相同的会话生成同一个session_id,然后通过埋点上报到数据平台。这种做法的问题就是事先定死了切割时间,不够灵活,无法满足不同业务需求场景。
新的会话切割:新的会话切割方法,将切割这个动作,放到数据清洗阶段,根据需求,自定义切割时间以及会话的开始、结束事件,然后相同的会话生成一个相同的session_id。
新的会话切割规则举例(假如规定切割时间为1分钟):
(1)将用户的行为序列,按照发生时间远到近进行排序
(2)以历史第一个事件作为起点,向后进行匹配
1)如果事件两两间隔时间在1分钟内,匹配到启动App这个事件,那么会话自动切断,以App这个事件重新作为起点,进行第二个session匹配
2)如果事件两两间隔时间在1分钟内,匹配到退出App这个事件,那么会话自动切断,将退出App事件纳入本次会话,以下一个事件进行第二个session匹配
3)如果事件两两间隔时间在1分钟内,即没有匹配到app启动事件、也没有匹配到退出App事件,那么如果两两事件间隔时间大于1分钟,则自动切断,重新开始会话
本文作者 @如琴留音
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!