刚接触网站分析的同学,往往觉得网站分析十分神秘和不可思议。因为他们觉得,在网站上加上一小段JavaScript 代码,就能收集到那么多的网站访客浏览的数据,实在是神奇的很。其实,只要了解下网站分析背后的工作原理,你就会恍然大悟,觉得一切都那么理所当然。好了,这篇文章就来说说网站分析类工具基本的工作原理吧。

目前主流的网站分析工具都是基于JavaScript 和Cookie 的方式来工作的,这种方法被称为页面标记法。JavaScript 是一种广泛应用于浏览器客户端的脚本语言,可用来响应用户浏览器中的事件,读写Cookie,获取用户浏览器的相关信息……总之,功能相当强大!而Cookie 是一种存储在内存或硬盘的小型文本,用来辨识用户身份,Cookie 有名称、值、有效期、所属域名等属性,如Universal Analytics 就使用一个名称为_ga有效期为两年的第一方Cookie 来区分用户(本文中的用户和访客同义)。

网站分析工具的工作原理大致可以分为四大块,即数据收集、系统配置、数据处理及报表展现。以下就从这四个方面展开来说说网站分析工具的工作原理吧。

数据收集

前面说到,目前主流的网站分析工具都是在网站上加一小段JavaScript 代码的方式来收集数据的。以GA 为例,以下即为GA 中的基础统计代码:

google-analytics-code

在网站上加上这一小段JavaScript 代码(需要将UA-XXXX-Y 换成自己账户的property ID)后,用户来到这个网站,将会加载analytics.js 这个脚本文件,这个脚本文件中有获取当前页面url、页面标题的代码,有获取Java、Flash、用户浏览器语言设置等信息的代码,还有一些其他功能的代码。当用户浏览器发生相应的事件时,GA 代码立即响应,携带着用户浏览器等信息一并以type为pageview 的http 请求发送到GA 的收数服务器,这样GA 服务器就收到一条记录了用户浏览了该property ID对应站点的一条日志。以上所述为GA 中的基础监测代码的工作原理,其他高阶的如事件跟踪、电子商务统计等与此类似,只不过对应的触发条件和发送的请求与发送PV的请求有些不一样罢了。

系统配置

值得注意的是,系统配置是先于数据处理的,所以,在使用网站分析工具时,如果一开始配置没做好,那么配置好日期之前看到的数据可能并不是你想要的,因为直到配置完成,数据才会按照你配置的方式进行处理,而历史数据已经入库,不能再被处理。同样以GA 为例,GA 目前的版本UA 修改配置是相当方便的,大部分配置直接在管理后台就可完成,不需要像Classic Google Analytics(老版GA)那样写在代码里了。比如说,想要将某些品牌词的自然搜索当做直接访问的流量,那么直接使用搜索字词排除列表即可完成。如下图所示:

search-keyword-filter

在配置生效前,任何使用品牌词自然搜索来到网站的流量,在GA 中其来源都为organic;配置生效后,之前部分的流量仍然属于organic,但是之后这样的流量将属于direct。

数据处理

前两个过程都需要我们的参与,到了数据处理过程,基本是我们无法触及的地方了。GA 数据处理引擎解析收到的日志,并基于系统配置和GA 中已有的处理逻辑将数据存入数据库中。说起来挺简单的,但实际上涉及到非常多的处理逻辑,GA 中的地理位置和服务提供商等维度的数据,是基于日志中的IP 信息解析处理得到的;设备、操作系统、浏览器等数据则是基于User Agent 信息得到的;其他维度和指标数据大多是基于发送到GA 收数服务器的collect请求计算得到的。之后我也会专门写篇文章说明下GA collect 请求中各个参数的含义和GA 中广告统计和流量来源的处理逻辑的问题。另外附一张GA 官方最新给出的广告统计和流量来源处理的流程图,这张图适用于UA,如果把这张图完全弄懂了,那GA 里来源判别之类的也就不会有啥问题了。

ua-campaign-source-data-processing-flow

报表展现

对于很多网站分析从业者来说,大部分的时间还是与数据报表打交道的。GA 中数据报表的展现形式十分的丰富,既有基于时间的折线图,也支持条形图、饼状图、二维表、地理分布图等形式的图表,如果你还觉得不够强大,可以直接将源数据导出放到Excel 中进行处理。对于GA 中的标准报表来说,其查询速度是非常快的,因为这类报表只需要对数据简单的汇总处理下即可,涉及到的运算量并不大。某些同学习惯了使用其他的网站分析工具的会话数、PV数等放一起,看到GA 中任何一个报表都没有这样的组合,所以觉得GA 很难用,其实他们不知道GA 还有另一个非常强大的功能——自定义报告的功能。不管是历史数据还是未来的数据,使用自定义报告,维度和指标几乎可以任意关联,而且还能设置过滤器,非常的方便!

以上只是以GA 为例简单地介绍了一下网站分析类工具的工作原理,如果你对仍网站分析工具是怎么工作的有疑问,欢迎在本文后留言与我一同探讨。

10 Thoughts on “网站分析类工具基本的工作原理

  1. 不错,很具体很系统。

  2. 如果cookie是有有效期的话,那么如果到期了,新老访客是不是会重新定义呢?

    • 一般几乎不会出现你说的这种情况。
      网站分析工具用于识别用户的cookie是第一方cookie(不容易被用户清理)。以GA最新版的_gacookie为例,其有效期有2年,每次用户来访,cookie的过期时间都会被update。比如用户首次来访是2016.03.30 13:00,这个时候cookie的过期时间是2018.03.30 13:00,第二天13:00该用户又来了,那么其过期时间就变成了2018.03.31 13:00

  3. Pingback: 从nginx日志中提取爬虫信息 – Jeff Show – 数据科学笔记

  4. Pingback: 在GA中获取更准确的用户浏览器信息 | Jeff Show – 数据科学笔记

  5. Pingback: 使用GA 跟踪站内搜索 | Jeff Show – 数据科学笔记

  6. Pingback: 如何跟踪用户在WAP页面的浏览 | Jeff Show – 数据科学笔记

  7. 网站是不是换了装,很清爽啊!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Post Navigation