网页浏览量作为事件Google分析

时间:2012-01-16 17:29:31

标签: javascript google-analytics

<input type="button" value="Start Timer" onclick="timeTracker._recordStartTime();"/>  
<input type="button" value="Stop Timer" onclick="timeTracker._recordEndTime();"/>  
<input type="button" value="Track!" onclick="timeTracker._track(pageTracker, Category, 'Manual Test');"/>

这是一个内部事件跟踪代码(使用点击操作),我想实现类似这样的东西 “timeTracker._recordStartTime()在页面打开(加载)时启动 然后“timeTracker._recordEndTime()”和“timeTracker._track(pageTracker,category,'Manual Test')在用户离开页面时调用(通常导航到另一个页面)。

我的目标是将在页面上花费的时间记录为事件,并将其与其他事件(例如点击JavaScript事件)放在一起。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用 window.performance.timing 对象来计算页面上的时间。 https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#processing-model

首先,您应该将onunload事件处理程序绑定到您的身体,例如:

<body onunload="trackPageTime(event);">
...
</body>

然后,实现你的函数来计算时差并推送到_gaq对象。

<script type="text/javascript">
function trackPageTime(e){
    var onPageSeconds = ((new Date()).getTime() - window.performance.timing.domInteractive) / 1000;
    var gaps = [1,2,3,4,5,10,20,30,60,120,300,600];
    for(var i=0;onPageSeconds>gaps[i] && i<gaps.length;i++);
    _gaq.push(['_trackEvent', 'Time on Page', (document.location.pathname+document.location.search).toString(), gaps[i].toString()]); 
}
</script>

您可以使用“计时”对象的不同属性来计算页面开启时间,例如 responseEnd (有些人可能会说更正确),但是,我发现 domInteractive 属性会给我更多近似结果。