不完美的网站分析数据

不完美的网站分析数据

2012年11月05日 |  作者 数码林 |  互联网热门转载网站分析

一、 技术理想化

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

访问时间记录

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

页面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标记代码的执行不仅可能延缓页面的展现,而且当数据收集服务器出现故障时可能导致页面无法正常显示。所以为了不影响页面的快速正常显示,应该尽量将标记放在页面代码的最后(一般都放在</body>之前)

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

       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

CSDN海神之光上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b或2023b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博客文章底部QQ名片; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪(CEEMDAN)、数字信号调制、误码率、信号估计、DTMF、信号检测识别融合、LEACH协议、信号检测、水声通信 1. EMD(经验模态分解,Empirical Mode Decomposition) 2. TVF-EMD(时变滤波的经验模态分解,Time-Varying Filtered Empirical Mode Decomposition) 3. EEMD(集成经验模态分解,Ensemble Empirical Mode Decomposition) 4. VMD(变分模态分解,Variational Mode Decomposition) 5. CEEMDAN(完全自适应噪声集合经验模态分解,Complementary Ensemble Empirical Mode Decomposition with Adaptive Noise) 6. LMD(局部均值分解,Local Mean Decomposition) 7. RLMD(鲁棒局部均值分解, Robust Local Mean Decomposition) 8. ITD(固有时间尺度分解,Intrinsic Time Decomposition) 9. SVMD(逐次变分模态分解,Sequential Variational Mode Decomposition) 10. ICEEMDAN(改进的完全自适应噪声集合经验模态分解,Improved Complementary Ensemble Empirical Mode Decomposition with Adaptive Noise) 11. FMD(特征模式分解,Feature Mode Decomposition) 12. REMD(鲁棒经验模态分解,Robust Empirical Mode Decomposition) 13. SGMD(辛几何模态分解,Spectral-Grouping-based Mode Decomposition) 14. RLMD(鲁棒局部均值分解,Robust Intrinsic Time Decomposition) 15. ESMD(极点对称模态分解, extreme-point symmetric mode decomposition) 16. CEEMD(互补集合经验模态分解,Complementary Ensemble Empirical Mode Decomposition) 17. SSA(奇异谱分析,Singular Spectrum Analysis) 18. SWD(群分解,Swarm Decomposition) 19. RPSEMD(再生相移正弦辅助经验模态分解,Regenerated Phase-shifted Sinusoids assisted Empirical Mode Decomposition) 20. EWT(经验小波变换,Empirical Wavelet Transform) 21. DWT(离散小波变换,Discraete wavelet transform) 22. TDD(时域分解,Time Domain Decomposition) 23. MODWT(最大重叠离散小波变换,Maximal Overlap Discrete Wavelet Transform) 24. MEMD(多元经验模态分解,Multivariate Empirical Mode Decomposition) 25. MVMD(多元变分模态分解,Multivariate Variational Mode Decomposition)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值