Google Analytics—trackPageview与trackEvent

在最开始接触到GA的时候,我们会知道GATC中最后一句调用函数_gaq.push([‘_trackPageview’]);是用来记录一次页面监测的,而同时GA也告诉你,对于页面上的按钮或者交互,可以使用trackEvent来进行事件监测,与页面数据隔开,以免造成页面数据的虚高。但是在实际应用中,往往不是纸上谈兵这么简单。而更是应该因地制宜,采用更加适合的方式来部署以及处理数据。

1、互动事件

通常情况下我们习惯添加trackEvent进行事件监测,然而自动从GA推出“访问者流“以后,我们可以比较清楚地看到各个页面之间的访问者的流向。这时我们会想到用虚拟页面监测(即在事件触发时触发页面监测代码,因为不是一个真实的页面,所以叫”虚拟页面”),即在事件触发时调用_trackPageview方法。比如这个例子 ,点击这个链接以后就会触发虚拟页面请求。这样的好处是可以更加清楚得看到各个环节之间的流量走向,而不会因为添加事件监测而导致数据脱节。所以对于比较重要的互动行为,虚拟页面这个方式可以让把网站的整体情况看得更清晰。而对于一些不重要的行为,只是good to have,没有也无所谓的东西,加事件监测就好了。

2、Flash

Flash算是GA里面比较有意思的东西了,因为它和html有许多不一样。首先,Flash网站主题是一个大swf的文件,里面包含所有的页面区块和交互。那么首先摆在我们面前的就是URL的唯一性问题,因为很多Flash站点会把所有页面都做到一个Flash文件里,这样的话不管你在站内如何互动,GA都默认只会记一次的trackPageview,这样的话就看不到真实的页面浏览数据了。这个时候你就需要添加虚拟页面监测,当展示不同区域时触发相应的代码。这里还要提到一种特殊情况,一些Flash站点不同区块或者页面的URL是根据锚点来设定的,举个例子http://jackie.ms#3 这样跳到我首页的第三屏,这样的话需要给GATC做一个特殊化的修改:将_gaq.push([‘_trackPageview’])改为_gaq.push([‘_trackPageview’,location.pathname + location.hash]),在这里,location.hash就是你当前页面锚点的值。

3、数据的影响

用trackPageview看整个网站表现的时候会比trackEvent更加清晰,所以大部分情况下我是偏向于trackPageview的,但是这同时也会出来一个问题,网站整体的页面浏览会虚高。那么怎么解决这个问题呢,首先我觉得可以分情况来看,如果Page/Visits或者Pageview不是一个衡量整体表现的KPI,那么虚高一点也无所谓,对比一下各个时间段或者来源的趋势就可以。但是如果你的网站是以内容页为主,而没有其他具体的转化行为,那就尽量避免影响真实数据的体现。如果真的坚持用它也可以,你需要单独配置一个配置文件,将你的虚拟页面流量过滤掉,以此来看Pageview数据(稍微麻烦一点,但不失为一个办法,前提是你的虚拟页面最好有单独或统一的标记,比如说/virtual/……不然过滤起来难度太大)。

我的感觉是不用拘泥于固定的想法,稳中求变、勇于尝试,可以发现更多不一样的东西。但是有一点是可以肯定的,在布码之前一定要尽可能得想的全面一些,考虑到后面可能要用的数据或者方法,前期准备越充足,后面做起来越简单,不然你会有收拾不尽的烂摊子。