数据建模:会话切割

2 评论 6056 浏览 21 收藏 5 分钟

会话切割,关乎会话类数据指标的准确性:比如用户使用时长,启动次数等。文章从会话的基础概念出发,对会话相关的数据指标和会话切割展开了分析总结,与大家分享。

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分钟,则自动切断,重新开始会话

 

本文由 @如琴留音 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 启动App为什么会切割会话,如果是在1min这个阈值内应该还是算在一个session内吧

    来自上海 回复
  2. 这个写得很有意思

    来自广东 回复