`

不完美的网站分析数据:数据理想化和访问者理想化

 
阅读更多

  一、 技术理想化

  每种数据收集方式都有其独特的技术优势,但没有一种收集方式能完美的捕获到访问者在网站上的所有动作,每种技术也都会由于自身的局限性导致你看到的数据是并不完美的数据。以计算页面停留时间为例,下图是一次访问的时间记录:(图示中时间皆为进入页面的时刻)

  

访问时间记录

  通常计算页面停留时间的方法为:当前页面的进入时刻与下一页面的进入时刻差。由此得知上例中页面的停留分别如下:

  页面A:5分钟

  页面B:1分钟

  页面C:4分钟

  页面D:?

  为什么页面D的停留时间没有?没错,无论哪种收集方式都无法捕捉到页面D的准确停留时间,原因很简单,这些数据收集方式都无法捕捉到访问者离开的时刻(或者在退出页停留了半天没做任何点击,或者直接关闭了浏览器)。所以不同的工具厂商对退出页的停留时间有不同的定义,有的统一计算为1分钟,有的干脆认为是0分钟。

  目前主要有下面几种技术或限制数据的获取,或混淆现有收集到的数据。

  1. 缓存

  这里说的缓存不是指物理芯片例如CPU的缓存,而是为了节约网络资源,提高浏览网页速度建立的浏览器缓存或代理服务器缓存。简单的理解这两种缓存就是,将曾经访问过的网页内容(包括图片以及cookie文件等)存放在电脑或代理服务器里。当你调用以前阅读过的页面时,可以直接调出缓存中的内容,而不需要再次从网站服务器上重新传送数据。

  下图就是访问一个网站后本地缓存文件夹中留下的文件记录:

  

缓存文件

  由于当访问者通过本地缓存访问网站时,并不会往网站服务器发送请求,服务器中自然也就不存在这次访问的Log记录。也就是说通过Web日志收集到的数据一定会丢失这部分流量。

  2. 网络爬虫

  如果想要讲清搜索引擎爬虫的原理和算法恐怕单开一个章节都不够,而且也不是这本书关注的内容,所以这里就不再赘述。

  下面先给出一条网站服务器Log中的搜索引擎爬虫记录:

  203.208.60.178 [10/Nov/2011:12:00:00 +0800] "-" "GET /index.php HTTP/1.1" 200 30000 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

  从上面log记录可以看出:2011年11月10日 12:00:00的时刻,Google的Googlebot(Google的搜索引擎爬虫名)到访并抓取了首页/index.php。

  这意味着Web日志收集的数据中会混有这部分数据。同时需要提醒的是,爬虫对网站服务器的造访仅仅为了下载抓取主要信息,网页内容并不会像网友访问时在浏览器里得以展示;换句话说,也就是此时网页源代码里的JavaScript数据收集代码是无法执行的。

  3. 防火墙

  由于防火墙的原理机制比较复杂,这里就不做详细解释,有兴趣的可以从维基百科或别的资源了解。

  简单的理解防火墙功能,可以认为它就是在网络中根据信任程度的高低,控制来回传送的数据流。它就像一张过滤网时刻监督过滤试图通过它的数据流。

  

防火墙

  防火墙给网络带来安全的同时可能会阻止JavaScript脚本向数据收集服务器发送数据。这无疑又会使JavaScript标记丢失一部分流量。

  二、 访问者理想化

  网站分析主要为了跟踪访问者在网站上的行动,但往往又被访问者对个人电脑的行为所影响。也许这就是理想与现实的差距,因为你不能要求所有的网友都按照你想要的方式在网上遨游。

  1. IP设置

  Web日志收集数据时主要依靠访问者的IP来区分唯一访问者,但当下面这种动态的IP分配方式出现时收集的数据出现误差就难免了。

  

IP设置

  一台机器使用不同的IP很可能会造成统计到的访问者要比实际的多。可以看出网站分析工具统计出的其实并不是真实的访问者人数,只不过是一个个IP或一个个浏览器罢了。所以更不用说当多个人使用同一台电脑时能否被正确统计了。

  2. JavaScript有效设置

  有些访问者为了确保安全可能会选择关闭浏览器里的JavaScript有效设置,这样失去的不止是一些网页特效;对采用JavaScript标记的工具商来说,失去的还有这部分访问者在目标网站上的所有行动记录。

  3. Cookie设置

  (1)禁用Cookie

  互联网的普及将人们带进全面的信息化社会,人们对个人信息的保护意识也逐渐强化起来。因为对隐私信息的敏感,一些人会选择禁用Cookie。

  

Cookie设置

  (上图可以看出Cookie的设置可以分为第一方Cookie和第三方Cookie两种设置,至于两种Cookie的区别有兴趣的可以查阅网上资料)

  离开Cookie,采用JavaScript标记将无法区分访问次数和唯一身份访问者人数,没有这两个基本度量,网站分析能做的也就不多了。所以说,Cookie的禁用对JavaScript标记收集数据是一个巨大打击。

  (2)删除Cookie

  人们经常会为了信息保护等原因删除Cookie。

  

Cookie删除

  定期或不定期删除Cookie直接会导致唯一身份访问者人数比实际人数要多。因为如果Cookie删除后会被重建一个新的Cookie,这样对同一个访问者会被重复统计。

  (3)多浏览器

  即使是同一网站也会根据浏览器的不同在同一台电脑中设立不同的Cookie。

  

多浏览器

  从上图能看出当同一个访问者使用了三种不同的浏览器访问网站时,JavaScript标记会由于Cookie的不同将这一个人统计成三个人。

  面对看似如此糟糕的数据,我们能采取哪些措施规避误差数据带来的分析误区呢?

  三、如何面对不完美的数据

  前面的讨论中可以看出不仅不同的数据收集方式对统计结果有直接影响,很多技术因素和认为因素也会对统计结果产生各种影响。面对如此“糟糕”的数据,如何才能从中洞察到指引行动的方针呢?

  先来看下某段时间内Google Analytics统计和维析的统计结果

  

Google Analytics统计和维析的统计结果

  (注:以上报表只是为简单说明并非真实,数据与格式皆为虚构)

  第一眼看到这两个没有一条相同数据的报表会让人无所适从。到底该相信Google Analytics还是维析?如果你一直还在为这个问题苦恼,那得赶快悬崖勒马了。因为没有一种工具可以保证它收集到的数据是百分百准确,有限度的误差是无法避免的。下面如果换一种视角也许你就能发现这两个报表中共同的信息:

  

Google Analytics

  

维析

  可以看出,两个工具统计的数据都有一个相同的趋势:经过10月1日国庆假期短暂的流量低迷后,从5号开始流量逐渐回升。分析这个趋势背后的原因,比追究某一天的数字到底是多少要有意义的多。即使你拥有绝对正确的数字,但如果你不能从这些数字中发现有利于决策的可用信息,这些数字也是毫无意义的;趋势,却可以让你在数字的海洋里掌握正确的航向。

  四、如何得到你想要的

  1. JavaScript标记的放置

  JavaScript标记数据收集原理决定了:数据能否收集以及收集后的数据是不是你想要的,根本依赖于JavaScript标记代码是否能正确执行;这也意味着如果在数据收集环节走入误区,将给随之而来的分析工作带来不可修复的影响(访问者不会因为你犯下的数据收集错误而帮你再现历史访问过程)。

  放置JavaScript标记你至少需要注意:

  (1)不能漏标任何你想统计的页面

  JavaScript标记不同于Web日志收集数据,如果你一旦漏标某个页面,将失去所有访问者在这个页面的行动记录。

  (2)尽量将标记放在页面代码的最后

  由于访问者下载完页面代码后是从上至下依次执行,当将标记放在页面的头部位置时,JavaScript标记代码的执行不仅可能延缓页面的展现,而且当数据收集服务器出现故障时可能导致页面无法正常显示。所以为了不影响页面的快速正常显示,应该尽量将标记放在页面代码的最后(一般都放在之前)

  当然为了进行一些特殊统计时(例如页面链接的点击),还是需要将标记放在头部,以便在页面中可以对标记中定义的方法进行正常调用。

  2. 页面的唯一标识

  原则上页面的URL就是区分不同页面的标识,但由于动态页面的应用等原因,即使是同一页面也可能由于参数不同或大小写不一致导致被统计成不同的页面,这直接给分析带来困扰。下面就是同一个页面被统计成多个页面的报告样例:

  

样例报告

  为了对页面进行唯一标识,你可以采取以下行动:

  (1)设置默认页

  如果www.example.com 和 www.example.com/index.html都指向你的网站默认页,设置默认页后可以避免被分别统计成两个不同的页面。

  一般分析工具都会提供对默认页的设置接口,这里就不再一一赘述设置方法。

  (2)统一URL大小写

  由于Google Analytics等分析工具会因为URL中大小写的不一致将同一页面统计成不同URL的页面,为了避免这种情况,可以对统计后的数据设置过滤,将URL统一成大写或小写(一般分析工具都会提供数据过滤设置功能)。

  (3)过滤掉URL中多余参数

  因为动态网页的应用需求同一页面URL后可能会带有各种不同参数,这就导致分析工具将带有不同参数的URL统计成多个不同页面。可以通过对特定参数的过滤设置避免这种统计误差。例如设置排除上图报告样例中的testid参数,就可以将/Item.php?testid=1与/Item.php?testid=2统计为同一个页面。

  3. 过滤多余数据

  (1)IP过滤

  为了排除自己或测试人员的访问流量,可以通过对IP的过滤排除这部分流量。

  (2)子域过滤

  当只关注某一子域的流量情况时,可以通过对子域的过滤设置只包含这部分流量。

  上面介绍的只是常用的两种过滤设置,通常工具都会提供各种过滤设置接口以满足不同需求。

  附:应该向网站分析工具商了解的技术参数

  1. 有效访问时限(一般为30分钟)

  2. 每天强行截止访问的时间点(无论是否超过有效访问时限,通过这一时刻的访问都会被强行切断;一般为凌晨某时刻)

  3. 判断再访问者cookie的有效时间(这个时间内重复访问会被识别为再访问者;一般为一年或两年)

  4. 页面最后停留时间(一般默认为1分钟或0分钟;如果工具可以收集此数据需要咨询具体收集方法)

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

原文:http://blog.digitalforest.cn/wangzhanfenxi-shuju-buwanmei

分享到:
评论

相关推荐

    最新小程序个人健康数据管理系统的设计与实现+ssm.zip

    微信小程序“个人健康数据管理系统的设计与实现Ssm.zip”是一款基于Spring、Spring MVC和MyBatis(SSM)框架开发的微信小程序,专为健康管理和健身爱好者设计。该项目利用了微信小程序的广泛覆盖和便利性以及SSM框架...

    个性化智能推荐系统分析与调研.pdf

    (补充:⽤户画像,即⽤户信息标签化,就是企业通过收集与分析消费者社会属性、⽣活习惯、消费⾏为等主要信息的数据之 后,完美地抽象出⼀个⽤户的商业全貌作是企业应⽤⼤数据技术的基本⽅式。⽤户画像为企业提供了...

    数据结构、算法与应用:C++语言描述(原书第2版)第二部分

    5.1 数据对象和数据结构 5.2 线性表数据结构 5.2.1 抽象数据类型linearList 5.2.2 抽象类linearList 5.3 数组描述 5.3.1 描述 5.3.2 变长一维数组 5.3.3 类arrayList 5.3.4 C++迭代器 5.3.5 arrayList的一个迭代器 ...

    数据结构与算法:C++描述

    本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之算法、分枝定界算法等多种算法设计方法,为数据结构与算法的继续学习和研究奠定了一...

    大数据产业链构成解析.doc

    现实世界中的数据大多不完整或不一致,无法直接进行数据挖掘或挖掘结果不理想 ,需要对采集的数据进行填补、平滑、合并、规格化、检查一致性等数据预处理操作, 并且往往需要大量的人工参与,因此数据采集和清洗...

    数据结构算法与应用(C++语言描述).rar

    12.4 抽象数据类型Graph和Digraph 370 12.5 无向图和有向图的描述 371 12.5.1 邻接矩阵 371 12.5.2 邻接压缩表 373 12.5.3 邻接链表 374 12.6 网络描述 375 12.7 类定义 376 12.7.1 不同的类 376 12.7.2 邻接矩阵类 ...

    数据结构算法与应用 很详细的,数据结构算法全集 这个是你想找的

    303 10.1 引言 303 10.2 抽象数据类型WinnerTree 306 10.3 类WinnerTree 307 10.3.1 定义 307 10.3.2 类定义 307 10.3.3 构造函数、析构函数及Winner 函数 308 10.3.4 初始化赢者树 308 ...

    数据结构算法与应用-C++语言描述

    本书在简要回顾了基本的C++ 程序设计概念的基础上,全面系统地介绍了队列、堆栈、树、图等基本数据结构,以及贪婪算法、分而治之算法、分枝定界算法等多种算法设计方法,为数据结构与算法的继续学习和研究奠定了一...

    MIP2000通用信息管理平台XP标准版

    面向管理人员设计、无须编程的特点,是中小企事业单位信息化建设的一个理想工具。 MIP2000XP特点: “傻瓜”性 面向业务人员,无须学习复杂的程序设计语言,无须关心程序设计细节,无需要专业的编程知识,只需...

    微信小程序马拉松报名系统微信小程序+ssm.zip

    微信小程序“马拉松报名系统Ssm.zip”是一个基于...它不仅提供了一个便利的报名工具,还通过综合化的服务和智能化的管理,优化了赛事的组织和运营流程,提升了赛事的质量和跑者满意度,是现代体育赛事管理的理想选择。

    数据结构(C语言描述)

    12.4 抽象数据类型Graph和Digraph 370 12.5 无向图和有向图的描述 371 12.5.1 邻接矩阵 371 12.5.2 邻接压缩表 373 12.5.3 邻接链表 374 12.6 网络描述 375 12.7 类定义 376 12.7.1 不同的类 376 12.7.2 邻接矩阵类 ...

    微信小程序家庭大厨微信小程序+ssm.zip

    SSM项目小程序“家庭大厨微信小程序Ssm.zip”是一个基于Spring、...它不仅提供了一个便利的食谱查询和厨房管理工具,还通过综合化的服务和智能化的管理,提升了用户的烹饪体验和饮食质量,是现代家庭厨房的理想伴侣。

    微信小程序体育资讯软件的实现+ssm.zip

    微信小程序“体育资讯软件的实现Ssm.zip”是一款基于...它不仅提供了一个便利的体育资讯工具,还通过综合化的服务和智能化的管理,满足了不同用户的体育信息需求,提升了用户体验,是现代体育信息服务的理想选择。

    微信小程序电子竞技信息交流平台+ssm.zip

    微信小程序“电子竞技信息...它不仅提供了一个便利的电子竞技信息获取工具,还通过综合化的服务和智能化的管理,满足了电竞爱好者的信息需求和交流欲望,提升了用户的参与度和体验感,是现代电子竞技领域的理想选择。

    微信小程序在线投稿系统+ssm.zip

    SSM项目小程序“微信小程序在线投稿系统Ssm.zip”是一个基于Spring、Spring ...它不仅提供了一个便利的在线投稿工具,还通过综合化的服务和智能化的管理,优化了投稿和审稿流程,是学术出版和内容创作领域的理想选择。

    微信小程序居住证申报系统+ssm.zip

    7. **数据统计分析**:后台系统对申请数据进行统计分析,帮助管理者了解申请趋势和办理效率。 8. **安全保护**:确保用户数据的安全性和隐私性,采取加密措施保护个人信息不被泄露。 整个系统以微信小程序为前端,...

    ssm项目小程序基于微信小程序的周边美食推荐系统_2axo8.zip

    SSM项目小程序基于微信小程序的周边美食推荐系统_2axo8.zip是一个使用Spring、Spring ...它不仅提升了用户的用餐体验,还为餐厅提供了强大的后台管理和数据分析工具,是现代餐饮业提升服务质量和经营效率的理想选择。

    微信小程序作品集展示微信小程序+ssm.zip

    6. **数据分析**:后台统计作品的访问量和用户行为数据,帮助创作者了解受众喜好,优化作品方向。 整个系统以微信小程序为前端,便于用户随时随地访问和使用;后端采用SSM框架,确保了数据处理的效率和稳定性。它...

    微信小程序电影院订票选座小程序+ssm.zip

    微信小程序“电影院订票选座小程序Ssm.zip”是一个基于Spring、Spring MVC和...它不仅提供了一个便利的在线购票工具,还通过综合化的服务和智能化的管理,提升了用户的购票体验和满意度,是现代电影爱好者的理想选择。

Global site tag (gtag.js) - Google Analytics