English 中文(简体)
在Google Analytics中使用onbeforenload事件来记录页面退出,从而更准确地记录用户在页面/网站上的时间
原标题:Using onbeforeunload event with Google Analytics to record page exits and therefore more accurately record user time on page / site

我一直在努力研究Avinash Kaushik在其著作《网络分析2.0》中提出的黑客攻击。他提出了一个问题,即大多数网络分析工具无法记录用户在网站上访问的最后一个页面或唯一一个页面上花费的时间。换句话说,如果用户来到页面1,就会创建一个时间戳,显示他们到达页面的时间,当他们访问页面2时,就会创建第二个时间戳。在第1页上花费的时间可以通过时间戳2-时间戳1来计算。然而,如果用户关闭浏览器窗口或导航离开网站,则无法在第2页上记录时间。这是Kaushik.net上这个问题的链接

标准度量重新访问页面上的时间和站点上的时间

一个提议的破解方法是使用window.onbeforeunload事件来调用一个方法,并将页面卸载的时间推送到谷歌分析。所以我尝试了以下代码-

window.onbeforeunload = capturePageExit;
function capturePageExit()
  {
    _gaq.push([ _trackPageview ,  /page-exit?page=  + document.location.pathname + document.location.search +  &from=  + document.referrer]);
    return("You are about to close this page");
  }

使用firebug,我可以看到请求了正确的__utm.gif图像,并将正确的参数发送到谷歌分析。但现在显然存在一个问题,即这将在每个页面卸载时调用,因此每个访问者看起来都是从页面1->;页面退出->;第2页->;页面退出->;第3页->;页面退出。。。但我应该得到一个更准确的时间在现场阅读,对吧?

然而,这是以牺牲准确的导航摘要数据为代价的,因此不是一个好的解决方案。如果我能告诉你,如果用户点击了关闭浏览器/选项卡按钮,或者正在离开我的网站,那么记录页面退出。

我找不到关于如何解决这个问题的大量信息,也找不到大量关于在解释谷歌分析(可能还有大多数网络分析工具)时意识到这种不准确的讨论,另一个有用的链接是time_on_page_and_time_on_site_how_confident_are_you

我只是想在stackoverflow上提出这个问题,因为我找不到类似的问题并就此展开讨论,但我的解释是,这个问题真的没有办法解决,但最好意识到它。

有什么想法吗?

------------------------------------------------------更新-----------------------------------------------------

这是一个名为Savio.no的博客向我建议的另一个链接,这是一种好方法吗?

如何使用谷歌分析测量真实时间

最佳回答

网络分析不是一门精确的科学。数据总是近似的,大部分时间都是采样的。

网络分析工具力求精确而非准确本白皮书描述了为什么在使用Web Analytics时,精度更重要,而准确性不那么重要。

一旦你了解了精度和准确性之间的区别以及为什么它很重要,你就会明白,获得准确的现场时间指标并不重要,重要的是一个可以清楚地表达该指标的趋势或变化的精确指标。

换句话说,忘记绝对数字,学会使用趋势和变化进行报告。

另一个建议是,如果你永远不会使用GA,就不要麻烦调整GA来完美地呈现每一个指标。我所说的使用是指可操作的分析。

然而,在少数情况下,一些代码调整可以帮助您在现场测量时间。一个明显的例子是一个网络日志。你可能想在博客中实现这样的功能,因为你的大多数访问都会查看你的主页,阅读你的帖子,然后离开,所有这些都是在同一个PageView中完成的,所以当用户离开以获得正确的网站时间时,激发一个事件可能是一个好主意,或者当用户滚动超过某个阈值时,最终,你将测量到相同的ting,如果用户滚动得越多,他就会阅读得越多,如果用户花费更多的时间,他就会读得更多。因此,跟踪这两个指标来衡量同样的效果可能没有意义。只需选择一个并坚持使用,让它运行一段时间来创建历史数据,然后利用它。

问题回答

暂无回答




相关问题
How to store only time; not date and time?

In one field I need to store not a datetime pair, i.e. a standard Oracle date. 01/10/2009 22:10:39 But time only 22:10:39 I think that save disk space (I have 2 million rows) or provide faster ...

Auto Fill the Time in infopath

I would like to know if there is a way that I can have the time be auto filled when the user enters 10 I then want it to show 10:00. how can I do this?

Regex for timestamps in php

I m trying to take timestamps in this format: 2009-11-16T14:05:22-08:00 and make turn them into something like 2009-11-16 How do I remove everything after the "T"?

Segmentation fault on time(0);

I m rewriting an old program to do some new stuff, and suddenly I get a segmentation fault error on the following line of code: time_t seconds_since_time_begun = time(0); Why, oh why? Update: I ...

Run a PHP script every second using CLI

I have a dedicated server running Cent OS with a Parallel PLESK panel. I need to run a PHP script every second to update my database. These is no alternative way time-wise, it needs to be updated ...

热门标签