UV
定义
独立访客指的是在设定的时间区间内访问某个站点或应用的不重复用户人数。行业内普遍以自然日作为统计周期,即对当日0时至24时的访问记录按访客身份去重,同一个人当天多次到访仍只算作1个独立访客[4][5]。统计周期也可以拉长到一周或一个月,此时通常表述为「周独立访客数」「月独立访客数」,而年度UV一般不作计算。
该指标与页面浏览量(PV)、独立IP数构成一组常见的流量度量。PV记录的是页面被打开或刷新的次数,一个人反复刷新就能把PV推高;UV记录的是到访的不同人数;独立IP数统计的是访问来源的不同网络地址数量[6]。三者的口径差异,使它们常被并列使用,以互相校验流量数据的结构。
与其他两个指标相比,UV的口径最贴近「有多少人来过」。当站点的一份页面被同一位访客浏览多次时,PV随之增加,UV保持不变,这也是运营分析中把UV作为用户规模代理指标的原因[4]。
原理
独立访客统计的核心问题是去重,即如何判断两次访问请求是否来自同一个人。由于站点无法直接识别现实中的个人,统计系统需要在访问方留下一个可回收的标记,并在后续请求中读取该标记完成比对。常用的标记包括浏览器Cookie中写入的唯一编号、本地存储中的令牌、设备标识,以及在无法写入标记时退而使用的IP地址与浏览器标识组合[1]。
以Cookie方案为例,访客首次请求站点时,统计服务会在其浏览器中写入一个带有唯一编号的Cookie;此后该浏览器再访问同一站点,服务端读回同一编号,就判定为已记录过的访客,不再累加[7]。这一机制决定了UV并不随IP变化而变化:访客切换网络、重新拨号取得新地址后重新访问,只要Cookie仍在,计数不会增加;反之,清除Cookie或更换设备,则会形成一个新的独立访客记录[2]。
当Cookie缺失或被禁用时,统计工具会启用备用识别规则。以CNZZ为例,取不到访客Cookie时会结合IP地址与浏览器的UA标识来判断身份,使同一位访客更换上网方式导致的地址变动不至于造成重复计数[3]。这种组合识别在一定程度上缓解了标记缺失的问题,但只能降低误差,不能彻底区分同一设备背后的不同使用者。
在海量数据场景下,逐条保存访客标识再求并集的精确算法开销过高,业界转而采用概率型基数估计算法。HyperLogLog通过把每个访客标识哈希成二进制串、统计前导零的分布来反推集合基数,占用的内存大致固定,误差处于可接受区间,因此被广泛用于UV类的去重计数[8][9]。
标准HyperLogLog的估计量可写为 $\hat{n} = \alpha_m m^2 \left( \sum_{j=1}^{m} 2^{-M[j]} \right)^{-1}$,其中 $m$ 为寄存器个数,$M[j]$ 为第 $j$ 个寄存器记录的前导零长度,$\alpha_m$ 为与寄存器数量相关的修正系数[10]。寄存器越多,误差越小,代价是内存占用上升。
flowchart LR
A[访客访问站点] --> B{能否读取访客标识}
B -- 已有Cookie/设备标识 --> C[判定为已记录访客]
B -- 无标识 --> D[写入新标识并记为新增访客]
B -- Cookie被禁用 --> E[按IP与UA组合识别]
C --> F[计入当期UV]
D --> F
E --> F
F --> G[汇总或近似估计输出]
发展历程
UV这一指标伴随Web站点的流量计量需求出现。早期站点主要依赖服务器日志统计请求数与独立IP数,前者无法区分人与页面,后者又会因共享出口地址而低估人数,于是以访客身份去重为核心的独立访客统计逐步成为站长的常规口径[6]。
2011年前后,国内统计服务商开始系统性地公开排重规则。CNZZ在改版的全景统计中说明,时段分析里的独立访客与独立IP均以Cookie为计算依据,排重周期取自然日,同一Cookie当日多次到访只计1次;同时对不同来路的访客分别排重,因此各来路访客相加未必等于站点总访客[11]。
2012年,CNZZ在指标算法调整说明中进一步区分了新旧版本的识别逻辑:旧版在取不到Cookie时按PV记录访客数,容易重复计数;新版改为结合IP与UA识别,同一访客更换IP不再导致重复计数[3]。此后,活跃访客数、融合访客数等细化指标陆续出现,前者按一方Cookie去重,后者按三方Cookie去重,用于跨域名的访客合并场景[12]。
在计算侧,UV的统计方式也由明细存储转向近似估计。HyperLogLog被引入大数据与缓存系统后,UV、独立设备数等去重计数可以固定内存完成;其发明者Philippe Flajolet的姓名首字母也留在了相关命令的前缀中[9]。
应用
独立访客数最基本的用途是衡量站点的用户触达规模。运营与市场部门用它评估推广带来的新增人群,与PV、访问次数、平均停留时长等指标配合,判断流量的量与质[4]。在报表体系中,人均浏览页数即由浏览次数除以独立访客得到,用于观察访客对内容的浏览深度。
内容平台与电商站点常用日UV、月UV描述活跃规模。以淘宝、天猫首页为例,其首页UV在高峰时期日均可达亿级,这类量级的去重统计难以用集合逐条存储,通常借助Redis的HyperLogLog数据结构完成,每个统计键约占12KB内存[13]。
在数据仓库与实时分析系统中,UV被作为典型的基数统计需求实现。Apache Doris等系统提供HLL列类型与聚合函数,建表时将相关列设为HLL并在查询时聚合,即可在1%至2%的误差范围内得到近似UV,避免精确去重带来的计算与存储开销[8]。
独立访客数据也是第三方网站分析工具的常规输出。分析人员通过统计后台或分析工具查看不同时间粒度、不同来源渠道的访客数,并以此比较渠道效果;同一套数据还可用于观察新老访客的构成,历史上首次到访的访客被单独列为新独立访客[4]。
局限
独立访客数并不等于真实到访的自然人数量。统计工具识别的是设备或浏览器留下的标记,同一台电脑由不同的人先后使用,会被合并计为1个访客;同一个人用手机和电脑分别访问,则会被计为2个访客。这类偏差来自识别手段本身,无法通过增加统计代码消除。
浏览器设置会直接影响统计结果。禁用Cookie的访客只能靠IP与UA组合识别,识别精度下降;第三方Cookie的禁用比例明显高于第一方Cookie,因此依赖三方Cookie的跨站访客统计更容易失真。不同统计工具采用的识别规则与排重周期不一致,同一站点的UV数据在不同后台之间出现差异属于常见现象[14]。
UV与独立IP数之间也不存在固定的大小关系。局域网内多台设备共用一个对外地址时,UV会高于IP数;家庭宽带频繁断线重拨导致地址变化时,IP数则可能高于UV[2]。因此两个指标不能互相替代,任一方偏高或偏低都需要结合网络环境解释。
此外,UV在多维分析中具有不可加性。同一访客可能在不同日期、不同渠道重复出现,把各日或各渠道的UV直接相加会重复计算同一个人,跨周期、跨维度的合并必须重新去重而非简单累加。采用概率算法估算时,结果还带有一定的统计误差,只适合对精度要求不高的规模判断[8]。
参见
-
页面浏览量 —— 记录页面被打开或刷新次数的流量指标,与独立访客数常并列使用。
-
独立IP数 —— 按访问来源的网络地址去重得到的计数,识别口径与独立访客不同。
-
Cookie —— 网站写入浏览器的本地数据,是多数统计工具识别访客身份的主要依据。
-
HyperLogLog —— 用于海量数据基数估计的概率算法,常用于UV等去重计数。
-
网站分析 —— 对站点流量与访客行为进行测量和解读的实践领域。
参考资料
- 独立访客 [引用日期2026-10-29]
- IDC的一些事儿吧:ip,pv,uv,vv的含意与区别 [引用日期2026-10-29]
- “独立访客”等指标的统计算法变更说明_帮助中心_数据专家cnzz.com [引用日期2026-10-29]
- 名词解释_帮助中心_数据专家cnzz.com [引用日期2026-10-29]
- PV、UV分别是什么意思? [引用日期2026-10-29]
- 网站统计中的PV(访问量):UV(独立访客):IP(独立IP)的定义与区别 [引用日期2026-10-29]
- 网站常用专有名词 [引用日期2026-10-29]
- HLL 近似去重 [引用日期2026-10-29]
- HyperLogLog [引用日期2026-10-29]
- HyperLogLog 算法的原理讲解以及Redis是如何应用它的 [引用日期2026-10-29]
- 亮点介绍(八):排重机制_帮助_全景统计_商业媒体统计_广告联盟_数据专家cnzz [引用日期2026-10-29]
- 快速找到所需文档,高效完成接入与排障 [引用日期2026-10-29]
- 第八章 HyperLogLog使用 - RookieCyliner [引用日期2026-10-29]
- 安装上CNZZ 网站统计却发现与其它网站统计数据不符? [引用日期2026-10-29]