新鲜发布:

0

Google Analytics之事件追踪

© 长沙seo / 2010-5-28 / 18:42 / 网站分析

作者蓝鲸网站分析博客 原文地址在这里  

Google Analytics的事件追踪功能,是用来记录不产生页面浏览的用户交互行为的。通常的网站追踪模式,是基于页面浏览行为的。当访问者点击链接打开一个页面,追踪代码就会把当前页面的信息和访问者点击的URL信息记录下来。并把这些信息组织起来生成报告。通过这些信息我们知道:访问者到过哪些页面,点击过哪些链接,从哪个页面离开网站。

事件追踪报告目录但是在很多情况下,访问者点击了URL后不会产生新的页面,比如最常见的文档下载,博客提交留言。和基于Flash和Ajix的页面等等。这些情况下访问者点击URL后都不会产生新的页面。(具有新URL地址的页面)在这种情况下,Google Analytics无法追踪到后面的信息。通常会在这里记录为访问者退出网站。

解决这个问题的方法是使用Google Analytics的事件追踪功能,(Google官方给出了两种解决方案,事件追踪和虚拟页面,但我更推荐事件追踪功能,虚拟页面也很有用,将在后面介绍)。事件追踪报告功能默认是开启状态,不需要单独在配置文件中进行设置。添加事件追踪代码后,数据会自动显示在内容报告中事件追踪子报告里。

必要的准备工作:

在添加事件追踪代码前,先要对网站中需要追踪的事件进行整理,然后进行分类。确定要追踪的事件类型,用户行为,如果这个事件可以带来收入,还要对事件的价值进行计算并赋值。充分做好这些准备工作后,产生的事件追踪报告才会更有意义。

事件追踪图表

Google Analytics事件追踪可以针对每个事件记录四个值,分别为:事件类别,用户行为,事件标签和事件价值。其中同一个事件类别里可以包含多个事件,并使用事件标签来区别不同的事件名称。而同一事件里又可以包含多个用户行为。我们可以针对每个事件的不同行为计算事件的价值。

举个例子来说明一下。

例如:我准备对我博客http://bluewhale.cc/里的资源文档频道的文档下载量进行事件追踪。

首先,把这个频道里所有提供下载的文档进行汇总分类。目前博客里提供下载的文档只有一个类别:GA_res。

然后,我对GA资源类别下的不同文档建立对应的事件标签(文档名称),用来区分这些文档。

最后,文档是用来下载的(也是我希望用户完成的行为),所以我把这个事件的用户行为设置为:download。

如果你追踪的事件可以引起销售行为的话。比如:你的网站提供产品白皮书下载,根据统计,每下载100次白皮书会有1个用户购买你的产品。而每个产品的售价是1000元。那么你可以将这本产品白皮书的下载行为价值定为10元。

添加事件追踪代码:

Google Analytics事件追踪功能的原理是,在要追踪的事件里调用pageTracker._trackEvent()函数,并对函数预先设定值。当访问者执行事件时,pageTracker._trackEvent()函数被调用,并将预先设定的值发送会google服务器,并最终显示在报告里。

pageTracker._trackEvent()内提供4个变量值,按顺序分别为:事件类别,用户行为,事件标签和事件价值。前三个是必须填写的值,第四个事件价值可以可选的。通过之前的准备工作,我已经对博客http://bluewhale.cc/中要追踪的事件类别,事件中的用户行为,每个事件的标签名称,以及这些事件可能产生的价值都整理好了。

事件类别:GA_res

用户行为:download

事件标签:类别内各文档的名称

事件价值:

在pageTracker._trackEvent()内按顺序添加整理好的值,并将代码添加到要追踪的下载链接里。(蓝色部分)这段代码内没有事件价值。

<a href=”http://bluewhale.cc/ Cookie_Sheet.pdf”onClick=”pageTracker._trackEvent(‘GA_res’, ‘download’, ‘Cookie_Sheet’);”>下载</a>

当访问者点击下载这个文档后,报告里就会增加一条相应的记录。

如何查看事件追踪报告:

Google Analytics的事件追踪报告属于内容报告的一部分。事件追踪报告中主要提供事件类别,用户行为和事件标签的信息。(其他还包括概述,趋势,主机等报告)。内容是按照我们之前设定的值来显示的。(可见准备工作还是很重要的)。

事件追踪报告

报告中的事件价值和平均价值是pageTracker._trackEvent()函数内第四个可选值。如果设定了这个值就可以在报告中看到每个下载行为的价值,整个事件的价值以及平均值数据。

需要注意的问题:

1事件总计和唯一身份事件:

事件追踪报告中分别提供事件总计和唯一身份事件两个值,事件总计是指所追踪的事件被触发的总次数。唯一身份事件是指所追踪的事件在每次访问里被触发的唯一次数。

举个例子:一个访问者来到我博客的资源文档页面,在一次访问中重复下载了一个文档5次。此时报告中的事件总计记录为5,唯一身份事件记录为1。

2事件追踪的数量限制:

Google Analytics规定,在每次访问中google最多可以追踪500个事件。超出的部分将不会被记录。所以,如果你有很多事件需要追踪,预先做好准备工作很有必要。

3大小写问题:

配置文件中的大小写过滤器对事件追踪报告的内容无效,事件追踪报告中是严格区分大小写的,GA_res和GA_RES会被记录为两个不同的事件类别。

事件追踪的多种灵活应用:

细心的朋友可能已经发现了,事件追踪代码是由JavaScript的一个事件(onClick)触发的。而JavaScript支持的事件有几十种之多。查一下JavaScript 事件参考手册可以更灵活的使用Google Analytics的事件追踪功能。

PS:再次提醒:在每次访问中google最多可以追踪500个事件。所以千万不要把事件追踪功能与JavaScript中的 onmousemove事件或onmouseover事件搭配使用。

第二篇 文章作者:Sluke,原文链接在这里

这里是事件跟踪是指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库:

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;

© 小彭学SEO文章内容皆为人工编辑,如有错误,敬请指正。

本文有 0 篇评论

发表你的见解