购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 服务器日志和JavaScript日志对比

从获取数据的方式维度来看,网站分析工具可以分为两大类:网站服务器日志和页面JavaScript插码日志。

最早的数据来自网站服务器日志,后续逐渐升级为采用网站页面JavaScript插码方式获取数据,但这并不是说不会再使用网站服务器日志了。出于数据安全的考虑,依然有一些网站和工具在使用服务器日志数据,并且基于服务日志开发自己的网站分析工具。例如,京东、当当这类大型电商网站,都会有自己的网站服务器日志分析工具。银行和保险行业则更看重数据的安全性和保密性,因此它们也是服务器日志工具的主要使用者。但从网站分析工具的发展方向和市场占有率上来看,JavaScript日志和基于JavaScript日志的分析工具更加流行。

接下来将分别介绍网站服务器日志和JavaScript日志的特点,并对比两者之间的差异。

2.2.1 网站服务器日志的特点

网站服务器日志的特点如下:

1)网站服务器日志的时效性较差。这主要是受到服务器日志处理过程及缓存日志采集时间的影响。

2)网站服务器日志的准确性较差。这同样是受到缓存日志采集的影响,如果无法获取所有的缓存日志,就无法获得准确的数据。

3)网站服务器日志的定制性较差。服务器日志只能收集标准的内容,而无法按照具体业务需求或访问者行为进行个性化的日志定制。

4)网站服务器日志可以记录搜索引擎蜘蛛的访问。这是服务器日志的一个优势。对于网站SEO来说,搜索引擎蜘蛛的访问数据是非常有用的。

5)网站服务器日志可以对历史数据进行追溯和重新处理。由于日志及数据都保存在本地服务器中,因此可以进行重新处理。

6)网站服务器对于设备的适应性较强。服务器日志无须单独进独定制操作。访问者对服务器的请求默认都可以被记录到。

7)网站服务器日志不需要对网站页面进行修改。这是服务器日志的另一个优势,不需要对网站页面进行更改就可以获得网站的数据。实施和获取数据的过程非常简单。

8)读取和处理网站服务器日志的工作技术性较强。处理日志是一个技术活,因此这个工作需要技术人员的支持才能完成。

2.2.2 JavaScript日志的特点

JavaScript日志的特点如下:

1)由于JavaScript日志大部分是由第三方提供的SaaS服务,同时JavaScript日志不会涉及缓存的问题,因此时效性较强,对于基础指标可以提供实时的统计结果。

2)JavaScript日志会以唯一随机数来避免缓存数据的影响,因此与网站日志相比受缓存的影响较小,数据相对更加准确。

3)与服务器日志相比,JavaScript日志因为采用了页面插码的方式,因此灵活度较高,可以对页面中的不同元素进行定制追踪。

4)JavaScript日志无法追踪到搜索引擎蜘蛛的访问,因为大部分蜘蛛无法运行网站页面中的JavaScript代码。

5)由于JavaScript日志大部分是由第三方提供的服务,因此除非有特别约定或单独购买服务,否则无法追溯或重新处理历史数据。

6)使用JavaScript日志对非PC设备进行追踪时需要单独进行定制,否则将无法获取数据。例如,Google Analytics单独提供针对iOS和Android系统的监测代码包。

7)所有JavaScript日志都需要对网站页面进行插码操作才能获取数据,如需获取定制化数据,则可能会更复杂。当然现在也有一些改进的方法,例如,可以在服务器端进行部署和设置,或者使用Google的Tag Manager代码管理工具完成代码定制及实施的工作。但相比服务器日志,整个代码实施过程依然很复杂。

8)JavaScript日志由于大部分是SaaS服务,数据处理过程也是透明的。因此对于使用者来说不需要太多的技术背景,尤其对于市场人员来说操作比较简单。

通过以上对比可以发现,服务器日志和JavaScript日志各有利弊,但从大趋势来看还是JavaScript日志更加简单、易用,操作也相对比较灵活。下面我们再来看一下两类工具间的数据差异及准确性问题。

2.2.3 数据差异和准确性对比

从数据差异和数据准确性的角度来看,影响网站服务器日志及JavaScript日志的主要因素共有以下4点。

1)缓存问题。缓存是一把双刃剑,既提高了访问者访问网站时的速度体验,减轻了服务器负担,同时也造成了日志难以完整收集,时效性差的问题。因此缓存问题是网站服务器日志很难彻底解决的一个问题。

2)浏览器中JavaScript和Cookie的设置问题。这主要会对JavaScript日志收集数据造成影响。当访问者将浏览器设置为秘密浏览,或者禁止植入Cookie时,都会对JavaScript日志的数据准确性造成影响。而这对于网站服务器日志来说不存在问题。

3)指标记录和计算方法问题。对于部分指标,网站服务器日志、JavaScript日志,以及不同的工具间计算的方法可能存在差异。例如,对于唯一访问者的记录,网站服务器日志大部分使用IP,而JavaScript日志则使用Cookie,或同时使用IP和Cookie进行记录。

4)访问者特殊行为的记录方式问题。网站服务器日志和JavaScript日志默认都可以记录页面浏览行为,但对于非页面浏览行为的记录方式却不一样,例如,对于文件下载,JavaScript日志默认无法记录这个行为,需要定制追踪。即使进行了定制追踪,数据也只是下载这个行为的次数,而不是文件的完整下载次数。而服务器日志默认就可以完整地记录文件下载行为。

如图2-4所示,如果将浏览器中的Cookie设置为阻止网站设置任何数据,则JavaScript日志将不会追踪到此次访问。同样,如果设置为不允许任何网站JavaScript运行,那么Java Script日志也同样不会追踪到此次访问的数据。

对于缓存问题,我们可以通过浏览器自带的工具进行查看。在图2-5中可以发现,JavaScript日志类工具Google Analytics对于utm.gif的请求不是来自缓存,而页面中的其他元素(如图2-5中红框部分所示)则都来自之前的浏览器缓存。

图2-4 Chrome浏览器的设置界面

图2-5 通过httpwatch检查Google Analytics返回数据

2.2.4 数据全面性对比

从数据全面性的对比来看,网站服务器日志和JavaScript日志间也存在差异。对搜索引擎蜘蛛的访问及抓取行为是每个SEO都感兴趣的数据。网站服务器日志可以自动获得这些数据,而由于大部分蜘蛛无法执行JavaScript,因此JavaScript日志无法获取搜索引擎蜘蛛的访问行为。

服务器日志和JavaScript日志之间另一个较大的差异是对网站页面加载错误的追踪。如图2-6所示,服务器日志会自动追踪页面加载错误的数据。而JavaScript日志需要定制,并且不能对所有的情况进行追踪。

图2-6 服务器日志会自动追踪404页面

服务器日志与JavaScript日志之间的另一个数据差异在于对网站页面的记录。首先来看一下网站的5种最基本的状态,也就是HTTP的5种状态码。HTTP状态码(HTTP Status Code)是用以表示网站页面HTTP响应状态的3位数字代码。HTTP状态码的第一个数字代表了响应的5种状态之一。

(1)1xx消息

这种类型的状态码代表请求已被接受,需要继续处理。

(2)2xx成功

这种类型的状态码代表请求已成功被服务器接收、理解并接受。

(3)3xx重定向

这类状态码代表需要客户端采取进一步的操作才能完成请求。通常用来重定向。

(4)4xx请求错误

这类状态码代表客户端看起来可能发生了错误,妨碍了服务器的处理。

(5)5xx服务器错误

这类状态码代表服务器在处理请求的过程中有错误或异常状态发生。

最常见的几类代码状态是200、302、404和503等。在这几种状态中,JavaScript日志默认只能对200这种状态进行追踪,定制后可以追踪404状态。服务器日志默认可以追踪到大部分的状态。相比200来讲,404这种错误状态可能对于我们更有价值。

从数据的可定制性来看,对于非页面浏览行为,网站服务器日志都是追踪不到的。再说得严谨一点,对于未产生服务器请求的行为,服务器日志都是追踪不到的。例如,Flash内的互动操作、其他非页面请求的互动行为,以及不产生服务器请求的事件等。这些行为通过代码定制都是可以被JavaScript日志追踪到的。例如,图2-7中的“查看更多”通过代码定制可以被JavaScript日志追踪,但不会被服务器日志记录到。

图2-7 页面中不产生服务器请求的事件 rUM8VrHE/9ZukYWteyFVV9svuRMdIwFNnJoYgFXMZGMlEPO6dAZQ4eufkrV8tiVG

点击中间区域
呼出菜单
上一章
目录
下一章
×