loading...

Google Analytics进阶运用之事件跟踪

发布时间:August 13, 2009

这里是事件跟踪是指Event Tracking,意思比鼠标事件跟踪广泛,先看看都能统计到什么:
1、Flash内容,比如flash站点和flash动画,甚至flash游戏都可以。
2、嵌入式AJAX
3、网页小饰件
4、文件下载
5、数据或文件的载入时间

这里用到的是_trackEvent()方法,用法如下:

_trackEvent(category, action, optional_label, optional_value)

category (必填)
这个是标注想统计项目的分类
action (必填)
这个是分类下的具体行为
label (可选)
可以理解为对action的一个描述,可选
value (可选)
这个是一个整数型的字段,通常用于统计载入时间或是事件的价值

如果部署了时间跟踪,在google analytics的报告里还有一个字段叫做Implicit Count(隐式计数),这个是统计交互行为的,比如点了10次某个按钮,点一次算一次,类似PV,这个值需要根据不同的部署去理解。

用音乐站来说明_trackEvent()的用法:

pageTracker._trackEvent("music", "Play", "日光倾城");
pageTracker._trackEvent("music", "Pause", "日光倾城");
pageTracker._trackEvent("music", "Stop", "日光倾城");

music是category,play是action,日光倾城是label(这里是歌名),放在链接上是这样的:
<a href="#" onClick="pageTracker._trackEvent("music", "Play", "日光倾城");">播放</a>
<a href="#" onClick="pageTracker._trackEvent("music", "Pause", "日光倾城");">暂停</a>
<a href="#" onClick="pageTracker._trackEvent("music", "Stop", "日光倾城");">停止</a>

如果加载在播放器的按钮上,就能统计到用户试听《日光倾城》这首歌时的行为。

如果是统计MP3文件被下载的信息,就是这样写:

<a href="#" onClick="pageTracker._trackEvent('Downloads', 'MP3', '日光倾城', downloadTime);">下载</a>

这里加入了value,每次在MP3文件被下载完之后,时间会以秒为单位计入value,在报告里用downloadTime表示,加上Implicit Count,就能计算出平均每次下载时间,同理,可以用于记录flash动画的播放。据我所知吗,JS本身并不能监控到文件是否下载完成,所以要用其他方式将这个参数传过来,注意是第四个参数是整数型。

扩展运用


这里介绍两个js库:
TimeTracker()
http://code.google.com/apis/analytics/samples/time-tracker.js
MouseOverTracker()
http://code.google.com/apis/analytics/samples/mouseover-tracker.js
它们需要额外加载到被统计页面。

TimeTracker()主要有两个特性:
1、记录持续时间
2、生成柱状图
如果不自定义代码,使用TimeTracker()会创建一个叫做“TimeTracker”的分类,记录开始和结束时间,计算时间差并发送给google analytics形成报告,用柱状图显示平均时间等数据。用处非常广泛,比如监听页面平均加载时间、视频加载时间、flash界面加载时间或是嵌入式js脚本加载时间等等。
函数如下:
TimeTracker(opt_buckets_array)
返回一个新的时间跟踪器
_recordStartTime(opt_time)
记录开始时间
_recordEndTime(opt_time)
记录结束时间
_setHistogramBuckets(buckets_array)
定义柱状图刻度,默认是[100, 200, 300, 400, 500, 1000, 1500, 2000, 2500, 5000]
_getTimeDiff()
计算时间差
_track(tracker, opt_event_object_name, opt_event_label)
使用_track()需要保证之前已经记录了开始时间和结束时间
tracker是指google analytics在被统计页面已经实例化的一个跟踪项,比如pageTracker
opt_event_object_name是定义TimeTracker()统计数据出现在报告中的名字,默认是“TimeTracker”
opt_event_label是描述这个TimeTracker()的,为了在报告中更容易找到

google给出的运用示例:

<html>  
<head>  
<title>Latency Tracking Demo</title>  
</head>  
<body>  
<script type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>  
<script type="text/javascript" src="http://www.example.com/scripts/time-tracker.js"></script>  
<script type="text/javascript">  
var timeTracker = new TimeTracker();  
var pageTracker = _gat._getTracker("UA-1735986-1");   
</script>  
<input type="button" value="Start Timer" onclick="javascript:timeTracker._recordStartTime();"/>  
<input type="button" value="Stop Timer" onclick="javascript:timeTracker._recordEndTime();"/>  
<input type="button" value="Track!" onclick="javascript:timeTracker._track(pageTracker, undefined, 'Manual Test');"/>  
</body>  
</html>

定义柱状图的示例:

// somewhere at the top of the page
var timeTracker = new TimeTracker();
timeTracker._recordStartTime();
 
// page load and setup
 
// now when the page is done loading...
timeTracker._recordEndTime();
 
// Specify your own histogram "action" values
timeTracker._setHistogramBuckets([10, 20, 50, 100, 500, 1000]);
 
// assuming pageTracker is called from _gat._getTracker(account) 
timeTracker._track(pageTracker);

MouseOverTracker()
用户在一个PV里可能会多次触发onMouseOver()事件,这样统计到的数据水分很多,使用这个库就可以只统计第一次onMouseOver()事件而忽略掉后续的。
函数如下:
MouseOverTracker(tracker)
返回一个新的跟踪器,tracker是可选参数,需要是已经在页面中实例化的跟踪项,比如pageTracker
_trackMouseOver()
这个方法第一次被调用的时候,一个onMouseOver()事件被记录,后续操作不记录

示例:

//  We want to track mouse overs on a video unit that has the element id "myVideoUnit".
// assuming pageTracker is called from _gat._getTracker(account) 
 
var mouseOverTracker = new MouseOverTracker(pageTracker);
document.getElementById("myVideoUnit").onMouseOver = mouseOverTracker._trackMouseOver;

最后,事件跟踪功能对跳出率有一定的影响。在没有部署事件追踪的页面,一个用户进入该页面,进行了一系列点击或其他什么操作(没有刷新或者跳转)然后关闭浏览器离开,会被记录为一次“跳出”,如果这个用户的行为被事件跟踪记录,就不算是一次“跳出”,这时“跳出”的定义是一次没有行为被记录下来的“传统跳出”。

标签: google, Analytics


已有 7 条评论 »

  1. 使用这种代码之后,在GA后台得到的是虾米样子的数据啊?

    1. 在Content的Event Tracking就能看到

  2. 博主大人您好

    我正在使用您介绍的mouse over JS库,自认为安装正确,可是我在哪里能看到这个报表呢?

    1. MouseOverTracker()是用来帮助统计onMouseOver()的

  3. 讲解的很详细,谢谢分享。
    事件追踪是很有用,但部署起来还是麻烦,需要修改ga代码。对于统一调用ga代码的办法可能不是很方便

  4. 谢谢分享,收藏了!
    对于事件跟踪,跟上面的那位朋友的想法一样,部署起来是有点难度,但是可能精准度要大一些。

  5. 问一个楼主的问题,GA 中的事件跟踪似乎没有添加事件标签,似乎仅能存储一天的点击数,这是为什么。
    例如:
    _gaq.push(['_trackEvent', '活动名称', '客服咨询']) 少了一块!

添加新评论 »