目前主流的网站分析工具一般都是通过JavaScript检测的方式进行访问监控的,包括商业产品(Omniture/JYC统计)、免费产品(GA/百度统计/CNZZ)、开源产品(Piwik)。虽然说原理大致相同,但是不同的工具在一些基础的统计方法上方式还是有一些微妙的差别。譬如,你在使用多种网站分析工具对同一个网站进行监控时,经常会发现不同的工具给出的Visits总是会有差异(绝对数量有差异,但趋势一致)。即使理论上所有外部条件都一样,这种差异也是会存在的。这是因为不同网站分析工具在Cookie的使用和访次切分的策略有一些差异。

Visits是网站分析的基础,因此有必要不深入了解一下里面的“秘密”。

在展开这个话题之前,有必要做一些科普性的介绍,当然如果你精通javascript和cookie,完全可以跳过这一段。

两种不同的Cookie:

  • 第一方Cookie:由您浏览器访问的网站所设置。
  • 第三方Cookie:由您所浏览器访问网站的合作伙伴设置而成,通常通过嵌入javascript的方式实现。安全级别比第一方Cookie要低。

Cookie跨域访问问题:

  • 网页中嵌入的第三方javascript有权限读取和设置第一方cookie和第三方Cookie。
  • 当浏览器打开某个网站(如:abc.com/index.html)时,在发起HTTP请求时,只会携带abc.com域下的Cookie(第一方Cookie)。
  • 网页中嵌入的第三方javascript可以向第三方服务器发起HTTP请求,在发起HTTP请求时,只会携带第三方域下的Cookie(第三方Cookie)。

基于javascript网站监控:

当网民访问一个安装了监控代码(javascript)的网页时,web浏览器会发送两个HTTP请求(如下图)。

  • 根据浏览器地址栏的url,访问网站服务器(abc.com),此HTTP请求会携带abc.com域名下Cookie(第一方Cookie)
  • 当网页加载完成后,监控代码中的javascript将会被执行,javascript获取referer、第一方Cookie(跨域)、第三方Cookie等信息,组装HTTP请求包后向监控服务器(stat.xxx.com)发送数据。

科普的知识介绍完了,如果你还是有不太理解的地方,建议Google或Baidu一下,这会对你了解网站分析工具非常有帮助。

Cookie的使用,GA vs 百度统计 vs Piwik vs JYC统计:

  • GA:第一方Cookie
  • 百度统计:第一方Cookie+第三方Cookie
  • Piwik:第三方Cookie
  • JYC:第一方Cookie(默认)和第三方Cookie均可(用于跨域识别),可根据企业需求自行选择。

GA的Cookie设置及访次切分规则

在默认的配置和使用情况下,Google Analytics(分析)仅会设置表中的4 个 Cookie。(详见:http://code.google.com/intl/zh-CN/apis/analytics/docs/concepts/gaConceptsCookies.html)

名称 用途 有效期 类型
__utma Visitor Identifier 2 年 第一方Cookie
__utmb Visit(Session) Identifier 30 分钟 第一方Cookie
__utmc Visit(Session) Identifier Session 第一方Cookie
__utmz Campaign Values 6 个月 第一方Cookie

如果访客在网站上处于非活动状态的时间超过30 分钟(__utmb失效),或者退出了浏览器(__utmc失效),那么这次Visit将结束。无论缺少__utmb或__utmc,GA都会确定开始新的Visit。GA允许你使用 _setSessionCookieTimeout() 方法自定义默认会话时间的长度。

GA Cookie详情:

(1)__utma ,Visitor识别Cookie

通常来说“Time of initial”<“Beginning of previous session”<“Beginning of current session”,但由于这三个时间戳都是由客户端javascript计算得到的,所以三个值并没有严格的顺序关系,在访客操作系统时间出现误差时,有可能出现“Beginning of previous session”>“Beginning of current session”的情况。因此“Time of initial”、“Beginning of previous session”、“Beginning of current session”这三个跟访问相关的时间戳在GA服务器端统计时,只是作为visit unique id使用,并没有统计时间上意义。

Session counter就像它的名字一样就是用来计数的,记录当前访客访问此网站的次数。

(2)__utmb && __utmc,Visit识别Cookie

以上是早些__utmb 和 __utmc的值,非常简单只有Domain Hash的值。从最新GA的Cookie来看,__utmb已经有所变化。

如上图,最新的__utmb包含domain_hash.current_session_pageviews.unknown.current_session_inittime。第三个字段暂时不知道
是什么意思,在我的Firefox和Opera浏览器始终是10,你是知情人的话,请留言,谢谢。

(3)__utmz,来源识别Cookie(Google官方称之为Campaign Values)

__utmz主要是用于记录访客流量来源数据。GA在访客回访时,会根据前后两次的来源决定Visit的“来源归属”。Visit来源归属决策遵循以下规则:

  • 投放活动永远能覆盖别的渠道
  • 自然搜索永远能覆盖别的渠道
  • 推介网站永远能覆盖别的渠道
  • 直接输入永远覆盖不了别的渠道

百度统计的Cookie设置及访次切分规则

百度统计使用了两种Cookie,第三方Cookie用于识别访客,第一方Cookie。

名称 用途 有效期 类型
HMACCOUNT Visitor Identifier,全局唯一 永久 第三方Cookie,hm.baidu.com域
Hm_lvt_siteid

记录访客当前访问序列的开始时间,如果没有设置这个cookie,则访客为新访客。当本次访问是一个新的访问开始时,更新该cookie为当前时间。

1年 第一方Cookie
Hm_lpvt_siteid 当前浏览页面时的时间,每次浏览时设置该cookie为当前时间。 Session 第一方Cookie

在百度统计中,以下三条任意一个条件成立,则认为是一个新访次。

  • 流量来源(referer)为非本站
  • Hm_lpvt_siteid为空
  • 服务器端进行计算,一个visit超过30分钟没有流量,结束当前访次

百度统计对Cookie的使用非常简单,多数的状态信息存储和计算在服务器端进行。这种数据构架方式,对服务器端的统计程序来讲无疑是非常大的挑战(有机会我会单独写一篇文章介绍一下)。

补充:百度统计对于Visit来源归属决策是采用强制覆盖的方式。

Piwik的Cookie设置及访次切分规则

名称 用途 有效期 类型
piwik_visitor 天书 2年 第三方Cookie

1%3DYTo2OntpOjE7czozMjoiNDhmODY0MTlhOWUyNmIxYTBlYWI4MjU3NmI4NjgyMmQiO2k6MjtpOjEyOTM3MDI3Njc7aTozO2k6MTI5MzcwMjc2NztpOjQ7czoxOiI3IjtpOjU7czoxOiIyIjtpOjExO2k6MTt9%3A_%3Df755e0a15992cbfa6715890342520e0daa1c562b

上面是一个完整的piwik_visitor Cookie的值,看完后你一定很崩溃,真是又臭又长。还好Piwik是一款开源的工具,不然我这辈子是不能指望能理解上面这段天书的意思了。将“天书”解密,我们会看到它的真实面目。

piwik_visitor解密后是一个多维数组,形式如piwik_visitor[siteid][key],针对某个siteid,有以下几个key-value对。

key名称 用途 备注
IDVISITOR  Visitor Identifier 2年
TIMESTAMP_LAST_ACTION 当前Visit最近一次行动(浏览)时间 GA使用第一方Cookie,都是由js进行设置。而Pikiw中的Cookie是由服务器端来设置的,因此TIMESTAMP是服务器端的时间。
TIMESTAMP_FIRST_ACTION 当前Visit第一次行动(浏览)时间
ID_VISIT Visit Identifier
ID_LAST_ACTION 上一次行动ID
REFERER_TIMESTAMP 来源时间
REFERER_NAME  来源名称
REFERER_KEYWORD 来源关键词
VISITOR_RETURNING 访客类型new or return

Piwik新访次判断条件:

  • 访问来自于一个新访客。
  • TIMESTAMP_LAST_ACTION离当前时间超过30分钟

是否新访客,取决是否存在piwik_visitor Cookie,以及Cookie解密后一些合法性的检查。对于第一步检查失败,本应沦为“新访客”的可怜虫,Piwik还提供了一个非常温馨的选项 “enable_detect_unique_visitor_using_settings”。如果 enable_detect_unique_visitor_using_settings设置打开,那么Piwik会根据你当次的ip、浏览器、操作系统等属性在所有的历史记录中寻找你活动的痕迹,如果能匹配到,那么你就有了“旧访客”的身份了(当然这个是以牺牲性能为代价的)。

Piwik使用一个独立第三方的Cookie来管理所有站点信息,适用于单个或少量站点的使用,对于需要监控多个站点的使用者来说存在一定的风险。

JYC统计的Cookie设置及访次切分规则

key名称 用途 类型 备注
www%5Fadjyc%5Fcom  Visitor Identifier唯一 第一方Cookie 永久

Cookie值:2019101912091455923781394代表2019年10月19日12时9分14秒+随机位数,共25位。

JYC新访次判断条件:

  • 访问来自于一个新访客。
  • 如果f访客第二天访问,发现存在key值,则为老访客,否则为新访客。

评价与总结

GA:

  • [Cookie]充分、大胆的使用Cookie进行信息存储。
  • [访次切分]访次切分的设计比较合理。
  • [备注]基本成为业界的标准。

百度统计:

  • [Cookie]Cookie使用上还不够大胆。
  • [访次切分]访次切分依赖于来源判断,相对于GA的统计方法容易出现访次虚高的现象。
  • [备注]Cookie中没有保持任何访次的状态信息,那么统计程序需要保存所有没有结束的Visit的状态信息。对于每天上亿访次服务来讲,长远来看这种设计的性能和扩展性无疑会受到非常大的挑战。

Piwik:

  • [Cookie]Cookie加密验证的方式一定程度上减轻了Cookie的存储量,也提高了恶意攻击者伪造Cookie成本。但Piwik将所有的信息保存在第三方Cookie中,多站点情况下有Cookie溢出的风险。
  • [访次切分]访次切分规则GA非常类似。
  • [备注]适合单个小流量站点的监控,统计和查询算法性能很差。

JYC:

  • [Cookie]充分、大胆的使用Cookie进行信息存储。
  • [访次切分]访次切分的设计比较合理,新老访客直观识别。
  • [备注]国内创新统计审计监控,支持鼠标轨迹录像功能,独有算法技术、轻松支持日均百万流量PV。

相关参考https://developer.aliyun.com/article/31470,并调整。

GA/百度统计/Piwik/JYC:网站分析工具的Cookie设置和访次切分规则相关推荐

  1. seo必备网站分析工具,关键词百度搜索结果查询导出源码

    seo必备网站分析工具,关键词百度搜索结果查询导出源码 两个简单的版本,关于百度搜索结果的采集抓取,可以获取到竞争对手的网站,加以分析和研究,只需输入关键词和搜索页码,即可完成对于竞争对手的获取和研究 ...

  2. 网站分析工具使用方法的介绍,快速高效提高网站分析效率

    网站运营离不开数据分析,有分析就需要借助工具来实现,你真的会用网站分析工具吗? 目前市面上有很多不同类型的网站分析工具,有免费的和付费的,常见的工具比如GoogleAnalytics.百度统计.99c ...

  3. 国外主流网站分析工具介绍

    英语原文地址: [url]http://www.hit-counter-download.com/web-stats.html[/url] 今天无意间发现的这个网址,里面介绍了国外的主流网站分析工具. ...

  4. [转载]网站分析的最基本度量(3)——网站分析工具如何辨别UV

    [转载自]http://www.chinawebanalytics.cn/%E7%BD%91%E7%AB%99%E5%88%86%E6%9E%90%E7%9A%84%E6%9C%80%E5%9F%BA ...

  5. 添加百度统计,有利于网站SEO,百度终于发声了

    一直以来站长圈都流传添加百度统计,特别是从百度竞价后台添加百度统计有助于百度SEO优化,能提升网站流量.今日百度官方公众平台发出关于这一说法的详细说明,感觉获益良多. 用百度统计首先可以明确一点,百度 ...

  6. 百度统计搜索词是广告怎么办?建议设置过滤规则排除

    最近经常在百度统计中看到有很多垃圾广告的搜索词,甚至连 Top 搜索词.Top 来源网站.Top 入口页面中都出现很多垃圾广告.比如老古的一个测试网站就出现这种情况,具体如下图所示: 据了解,网络上有 ...

  7. 《流量的秘密: Google Analytics网站分析与优化技巧(第3版)》一2.2 网站分析中的cookie...

    本节书摘来自异步社区<流量的秘密: Google Analytics网站分析与优化技巧(第3版)>一书中的第2章,第2.2节,作者[英]Brian Clifton,更多章节内容可以访问云栖 ...

  8. 建站必备SEO工具和网站分析工具

    Seo是一种廉价的推广手法,做的好能在短时间内给你带来不错的流量.正如我在上篇文章中说的只有通过网站分析才能够了解自己的一些不足,分析方法很多.从中我也介绍了谷歌的Google Analytics流量 ...

  9. 网站分析-网站分析工具-免费网站分析软件

    网站分析,很多做SEO的朋友一听到网站分析就不知道从何下手,为什么不知道从何下手?因为没有掌控到网站足够多的数据.今天给大家分享一款免费的网站数据分析工具,快速抓取网站的所有数据进行分析详细参考下图. ...

最新文章

  1. Python入门学习笔记13(线程锁与信号量)
  2. QT的QQmlPropertyMap类的使用
  3. 密码学基本概念(一)
  4. spark中一些不是很有意义的数据结构
  5. Java 数组在内存中的结构
  6. 纯Java代码 图片压缩
  7. jq 获取当时时间的到秒_js(jQuery)获取时间的方法及常用时间类
  8. springboot毕设项目青年公寓租房管理系统2b730(java+VUE+Mybatis+Maven+Mysql)
  9. 7.26 1004度度熊的午饭时光 百度之星题解
  10. html 组件化 编辑器,纯前端表格控件SpreadJS V14.0发布:组件化编辑器+数据透视表...
  11. python 解析pys文件,并将其写入txt和excel文件
  12. 禁区——不要走入政府采购的“黑名单”
  13. Linux FTP服务器虚拟用户登录
  14. c语言——socket编程
  15. 创建数据库的相关命令与字符类型
  16. BIRT 使用说明书
  17. 遥感卫星影像数据全色波段和多光谱波段
  18. 只是为了好玩——Linux之父林纳斯自传
  19. 不做人生规划,你离挨饿只有三天(转)
  20. c 语言将字符串保存至文件,将带有char *字符串的C结构保存到文件中

热门文章

  1. 【RuTracker使用教程】
  2. node mocha_使用Mocha和Chai测试Node RESTful API
  3. 百度服务器自动重启,百度云服务器重启的两种方法介绍
  4. “跑路风波”的内在缘由?P2P网络信贷将何去何从?
  5. 计算机应用大学排名,计算机应用技术专业大学排名 2020全国排行榜
  6. 给服务器写一个简单的断网重连shell脚本
  7. Echarts角锥柱形图
  8. day02-Java基础语法
  9. 基于stm32f103rct6(秉火mini板)的rc522RFID读卡例程
  10. 万字报告拆解:Web3 浪潮风靡,NFT 找到新增长点,AIGC 如火如荼