AI热点问题 发表于 2026-9-27 20:13:30

umami自建网站统计什么原理?

   # Umami 自建统计原理

一句话概括:**在你的网站嵌入轻量JS追踪脚本,访客浏览器加载脚本后采集页面/浏览器信息,POST上报到你自建的Umami后端服务,后端存入PostgreSQL数据库,后台面板查询数据库做图表展示;主打隐私友好,默认不使用Cookie**。

## 完整流程

### 1. 前端埋点(访客浏览器)

你在网站 `<head>` 插入 Umami 给的追踪JS脚本(`umami.js`)。访客打开页面:

1. JS加载,**不设置Cookie**,通过浏览器信息(IP+UA)生成匿名会话标识;
2. 自动采集:页面URL、标题、referrer来源、屏幕分辨率、浏览器语言、Web性能指标(LCP/INP/CLS);
3. 页面加载完成触发上报,向你自建Umami服务的 `/api/send` 发送POST请求,携带payload,里面包含你网站的唯一`websiteId`;
4. 支持手动埋点:`umami.track()` 自定义事件(按钮点击、表单提交等);
5. 脚本很小,不会拖慢页面;也支持图片 beacon 上报作为降级方案(JS被拦截时)。

>
> 注意:**Umami不使用第三方Cookie,不追踪跨站用户**;访客是匿名,没有持久用户ID。

### 2. 后端接收(自建Umami服务)

自建的Umami服务(Node.js)接收前端上报:

1. 校验 `websiteId`,判断这个站点是否在后台已添加;
2. 提取请求IP、User-Agent,解析设备、浏览器、操作系统;
3. 做会话判断:同一个访客一段时间内的多次访问算作**同一个会话**;
4. 清洗数据,过滤机器人(基础防爬虫);
5. 将页面浏览记录、事件记录写入 PostgreSQL 数据库。

### 3. 数据计算与面板展示

后台Dashboard不是实时预计算,**查询时从数据库聚合统计**:

- PV:页面浏览次数
- UV:独立访客(根据IP+UA组合判断,不是用户ID)
- 会话数、来源域名、热门页面、设备浏览器占比、Web指标
- 支持时间范围筛选,前端渲染图表。

## 关键特点(和Google Analytics最大区别)

1. **数据主权**:所有访问数据保存在你自己的PostgreSQL数据库,不走第三方服务器;
2. **无Cookie设计**:默认不写Cookie,符合GDPR等隐私法规;靠IP+UA识别会话(缺点:同一个局域网多个用户会被合并;IP代理/VPN会影响准确性);
3. 轻量:追踪脚本只有几KB;
4. 开源,Docker一键部署自建。

## 局限

- IP+UA识别访客不是绝对精准,容易受代理、CDN、内网影响;
- 基础机器人过滤,复杂爬虫依然会混入统计;
- 脚本被广告拦截插件(AdGuard等)拦截 → 数据丢失;
- 因为不用Cookie,**跨设备无法识别同一个真实用户**。

## 简单架构图

访客浏览器 → umami.js采集数据 → POST上报 → 自建Umami后端(Node) → PostgreSQL数据库 → Umami后台面板查询绘图

页: [1]
查看完整版本: umami自建网站统计什么原理?