Google Analytics中的基本度量四 “页面停留时间和网站停留时间”

“页面停留时间和网站停留时间”是Google Analytics中的一对时间度量。用来分别记录用户在网站或网页上的停留时间。这样我们就可以根据用户停留的时间长短来衡量网站或页面的表现。但这两个度量真的准确吗?

度量的定义:

页面停留时间:显示访问者在某个特定网页或某组网页上所花费的时间。

网站停留时间:访问者在网站上花费的时间。

度量的计算方法:

页面停留时间:Google Analytics是通过被访问网页的时间戳来计算页面停留时间的。简单的说就是通过用户访问后一网页的初始时间减去用户访问前一网页的初始时间。

例如,用户访问网页A,然后访问了网页B,然后离开了网站。用网页B的时间戳减去网页A的时间戳就可以计算出网页A的停留时间

用户访问网页A的时间:9:30:05

用户访问网页B的时间:9:30:15

用户在页面A的停留时间是10秒

Google Analytics通过cookie _utma来获得用户访问页面的时间戳,还记得前一篇“绝对唯一访问者”里介绍过_utma中的6组数字吗?

cookie utma

其中的3,4,5三组数字就是时间戳。这些数字是以秒为单位的。第3组数字表示初次访问的时间,第4组数字表示上一次访问的开始时间,第5组数字表示当前访问的开始时间。Google Analytics在这里获得访问页面的时间戳并用来计算出页面停留时间。

网站停留时间:就是用户访问网站的时间。Google Analytics通过_utmb和_utmc两个cookie来计算网站停留时间。_utmb的生存期是30分钟,_utmc是临时cookie,随着浏览器关闭而消失。当这两个cookie中的任意一个消失后,Google Analytics就判断是一次访问(session)结束。并用后面的时间减去访问开始的时间来计算网站停留时间。

网站停留时间:就是用户访问网站的时间。Google Analytics通过访客离开网站前的最后一个时间戳来计算访客的网站停留时间。这个时间戳是访客开始访问最后一个页面的开始时间。与页面停留时间的计算方法相似,因为Google Analytics无法获得访客离开网站后的时间戳,因此也就无法获得最后页面的访问时间。(之前的描述中使用cookies计算离开时间有一些问题。因为Google Analytics可能无法获得cookies的失效时间)

这里有一个问题,一次访问中所有的页面停留时间之和就是网站停留时间吗?并不是这样的,Google Analytics在计算页面停留时间的时候会漏掉一部分页面的数据,而在计算网站停留时间时又会多计算一些时间在里面。下面我们看下可能对这两个度量产生影响的因素。

可能产生影响的因素:

计算方法:

页面停留时间

页面停留时间是依靠后面页面的时间戳减去前面页面的时间戳获得的。但必须是在两个页面的追踪代码都被执行后才能完成计算的。

假设一种情况:

用户访问网页A的时间:9:30:05

用户访问网页B的时间:9:30:15

用户在9:30:30关闭B页面。

那么:

用户在页面A的停留时间是10秒

用户在页面B的停留时间将是0秒(而不是15秒

这次访问的网站停留时间是10秒

PS:这次访问的网站停留时间是20秒 是25秒(A页面开始时间-关闭B页面时间)

因为用户访问完页面B后没有继续访问,而是离开了。这就没有后续的时间戳用来计算B页面的停留时间了。而这种情况在Google Analytics中是广泛存在的。因为用户的每次访问都会有最后一个页面的(退出页)。而最后一个页面的停留时间是计算不出来的。这就导致了页面停留时间度量的不准确。

网站停留时间:

Google Analytics是通过一次访问的开始和结束时间来判断用户在网站的停留时间的,再具体一点说,是通过_utmb和_utmc两个cookie来判断访问结束时间的。但按照这两个cookie不一样的工作方式也会对网站停留时间造成影响。_utmc会在用户关闭浏览器时一起消失,这个是没有问题的。而_utmb的生存期是30分钟。就是说即使用户停止了访问,但只要没有关闭浏览器就要需要等待30分钟才能记录为访问结束。而在这30分钟里用户可能已经离开了。

Google Analytics是通过一次访问的开始和结束时间来判断用户在网站的停留时间的,再具体一点说,Google Analytics通过访客离开网站前的最后一个时间戳来计算访客的网站停留时间。这个时间戳是访客开始访问最后一个页面的开始时间。与页面停留时间的计 算方法相似,因为Google Analytics无法获得访客离开网站后的时间戳,因此也就无法获得最后页面的访问时间。(之前的描述中使用cookies计算离开时间有一些问题。因 为Google Analytics可能无法获得cookies的失效时间)

跳出(Bounce)访问:

跳出访问是指用户只浏览了一个页面就离开了。这种访问同样应为没有后续页面的时间戳所以无法计算出页面停留时间。Google Analytics在计算平均页面停留时间时不会包含跳出访问。而在计算平均网站停留时间时却会包含跳出访问。

感谢Kevin的更正

——【所有文章及图片版权归 蓝鲸(王彦平)所有。欢迎转载,但请注明转自“蓝鲸网站分析博客”。】——

Comments

  1. Cialis says:

    Excellent article, I will take note. Many thanks for the story!

  2. 蓝鲸 says:

    @Cialis: Thanks!

  3. yhang says:

    “PS:这次访问的网站停留时间是20秒”中的20秒是怎么算出来的呢?因为系统只知道9:30:05访问开始,9:30:15是最后一个访问。

  4. 蓝鲸 says:

    @yhang:感谢留言。 后面还有一个“用户在9:30:30关闭B页面。” GA通过用户关闭页面的时间(_utmc)与访问第一个页面的时间来计算网站停留时间。
    PS:文章中有个小错误。网站停留时间应该是25秒。

  5. Kevin says:

    time on site 明显和http://www.kaushik.net/avinash/2008/01/standard-metrics-revisited-time-on-page-and-time-on-site.html
    他的说法不同啊??

  6. 蓝鲸 says:

    @Kevin 感谢关注,网站停留时间的问题已更正。谢谢。

  7. Kevin says:

    太客气了。。
    从你BLOG 学到很多了

  8. jieyancai says:

    楼主对google停留时间研究的比较透彻,呵呵
    有兴趣研究JYC统计吗?
    http://www.adjyc.com
    真正统计在线访客,真正记录访客在各个页面的停留时间。

  9. jieyancai says:

    准确的定义:特定访客的页面停留时间应该是特定访客打开页面到关闭页面之间的时间。
    特定访客网站停留时间很显然是特定访客所有页面停留时间之和。
    google的停留时间算法是很不科学的。

  10. Rabbbit·雪 says:

    今天回过头来又看了一下这篇文章,发现有好几处蓝鲸已经做了修改。真是用功,我的榜样呢,呵呵!

  11. 八月 says:

    “页面停留时间:显示访问者在某个特定网页或某组网页上所花费的时间。”—————–该如何添加代码 从而让系统自动计算某组页面的平均停留时间呢?

    • 蓝鲸 says:

      @八月, 默认的追踪代码就可以记录,选择你要查看的网页,报告中会自动显示这些页面的平均停留时间,或者也可以将这些页面通过过滤器设置成一个内容组。

  12. 木木 says:

    貌似GA的这个功能确实存在缺陷哈,js中有可以在页面load的时候加一个时间戳1,在unload中加一个时间戳2,然后用时间戳2-时间戳1 就可以大致知道当前页面的停留时间。而不用在乎是否是最后一个跳出页面

  13. 大脑城 says:

    这样看来,ga在时间监测上确实很不准确啊!
    难道没有更好的解决方法吗?

  14. yunfei says:

    “这里有一个问题,一次访问中所有的页面停留时间之和就是网站停留时间吗?并不是这样的,Google Analytics在计算页面停留时间的时候会漏掉一部分页面的数据,而在计算网站停留时间时又会多计算一些时间在里面。”---最后一句中“多计算一些时间在里”是指?用的什么方法?(我在统计时,每一次访问退出页的停留时间用之前页面的平均停留时间来代替,这样一次访问中所有的页面停留时间之和就是网站停留时间)

  15. nancy says:

    看博主的文收获良多。不过文中所述是假设用户先看A页面,再跳到B页面的这种单线浏览情况。以下两种情况,根据博主的叙述推导得来,请帮忙看下是否正确:

    1.同时打开多个页面的情况
    9:00:00 – 用户进入网站,打开index.html
    9:00:10 – 用户同时在新窗口打开A.html,B.html,没有关闭index.html
    9:00:20 – 用户关闭A.html
    9:10:00 – 用户关闭B.html, index.html并离开网站
    那么index.html的停留时间是10秒钟
    A.html和B.html的停留时间是0秒钟
    这种情况,如果用户同时打开CDEFGH并且看了很久之后没有开新页面,相当于损失了很多数据吧。

    2.框架嵌套网页的情况
    9:00用户打开/,它是个框架网页,于是同时加载了/header.html,index.html和bottom.html
    9:10用户在同窗口点击进入a.html,同时加载了/header.和bottom.html
    9:20用户在同窗口点击进入b.html,同时加载了/header.和bottom.html
    9:30用户关掉所有网页
    那么index停留时间为10秒,a为10秒,b为0秒
    header的停留时间为10+10+0=20秒,平均停留时间=6.7秒?

    我手上的网站是以上两个问题的综合体。现在的情况是,A和B以及CDEFG的平均停留是1-4秒钟,大量的0秒钟,而header的时间比理论只长得多,约等于一个用户在整站停留的时间。这整个站的平均停留时间才十几秒,大大低于我做过的其他类似网站(同样都有大量UGC内容);他的特别之处只有不停调用header和bottom…请问这一点究竟怎样影响了这个网站的平均停留时间?

    非常感谢!

  16. leo says:

    如果浏览器时间不准确呢,这种情况怎么处理呢?

  17. Jun says:

    如果是单页面的停留时间呢,GA是怎么定义的?

Trackbacks

  1. […] 当用户离开页面时_trackPageview就会向GA服务器发送一条页面停留时间的数据。 […]

  2. […] 当用户离开页面时_trackPageview就会向GA服务器发送一条页面停留时间的数据。 […]

  3. 精英分析说道:

    […] 在GA的报告中目前只提供两个时间维度:平均页面停留时间和平均网站停留时间。使用JS事件与_trackPageview函数相配合,我们可以看到网页在时间维度上的表现,并获得更多详细的用户与网站互动的时间数据(被计算在Bounce rate内的非点击行为数据)。 […]

  4. […] Google Analytics中的基本度量四 “页面停留时间和网站停留时间” […]

  5. […] 在Google Analytics的报告中,除了关键词访问次数为0的情况外,还有一种页面停留时间为0的情况。如我上面报告截图中显示的内容,页面有浏览量但停留时间为0。按照我们通常的理解,这种情况是不可能存在的。因为只有访问者看了页面,就一定会有时间,哪怕是1秒钟。不可能存在没有时间的页面浏览。但实际报告中,这种情况是存在的。原因是Google Analytics计算页面停留时间的方法。 […]

  6. […] 在Google Analytics的搜索引擎报告中,一共展现了5个指标。分别是访问数,每次访问页数,平均网站停留时间,新访问次数百分比和跳出率。第一个指标访问数是对量的衡量,后面的四个指标则都是对质的衡量。数据在报告中的展现非常有逻辑。首先我们要关注的是带来流量最多的搜索引擎,其次我们要衡量这些流量的质量。由于访问者每次访问网站的目的都不尽相同,所以按照访问数而不是访问者数对质量进行衡量更加客观。同时,将所有对质的衡量指标与访问数绝对值放在一起也能让我们很容易抓住重点。例如上图中来自sogou的流量质量很差,跳出率100%,但他的访问数绝对值也很低,只有一次。所以这种情况我们不必为高跳出率而大惊小怪,完全可以忽略掉。 […]

  7. […] _utma的生存周期为2年。其中第二组的随机唯一ID和第三组的时间戳联合组成了访问者ID,Google Analytics通过这个ID来辨别网站的唯一访问者。而后面的几个时间戳用户计算网站停留时间和访问次数。 […]

  8. […] 创建目标功能在配置文件设置页中,Google Analytics共提供了三种类型的目标,分别是目标页面,网站停留时间和每次访问页数。这三种目标可以单独设置,并产生报告数据。但每个配置文件中最多可以创建4组共20个目标。 […]

  9. […] 创建目标功能在配置文件设置页中,Google Analytics共提供了三种类型的目标,分别是目标页面,网站停留时间和每次访问页数。这三种目标可以单独设置,并产生报告数据。但每个配置文件中最多可以创建4组共20个目标。 […]

  10. […] _utma的生存周期为2年。其中第二组的随机唯一ID和第三组的时间戳联合组成了访问者ID,Google Analytics通过这个ID来辨别网站的唯一访问者。而后面的几个时间戳用户计算网站停留时间和访问次数。 […]

  11. 02.用户停留时间…

    虽然只是一个“停留时间”问题,但是当观察对象不同时会导致不同的含义: 页面(组、关键业务)停留时间:…