我一直在努力研究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的博客向我建议的另一个链接,这是一种好方法吗?