You need to enable JavaScript to run this app.
导航

session

最近更新时间2023.07.19 19:05:41

首次发布时间2021.12.13 15:10:53

在日常分析中是不是经常会碰到以下问题:

  • App的最高并发人数是多少?
  • 直播时,最高观看人数是多少?
  • 不同页面,用户的浏览时长分别是多少?
  • 用户每次来访,会访问几个页面?访问多久?
  • 不同活动页面,哪个页面效果比较好,跳出率比较低?
  • 用户最后是从哪个页面离开的?
  • 用户使用某个功能模块的时长为多久?

……

以上问题均可以通过session解决,让我们一起来了解下session的概念吧。

1. 概述

1.1 session是什么

session即会话,用户自开始访问到结束访问会进行一系列的行为交互,如点击按钮交互、浏览页面交互等,这一系列的行为交互便构成了一个会话。一个人可以产生多次会话,会话的结束依据切割时间而定。

image.png

1.2 session切割时间

session切割时间是两事件被触发时可以接受的最长的时间间隔。如果两个行为的时间间隔超过了切割时间,则将此会话进行切割。也可以理解为,当用户进行了一个行为后,超过切割时间后没有进行后续行为,则认为此次访问会话已经结束。之后再开始其他行为,即视为另一次新的会话开始。在事件表的基础上,生成的session_id将同一用户的单点行为事件关联起来,最后形成由事件序列构成的会话。
alt

例如图中,用户A在上午10点52分开始打开App,首先进行了搜索,2min后,开始浏览活动页面,6min后,再次进行搜索查询,这时已经是上午11点了,下班时间到,和同事一起出去吃午饭1h,回到之前的搜索结果页面,开始浏览商品详情页,发现并不是自己想要的,于是换了几个关键词,重复搜索,最终发现有自己想要的商品,再次浏览商品详情页,并感觉很喜欢,对商品进行收藏,访问结束。

假设我们设置切割时间为30min,A用户发生了两次session会话,A用户在进行第二次搜索后,30min没有后续行为,因此第一次session会话,在上午11点半结束。等用户12点再开始访问时,已经是开始了第二次session会话。

注意

session 切割时间,并非 session 会话的最大(长)时间范围,一定要注意区分开。

1.3 为什么需要Session分析?

当用户想了解“访问次数”、“平均交互深度”、“使用时长”、“停留时长”、“跳出率”、“退出率”等指标时,都需引入 Session 才能分析,火山引擎增长分析中的自定义Session分析快捷的支持了与Session有关的分析。

2. session计算原理

2.1 计算原理举例

如图中所示,共有小火、小山、小跳三个用户,后面分别对应每个用户按照时间顺序发生的事件,A/B/C/D/E可以代表不同的事件,也可以代表不同的页面,中间的时长为2个事件之间的间隔时长。
alt

假设session切割时长为30min,小火发生了2次会话,小山发生了2次会话,小跳发生了一次会话。

分别为:

用户session
小火session1:【A-B-A-C】session2:【D-B】
小山session3:【E-C-A】session4:【A】
小跳session5:【C】

图中部分可计算指标及原理示例如下:

计算指标计算原理图中计算指标原理图中计算指标结果
session总次数根据切割规则发生的session会话总和。小火发生了2次会话,小山发生了2次会话,小跳发生了一次会话。5
session总人数根据切割规则发生的session会话人数去重总和。小火、小山、小跳三个用户3
人均session次数session 总次数除以总人数5/35/3
同时使用人数在某一个时间段,session会话同时发生的会话人数去重之和。假设这三个会话为同一时间段发生3
跳出率session中事件发生总次数为1的 session 个数除以总 session 数 。session 中事件发生次数为 1 的 session 有小山的session4、小跳的session5,因此分子为2,分母为5,2/5=40%40%
A事件退出率以该事件结束的session数除以A事件的总数以A事件结束为会话的有session3、session4;A事件4次,因此A事件退出率=2/4=50%50%
A事件平均访问时长该事件发生时长的总和除以该事件发生session会话的总次数。A事件的发生时长为A与下个事件之间的时长,如果A为该session会话的最后一个事件,则该会话时长为0。例如session1中A事件的时长为A与B的发生时间之差10min。加上A与C的发生时间之差1min,合计为11min。session2、session5中没有A事件,为0。session3、session4均为会话中最后一个事件,时长计为0。因此分子为A事件的时长为11min,分母为包含A事件发生的会话3次。11/3
访问深度的均值会话内,访问事件数量的总和(不去重)/访问session会话的总次数session1的深度为4,session2的深度为2,session3的深度为3,session4的深度为1,session5的深度为1,访问深度的均值分子为:4+2+3+1+1=11,分母为:session会话的总次数5。2.2

2.2 计算指标详细说明

A(选择计算主体)B(选择计算方式)C(选择属性)指标说明应用场景
Session 整体总人数Session 的总触发人数可查看session整体访问基础指标。
Session 整体总次数Session 的总触发次数
Session 整体人均次数Session 的人均触发次数

Session 整体

同时使用人数

某段时间内 Session 的总触发人数

  • App的最高并发人数。

  • 直播时,最高观看人数。

Session 整体

跳出率

只有包含一个事件的 Session 次数占全部 Session 次数的比例

  • 评估活动落地页的流程承接效果,跳出率高,说明大部分用户只访问了一个页面,就离开了,承接效果需要优化。

  • 评估渠道的匹配度,渠道跳出率高,说明渠道用户和产品用户不匹配或者落地页无法承接对应渠道流量。

Session 整体

  • 数值

    • 按…求和

    • 按…求人均值

    • 按…求平均数

    • 按…求去重数

    • 按…求最大值

    • 按…求最小值

  • 字符串

    • 按…求去重数

Session 深度Session 时长{Session 所含事件共有的事件属性(并集)}

  • Session 时长可以查看,某个功能使用时长。

  • Session 深度可以查看用户每次访问一个功能,需要查看多少页面。

任意事件退出率session 数除以 session 中所有事件发生次数。
{Session 中包含的事件}同时使用人数某段时间内发生了 Session 中选定事件的总触发人数。

{Session 中包含的事件}

数值

  • 按…求和

  • 按…求人均值

  • 按…求平均数

  • 按…求去重数

  • 按…求最大值

  • 按…求最小值

事件使用时长{选中事件所含的事件属性}

选中事件与其下一个事件时间间隔之和。

Session中某个事件 时长可以查看,页面浏览时长。

{Session 中包含的事件}退出率选中事件是 Session 的最后一个事件的总数占该事件总数的比例。查看用户最后从哪个页面离开的概率。
3. 功能介绍

3.1 新建session

创建新建/编辑 Session 界面由基本信息、包含的事件和切割方式组成:

alt

3.1.1 基本信息

基本信息中Session名称为必须输入,展示名为可选择输入,Session 名称不允许重复,点击保存时如果发现重复了则在下图位置提示错误(“Session 名不允许重复”),不允许保存。

image.png

3.1.2 包含的事件

不可为空,否则无法点击确定;

最多支持添加100个事件到 Session 当中,如果“添加”按钮显示可能是事件数量达到100个;

不允许选择任意事件和任意主动事件。

3.1.3 切割方式

支持通过时间或事件以及时间和事件同时切割的方式来分隔会话。

  • 时间切割

    必选条件。
    时间切割的规则为所包含的事件中的任意两个事件发生的间隔超过所设置的时间,则这两个事件会被分到前后两个会话当中;
    粒度:

    • 秒:最大3600

    • 分:最大1440

    • 小时:最大24

    • 默认:粒度为分,数值为空白

  • 事件切割

    可选条件。

    • 如果同时选择了事件切割,则当遇到开始事件时会强制开始一个新会话,遇到结束事件时会强制结束当前会话;

    • 起始事件和结束事件都必须为“包含的事件”中选中的事件;

    • 起始和结束事件不能相同;

    • 如果开启了事件切割,但没有选择起始和结束事件,保存时不保存事件切割条件。如果只选择了一个则可以保存;

    • 只能配置最多一个起始事件,也只能配置最多一个终止事件。

  • 跨时段切割

    可选开启。
    开启时在分析时,跨5分钟、小时、天、周等,Session 都会被切割为两个。

3.2 session分析

  1. 第一步:新建了Session后,需要进入「事件分析」进行正式的Session分析,将会看到切换事件以及具体创建的Session的名称的下拉菜单。

    image.png

  2. 第二步:选择需要分析的指标,如Session 整体的总次数。

    image.png

  3. 第三步:查看Session分析图表,可选择折线图、柱状图、堆叠图进行展示。

    image.png

  4. 第四步:查看详细数据。

    image.png

4. 应用场景举例

4.1 页面浏览时长

  1. 对App页面访问做代码埋点,例如App页面浏览事件,预期把该事件作为session切割事件

  2. 选择数据管理 > 自定义Session,单击创建Session按钮。

    image.png

  3. 选择App页面浏览事件,切割时长App端(在无视频播放,直播等长交互的情况下,建议为1-2min)

    image.png

  4. 在事件分析中,选择session名,图中示例app_page_view。选择App页面浏览事件的时长的总和、人均值、平均值。

    image.png

4.2 功能使用时长

  1. 选择数据管理 > 自定义Session,单击创建Session按钮,创建session。

    image.png

  2. 选择功能相关的事件,根据场景需要选择是否选择开始和结束事件。

    image.png

  3. 在高级分析-事件分析中选择刚才创建的session,并按session整体查看时长的总和、人均值、平均值等。

    image.png

  4. 优缺点:

    image.png

5. FAQ
  1. session切割时间规则常规如何设置?

    答:通常web端建议30min,App和小程序建议1-2min,如果有特殊场景,例如视频播放,在线教育课程,可进行延迟调整。

  2. session什么时候选择事件切割?

    答:例如短视频类App,需要计算同时观看直播并发人数;工具类App,需要计算同时进行视频会议并发人数。此时并不需要计算整体App在线人数,只是需要计算某类功能的并发人数,在创建session时,需要排除其他事件,只计算和分析场景相关的事件。

  3. 最终算出来的结果和经验值预期感觉差距比较大,不太准怎么办?

    答:session的计算本身就是近似值,最终结果与切割时间的规则,选择事件密切相关,可试着变换不同切割规则尝试。

  4. session总体的使用时长,某个事件的时长有什么区别?

    答:session整体的时长指的是创建session时加的所有事件的时长,选择单个事件就是只看这一个事件的时长。