网站分析数据收集方式详解:Web日志JS标记和包嗅探器

  回顾网站分析历史,从“您是第***位来访用户”到现在百家齐放的专业工具提供商,网站分析已经逐渐发展衍化成一门科学。但面对形态各异的分析数据,很多人仍然困惑于数据的来源,了解网站分析数据的收集原理,也许对你解决这些困惑有所帮助。

  眼下网站分析数据主要有三种收集方式:Web日志、JavaScript标记和包嗅探器。

  1. Web日志

  下图是Web日志收集数据过程的示意图。

  

  从上图可以看出网站分析数据的收集从网站访问者输入URL向网站服务器发出http请求就开始了。网站服务器接收到请求后会在自己的Log文件中追加一条记录,记录内容包括:远程主机名(或者是IP地址)、登录名、登录全名、发请求的日期、发请求的时间、请求的详细(包括请求的方法、地址、协议)、请求返回的状态、请求文档的大小。随后网站服务器将页面返回到访问者的浏览器内得以展现。

  一些专业的工具厂商会有专门的处理服务器对大量的Log数据进行处理,并将处理后的数据存放入自己的数据库中。网站经营人员通过访问分析报表系统查看网站的分析数据。也有一些中小网站主出于成本的考虑不会求助于专业的工具厂商,他们会借助简单的网站日志分析软件完成对Log数据的处理,当然处理后的数据会有一定的局限性。

  2. JavaScript标记

  下图是JavaScript标记收集数据过程的示意图。

  

  上图所示JavaScript标记同Web日志收集数据一样,从网站访问者发出http请求开始。不同的是,JavaScript标记返回给访问者的网页代码中会包含一段特殊的JavaScript代码,当页面展示的同时这段代码也得以执行。这段代码会从访问者的Cookie中取得详细信息(访问时间、浏览器信息、工具厂商赋予当前访问者的userID等)并发送到工具商的数据收集服务器。数据收集服务器对收集到的数据处理后存入数据库中。网站经营人员通过访问分析报表系统查看这些数据。

  JavaScript标记以其快捷性和精确性已经得到大多数工具厂商的青睐,已经发展成为当前最为流行的数据收集方式。

  3. 包嗅探器

  下图是包嗅探器收集数据过程的示意图。

  

  上图可以看出网站访问者发出的请求到达网站服务器之前,会先经过包嗅探器,然后包嗅探器才会将请求发送到网站服务器。包嗅探器收集到的数据经过工具厂商的处理服务器后存入数据库。随后网站经营人员就可以通过分析报表系统看到这些数据。

  4. 数据收集方式的优劣比较

  没有一种数据收集方式是完美无缺的,不同数据收集方式也决定了各自的特性,了解不同收集方式的优劣所在,会对工具的选择也有一定的指导作用。

  下表是三种数据收集方式的优劣比较详细:

  Web日志JavaScript标记包嗅探器

  优点・比较容易获取数据源

  ・方便对历史数据再处理

  ・可以记录搜索引擎爬虫的访问记录

  ・记录文件下载状况・数据收集灵活,可定制性强

  ・可以记录缓存、代理服务器访问

  ・对访问者行动追踪更为准确・对跨域访问的监测比较方便

  ・取得实时数据比较方便

  缺点・无法记录缓存、代理服务器访问

  ・无法捕获自定义的业务信息

  ・对访问者的定位过于模糊

  ・对跨域访问的监测比较麻烦・用户端的JS设置会影响数据收集

  ・记录下载和重定向数据比较困难

  ・会增加网站的JS脚本负荷・初期导入费用较高

  ・无法记录缓存、代理服务器访问

  ・对用户数据隐私有安全隐患

  决定选择采用哪种数据收集方式之前,你需要先了解自己的需求。如果你不想自己网站的流量数据被任何第三方获取,那么Web日志无疑是你的最佳选择了。但想得到更贴近网站访问者行为的精确数据,还是需要采用JavaScript标记收集数据。这种数据收集方式不仅可以对缓存访问、代理访问正确记录,而且可以通过Cookie对独立访问者进行更为精确的定位。

  当然也有一些网站为了获得多方面的数据而同时采取多种数据收集方式。例如采用JavaScript标记收集精确数据的同时,为了搜索引擎优化对Web日志中的搜索引擎爬虫记录也进行分析。也有已经采用包嗅探器收集数据,但为获取缓存访问而同时进行JavaScript标记。

  采取何种数据收集方式也就很大程度决定了分析工具的选择,但仅仅从这一个方面考虑工具如何选择还是不够的,后面的内容会详细介绍在选择工具前,你都需要从工具提供商那里了解哪些技术参数来帮助你做出理智的判断。

  (版权归数码林网站分析博客所有,欢迎转载,但转载请注明出处。)

原文链接:http://blog.digitalforest.cn/wangzhanfenxi-shujushouji

时间: 2024-10-26 22:14:54

网站分析数据收集方式详解:Web日志JS标记和包嗅探器的相关文章

Android开发笔记之: 数据存储方式详解_Android

无论是神马平台,神马开发环境,神马软件程序,数据都是核心.对于开发平台来讲,如果对数据的存储有良好的支持,那么对应用程序的开发将会有很大的促进作用.总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式:数据库用起稍烦锁一些,但它有它的优点,比如在海量数据时性能优越,有查询功能,可以加密,可以加锁,可以跨应用,跨平台等等:网络,则用于比较重要的事情,比如科研,勘探,航空等实时采集到的数据需要马上通过网络

Android开发之基本控件和四种布局方式详解_Android

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A

Android开发之基本控件和四种布局方式详解

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A

《流量的秘密: Google Analytics网站分析与优化技巧(第3版)》一2.3 了解网站分析数据的准确性

2.3 了解网站分析数据的准确性 流量的秘密: Google Analytics网站分析与优化技巧(第3版) 网站分析对于衡量网站的表现相当重要.但是,只有在避免一些常见的数据收集错误(特别是对不同来源的数据进行比较时)的前提下,这些网站分析数据才是准确可靠的. 遗憾的是,相当多的企业只看到了网站分析报告的表面价值.毕竟,这些数据得来不易.但是,现实总是残酷的,网站分析的数据从来都不是百分之百的准确,就算是估计误差范围也很困难. 那么,关键是什么呢? 尽管有各种各样的缺陷,但误差在每周或每个月的

《流量的秘密 Google Analytics网站分析与商业实战》一第1章 衡量成功的前期准备1.1 网站分析数据的价值

第1章 衡量成功的前期准备 流量的秘密 Google Analytics网站分析与商业实战 你应该知道监测对成功来说是至关重要的,不管是对个人,还是对公司,亦或是对职业发展,都是如此.从很多方面来说,Google Analytics只是一个工具,同用来帮助公司作决策的众多其他数字工具没什么区别. 但是网站分析--即Google Analytics所涉及的领域.技术和行业--有所不同,它的功能和潜力是其他工具都望尘莫及的.为什么?因为Google Analytics不仅可以评估用户参与度.交易量和

Mongodb中MapReduce实现数据聚合方法详解_MongoDB

Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据,如何进行统计操作至关重要,那么如何从Mongodb中统计一些数据呢? 在Mongodb中,给我们提供了三种用于数据聚合的方式: (1)简单的用户聚合函数: (2)使用aggregate进行统计: (3)使用mapReduce进行统计: 今天我们首先来讲讲mapReduce是如何统计,在后续的文章中,将另起文章进行相关说明. MapReduce是啥呢?以我的理解,其实就是对集合中的各个满足条件的文档进行预处理

PHP中filter函数校验数据的方法详解_php技巧

介绍PHP中filter函数校验数据的方法详解,PHP过滤器包含两种类型:Validation用来验证验证项是否合法.Sanitization用来格式化被验证的项目,因此它可能会修改验证项的值,将不合法的字符删除. input_filters_list() 用来列出当前系统所支持的所有过滤器. 复制代码 代码如下: <?php foreach(filter_list() as $id => $filter) {     echo $filter.' '.filter_id($filter).&

vuejs动态组件给子组件传递数据的方法详解_javascript技巧

通过子组件定义时候的props可以支持父组件给子组件传递数据,这些定义的props在子组件的标签中使用绑定属性即可,但是如果使用的是<component>动态组件,这个时候就没有显式的子组件标签,要给子组件传递数据需要在<component> 中进行绑定 <div class="app" id="deviceready"> <component :is="currentView" :user_name.s

Vuejs第九篇之组件作用域及props数据传递实例详解_javascript技巧

本篇资料来于官方文档: http://cn.vuejs.org/guide/components.html 本教程是小编结合官方文档整理的一套更加细致,代码更多更全的教程,特别适合新手阅读. props数据传递 ①组件实例的作用域: 是孤立的,简单的来说,组件和组件之间,即使有同名属性,值也不共享. <div id="app"> <add></add> <del></del> </div> <script&g