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事件搭配使用。
——【所有文章及图片版权归 蓝鲸(王彦平)所有。欢迎转载,但请注明转自“蓝鲸网站分析博客”。】——
有个问题想请教一下:
这种设置方法得到的报告中显示的事件次数是指“点击”某篇文章现在按钮的次数还是指点击下载并且下载成功的次数?
如果是点击次数,又该如何统计下载成功的次数?
而如果是下载成功的次数,又该如何统计点击下载的次数,即如何知道有多少人点击下载后最终却放弃了下载?
@青山, 按照追踪代码放置的位置不同,获得的数据也不一样。如果直接将事件追踪加在下载按钮上,那么统计的就是这个按钮被点击的次数,不过肯定会和实际的下载量有偏差,因为访问者可能因为各种原因没有完成下载操作。如果要统计真实的下载次数,可以在下载完成后再触发事件追踪。
@蓝鲸, 请问如何在下载后设置追踪?
@宋天龙, 同问这个问题
@宋天龙, 试试在下载的文件中使用工具网址构建器标记网址。
请问 在上面提到的例子中,“事件类别:GA_res” 是在报告的哪个部分体现出来的呢? 仔细看了一下图标 没有找到
@八月,不好意思 错别字 , 是“图表” 不是“图标”
@八月, 会在事件追踪的类别报告中显示。
@蓝鲸, 晕 找到了!类别报告的位置很明显啊 谢谢~~
博主您好,
我想用_trackEvent追踪客户点击客服插件的次数,来计算询问率.
并且想知道有没有办法追踪到客户点击客户插件的页面.
(该客服插件的代码是放在网页footer里,每页自动生成的)
期待你的答复.
@蓝鲸,请教
您好,我是个GA新手,按照您上面的法
onclick=”javascript:pageTracker._trackEvent(‘GA_mxb’,’change_bst’, ‘change_bst_yz’);”
却会报错 pageTracker not defined
这个页面确实是能调用GA异步代码的,为什么调用不了这个函数呢?
弄明白了,新的异步代码 需要这么调用
_gaq.push([‘_trackEvent’,‘GA_mxb’,’change_bst’, ‘change_bst_yz’])
如果需要统计事件的价值,除了在onclick事件代码中添加事件价值的参数外,是否需要添加其他的代码? 这个参数是否需要预先定义?
href这种貌似很容易追踪,请问博主######## 类似这种input的表单提交按钮如何去追踪呢?
蓝鲸老师你好,
我昨天按照你的这篇文章 给自己网站的一个图片加上了 onclick=”pageTracker._trackEvent(“link”, “click”, “onchat”, 33);”这段代码,今天在后台看到了三个事件,但是看不到类别,事件标签,还有行为 都为零,请问你遇到过类似情况吗?该怎么解决啊?
老师 好 我又来了,我想问的问题在微博上问过你,我想知道我能不能把这段代码直接加在没有ga代码的js里面 这样js代码一运行,这段代码就出发了
博主,我是新手,请问那个跟踪代码是在哪里生成的,因为我看见其他地方说代码的语法已经变更,这说这是怎么回事?
新手去哪里学习啊,之前哪里一些视频,不过都是老版本的,现在好像GA的界面换了!不过大致的一些内容没有换! 我想好好的学习一下, 改怎么学习, 看了好多的资料,都没有介绍函数怎么配置!谢谢博主了
蓝鲸老师你好,最近遇到关于事件追踪方面的一个问题,正好你这篇文章谈到了这个。
请问一下:
1. 对于已有的事件类别可以进行再分类吗?即将很多小的事件分类归为一个大的事件分类?
2. 对一些不需要的事件类别可否删除?
一开始没有做好分类,很怕会超过500个的上限。
谢谢。
老師 您好:
最近使用 GA event tracking 方式來記錄客服系統的 submit button 被點擊的次數,
不過實際上線之後發現, 後台進來的 case 數目與 GA 後台查到的點擊次數對不上, GA 會少個幾筆…
不知道您對這個問題有沒有什麼想法, 因為本身在測試無法測出這種 case
所以目前對這種狀況還沒有頭緒…