今天不经意间发现国内GAIQ认证通过人数最多的公司是某分类网站(总共112其占了19个),感到很惊讶。早上看资讯时候也刚好看到国外一家Google Analytics Partner一篇关于他们帮助黄页网站(Yellow Pages NZ)提供数据分析服务的简单说明,Yellow Pages NZ(以下简称YP)之前用的是Adobe SiteCatalyst Analytics,经过专家的迁移和部署,虽然用的是Google Analytics,但他们却能够获得更多的有价值数据(详情点击)。
下面,就这个案例简单编译一下。
我们看到YP使用了Google Tag Manager并且采用GA和UA版本并行的方案。这是一个值得推荐的方式,因为UA在目前来说还无法进行再营销投放,内容实验等,而UA的自定义维度和指标,简短的cookie值和后端的数据控制,也非常强大而便利。同时使用GA和UA版本并不会产生冲突。
以下是一个搜索页面的跟踪代码,前半部分是通用的,定义的跟踪ID,域名,会员ID。
var dataLayer = new Object();
dataLayer.gaID = ‘UA-5159414-1′;
dataLayer.UAgaID = ‘UA-35952421-1′;
dataLayer.hostname = ‘.yellow.co.nz’;
dataLayer.loginId = ’0′;
dataLayer.pageType = ‘SearchResultsPage’;
dataLayer.searchType = ‘Category Search’;
dataLayer.searchTermInterpretation = ‘Restaurants’;
dataLayer.searchTermActual = ‘restaurants’;
dataLayer.searchOutcome = ‘Successful’;
dataLayer.searchLocationInterpretation = ‘Auckland City’;
dataLayer.searchLocationActual = ‘auckland-city’;
dataLayer.refinements = [];
dataLayer.pageNumber = ’1′;
dataLayer.listings = {‘sideRunnerAds’ : [], ‘platinumAds’ : []};
dataLayer.listings.resultsAds = ['103565976_1403_gold_01', '101138587_1403_gold_02', '101711337_1403_gold_03', '101322153_1403_gold_04', '103889633_1403_gold_05', '103440246_1403_gold_06', '101016618_1403_gold_07', '103838212_1403_gold_08', '103118370_1403_gold_09', '101024436_1403_gold_10', '103903907_1403_gold_11', '103112073_1403_gold_12', '101711335_1403_gold_13', '102579733_1403_gold_14', '101322155_1403_gold_15', '102436580_1403_gold_16', '103564219_1403_gold_17', '101322175_1403_gold_18', '103809732_1403_gold_19', '101322165_1403_gold_20'];
dataLayer.categoryName = ‘Restaurants’;
dataLayer.categoryID = ’1403′;
分别定义了:
页面类型
搜索类型
搜索词转换(应该是统一了首字母大写,进行了一定程度的数据聚合)
用户实际搜索词
搜索是否有结果
搜索城市(转换后,同上)
搜索城市(空格用-代替)
搜索优化词
当前所处第几页
侧栏广告
搜索结果广告(类似P4P结果,区分结果类型,如什么类型的广告还是普通的列表,按照排序列举)
分类名称
分类ID
——————————
这里,他们主要用到了自定义维度和事件跟踪,使用自定义维度 (而不是自定义变量)的好处是它是作为第一维度可以直接查看其数据或与其他数据进行次级维度交叉,同时也在跨平台跟踪方面支持也更好些。作为一般的搜索结果页面,我们会想到的是使用搜索类别和搜索词定义,但是对于搜索结果是否有数据,用户的翻页行为,这些都是标准配置无法得知的。
另外客户希望了解每个搜索结果的点击情况,这个时候我们如果我们单纯地使用目标跟踪,可能会出现问题。因为用户在一次访问中,只能记录同一个类型的一次转化。比如用户打开了2个商家页面,然后分别点击了联系商家(完成了转化),在GA的标准报告中,只能识别为一个转化,而其实对于这种网站来说,应该算是两个转化。因此,使用了事件跟踪,并且给每个事件加入了独特的标记(其实就是动态加入商家ID到事件操作中),最终在事件报告中,我们可以看到每个事件的独立触发数,同时也能看到总共的事件触发数,从而实现了客户需求。代码如下:
当然,这里它这里是通过GTM的宏定义来完成的。
我们再来看看百姓网的代码部署:
_gaq.push(['_setCustomVar', 1, 'Category', tracker.category, 3]);
_gaq.push(['_setCustomVar', 2, 'City', tracker.city , 3]);
类别定义和城市定义,没啥说的。下面是一些js代码,做一些自动化监测:
ga : function (name, action, label, value) {
_taq.push(['ga', name, action, label, value]);
},
setCategory : function (category) {this.category = category},
setCity : function (city) {this.city = city},
setCityEnglishName : function (city_name) {this.city_name = city_name},
setTrackId : function (trackid) {this.trackid = trackid},
setAdId : function (adid) {this.adid = adid},
setVisitorId : function (visitorid) {this.visitorid = visitorid},
setUserId : function (userid) {this.userid = userid}
};
核心代码大抵如此,其实也无外乎是定义那些值,只是它这里通过js去拼接数据,可以一定程度减少在服务器端的查询。当然,它还做了些其他方面的跟踪,比如加载速度,广告位监测。同时,百姓网应该也做了一个内部的数据分析系统:gary.baixing.com,数据通过URL参数的形式(类似GA的gif文件的数据存储方式)发送到服务器,然后再处理。
综上所述,对于分类网站来说,其实最主要的数据跟踪点如下:
城市、频道、页面类型、子类别、访客、会员。
其中搜索会比较关注,同时搜索后的行为也是网站运营人员比较关心的数据。
对这类网站来说,分类聚合应该是用的比较多的一个分析方法。可能某个人员运营某几个频道,他只关心这些数据,如果希望做更深入了解也会去挖掘频道内部的细节数据。而作为上层来说,可能希望关注到总体的数据,比如每个城市或每个频道的总体运营数据,做成柱状图或趋势曲线图之类的进行查看。技术人员和运维人员来说则主要关注搜索结果优化和加载速度等方面。
当然,如果是全球运营的公司,旗下有多个分站点,可能也会用到多个ID进行跟踪,一个总账号,多个子账号。
当然,如果真像上面说的那样,各频道按部门划分很明显,也可以给每个频道或多个频道(按人员分配)指定一个ID,这种方法也能够减少数据抽样率和提高数据更新速率,并且适合多个广告账户推广的投放方式。当然,过滤器也是一个办法了,只是数据量确实会比较庞大,免费版GA的一千万hit/月/账户限制恐怕很快就超过了(年费十五万美金的付费版是十亿)。
本文仅供学习参考,本人与上文提到的公司无任何关联或关系。