跳到正文
Privatus Analytics

隐私

无 Cookie 分析如何在不跟踪个人的情况下进行统计

我们做出的每一项隐私声明都有技术解释。本页准确说明一次页面浏览会经历什么、我们存储什么、绝不存储什么,以及您如何自行核实。

不必只听我们说

这些工具由其他组织运营。每个链接都会重新扫描本网站,所以您看到的是今天的结果,而不是我们挑选的截图。

数据流程

每个访客请求,包括来自欧盟、欧洲经济区、英国和瑞士的请求,都在我们的美国区域处理。IP 地址和用户代理仅在处理请求期间在内存中使用,并在存储最小化后的事件之前丢弃。

  1. 第 1 步 · 任何地方
    访客的浏览器
    • 页面 URL 和引荐来源
    • UTM 参数
    • 屏幕宽度和语言
    • 您的自定义事件属性
    • 没有 Cookie,也没有本地存储,访客自己的退出选择除外
    • 没有指纹识别 API
    • 没有第三方请求
  2. 第 2 步 · 美国
    采集,在内存中
    • 来自 Cloudflare 标头的国家/地区
    • 用户代理 → 浏览器、操作系统、设备
    • 机器人检查和您的流量规则
    • 内存中的访问密钥
    • IP 地址在请求结束后丢弃
    • 完整的用户代理在请求结束后丢弃
    • PII 已脱敏,查询字符串已裁剪
  3. 第 3 步 · 在美国区域排队
    最小化后的事件
    • 仅最小化后的事件
    • 没有 IP 地址
    • 没有原始用户代理
    • 没有访问密钥或盐值
  4. 第 4 步 · 美国
    存储和仪表板
    • 页面、来源、营销活动
    • 国家/地区和设备类别
    • 随机访问 ID(最长一天)
    • 事件属性
    • 没有任何能识别个人的内容
    • 没有任何能关联不同日期、站点或设备的内容

我们收集什么,绝不收集什么

收集的内容(经过最小化)

  • 页面. 主机名和路径。除营销活动参数和您的允许列表外,查询字符串会被移除。除非您使用哈希路由,否则片段会被移除。
  • 引荐来源. 引荐页面的域名和路径。查询部分会被移除,内部引荐会被清空。
  • 营销活动. UTM 参数和 ref。广告点击 ID(gclid、msclkid、fbclid)会被简化为是/否标记。
  • 位置. 仅国家/地区,来自我们的网络提供商(Cloudflare)为每个请求添加的国家/地区标头。不含省份、城市或坐标。
  • 技术. 浏览器、操作系统(系列和主版本)、设备类型、屏幕尺寸范围、语言。
  • 互动. 页面可见时长,以及以 10% 为一档的滚动深度。
  • 时区. 浏览器的时区名称,例如 America/Denver。在服务器上运行的浏览器,其时区很少与请求所在国家/地区的时区一致,所以我们会比较两者,帮助区分机器人和真人。这一步在内存中完成,随后时区即被丢弃。它绝不会用作位置信息,也绝不会与访问或事件一起存储。它只保留在高级机器人检测的机器人训练记录中(蜜罐点击,以及来自我们自己站点的样本),保留 12 个月。
  • 事件. 事件名称以及您选择发送的最多 30 个带类型的属性,均经过 PII 脱敏。

绝不收集或存储

  • IP 地址. 在内存中用于机器人检查和每日访问密钥,随后丢弃。绝不写入磁盘、日志、队列或数据库,即使是机器人的也不例外。
  • 完整的用户代理. 在内存中解析为类别,随后丢弃。
  • Cookie 和设备存储. 不使用 Cookie、localStorage、sessionStorage 或 IndexedDB(访客自己的退出选择除外)。
  • 指纹. 不使用 canvas、WebGL、字体、音频或电池 API,也不请求额外的客户端提示。
  • 持久标识符. 没有任何超过一天的标识,也不关联站点或设备。没有用户画像。
  • 精确位置. 不含坐标。
  • 第三方请求. 跟踪器只与 Privatus Analytics 通信。

PII 脱敏器。在存储任何内容之前,会检查路径、引荐来源、标题和事件属性中是否有邮箱地址、长标识符、类似令牌的字符串,以及电话号码或卡号这类长数字串。匹配的内容会被替换为 [redacted-email] 这样的占位符,每个站点都能看到发生了多少次脱敏,以便从源头修复泄露。

如何统计访问

  1. 每个 UTC 日,我们生成一个随机的 256 位盐值。它只存在于内存中,并在当天结束时销毁,另加 30 分钟的宽限期。
  2. 对于每次请求,我们在内存中计算 HMAC(daily salt, site, IP, user agent),并在仅存于内存的存储中查找它,该存储有 30 分钟的不活动超时,最迟到 UTC 午夜为止。
  3. 新的访问会获得一个随机的访问 ID,它不是由该密钥派生的。只存储这个随机 ID。
  4. 盐值销毁后,任何方法都无法把已存储的访问关联回某台设备,也无法跨天把它们相互关联。

这是假名化数据:经过高度最小化,且无法在一天之外关联。我们不把它称为匿名数据。

我们存储的每一个字段

新增存储字段需要对其用途、最小化方式和保留期限进行书面审查。这是当前的列表。

字段用途最小化保留期限
主机名、路径页面除允许列表外移除查询,PII 脱敏,路径掩码套餐
引荐来源的主机和路径来源去除 www. 和 m.,丢弃查询,内部引荐清空套餐
UTM 参数、ref、付费点击营销活动点击 ID 简化为是/否标记套餐
国家/地区位置来自 Cloudflare 国家/地区标头,IP 已丢弃套餐
设备、浏览器、操作系统(含主版本)、屏幕范围技术原始用户代理已丢弃,屏幕尺寸分档套餐
访问 ID访问随机 UUID,最长一个 UTC 日套餐
事件属性事件最多 30 个键,带类型,PII 脱敏套餐
时区名称训练机器人评分绝不与访问或事件一起存储。仅与蜜罐点击或来自我们自己站点的样本一起保留12 个月
过滤计数器机器人、规则、脱敏仅汇总数据,不含 IP13 个月
访问密钥(内存存储)访问连续性HMAC 密钥,30 分钟超时最长一天
每日盐值(内存存储)访问密钥从不持久化1 天 + 30 分钟

“套餐”保留期限:Free 为 3 个月,付费套餐在订阅期间不限,可按站点单独设置。

自行验证

  1. 打开本页的开发者工具,进入 Application(或 Storage)标签页。您会发现没有 Cookie,本地存储中也没有来自跟踪器的任何内容。跟踪器唯一存储的是访客自己的退出选择。如果您更改了浅色或深色主题,本站点也会把它保存在那里。
  2. 切换到 Network 标签页,按 /api/event 筛选并重新加载。您会看到每次页面浏览只有一个很小的请求。
  3. 打开请求负载。它只包含下方列出的字段:没有标识符,没有指纹。
  4. 在您自己站点的脚本标签上添加 data-debug="true",然后观察控制台。每个请求都会以前缀 [privatus] 记录下来,内容与实际发送的完全一致,并且不会有任何内容离开浏览器。被跳过的请求会记录原因,并且在 localhost 上也能使用。参见测试时不发送任何内容。
  5. 阅读跟踪器的源代码。它采用 MIT 许可证,篇幅很短,一次就能读完。参见开源。

也可以在您自己的站点上试试Cookie 和跟踪器扫描器。

请求包含什么

这些示例展示了每种请求中可能出现的所有字段。大多数请求携带的字段要少得多。下表说明了每个字段何时发送。

一次页面浏览
{
  "s": "pa_7Q2K9XH3AB",
  "t": "pageview",
  "u": "https://example.com/app?utm_source=newsletter#/pricing",
  "l": "en-US",
  "w": 1440,
  "i": 0,
  "r": "https://news.example.org/",
  "h": 1,
  "d": 1,
  "g": 1,
  "hp": 1,
  "a": "webdriver",
  "tz": "America/Denver",
  "xp": "var_4M8T2KQ9ZD",
  "p": { "plan": "pro" }
}
一次互动请求
{
  "s": "pa_7Q2K9XH3AB",
  "t": "engagement",
  "u": "https://example.com/app?utm_source=newsletter#/pricing",
  "l": "en-US",
  "w": 1440,
  "i": 1,
  "r": "https://news.example.org/",
  "h": 1,
  "d": 1,
  "g": 1,
  "hp": 1,
  "a": "webdriver",
  "tz": "America/Denver",
  "e": 48210,
  "sd": 80
}
一个自定义事件
{
  "s": "pa_7Q2K9XH3AB",
  "t": "event",
  "u": "https://example.com/app?utm_source=newsletter#/pricing",
  "l": "en-US",
  "w": 1440,
  "i": 1,
  "r": "https://news.example.org/",
  "h": 1,
  "d": 1,
  "g": 1,
  "hp": 1,
  "a": "webdriver",
  "tz": "America/Denver",
  "n": "signup",
  "p": { "plan": "pro" }
}
字段含义何时发送在我们这边如何处理
s站点 ID每个请求用于查找站点。作为事件所属的站点存储。
t请求类型:pageview、engagement 或 event。可选的 Web Vitals 和点击图模块会增加 vital 和 click。每个请求作为事件类型存储。
u页面 URL,非营销活动的查询参数已在浏览器中移除每个请求主机名和路径在应用路径掩码和 PII 脱敏后存储。营销活动参数会存储,广告点击 ID 变为是/否标记,查询的其余部分被丢弃。
l浏览器语言每个请求存储,截断为 16 个字符。
w屏幕宽度(像素)每个请求仅作为尺寸范围存储。在内存中读取,用于机器人评分。确切宽度会被丢弃。
i页面上出现第一次真实输入(指针、按键、触摸或滚轮)之后为 1,否则为 0每个请求作为这次访问的是/否存储。不会发送任何关于输入本身的内容。
r引荐来源仅在有引荐来源时主机和路径在 PII 脱敏后存储。查询被丢弃,来自您自己站点的引荐来源会被清空。
h使用哈希路由时为 1仅当片段是页面地址的一部分时在内存中使用,把片段保留为路径的一部分。不存储。
d浏览器发送“请勿跟踪”(Do Not Track)时为 1仅在开启时如果站点遵守“请勿跟踪”(默认关闭),该请求会被丢弃,不存储任何内容。否则会被忽略。该标记绝不存储。
g浏览器发送全球隐私控制(Global Privacy Control)时为 1仅在开启时如果站点遵守全球隐私控制(默认开启),该请求会被丢弃,不存储任何内容。否则会被忽略。该标记绝不存储。
hp在站点所有者标记为蜜罐的页面上为 1,在标记为仅真人可到达的页面上为 0仅在标记为高级机器人检测的页面上值为 1 的请求绝不会成为访问或事件。它会被计为机器人,并且在具有高级机器人检测的套餐中,作为蜜罐点击保留。值为 0 的请求照常计数,只有我们自己的站点会保留一份副本作为训练样本。
ch在“确认您是真人”页面上为 1。站点会向随机的少数访客显示此页面,真人和机器人都一样仅在标记为 data-hp="ch" 的页面上值为 1 的请求绝不会成为访问或事件,也不会被计为机器人。在具有高级机器人检测的套餐中,它会和蜜罐点击保留在一起,并标记为验证。
a自动化工具名称:webdriver、phantom、nightmare 或 cypress仅在蜜罐或验证页面上检测到自动化浏览器时与蜜罐点击一起保留。在其他任何地方都会被忽略。
tz时区名称,例如 America/Denver每个请求(在浏览器报告时)在内存中与请求所在国家/地区比较,用于机器人评分,随后丢弃。绝不与访问或事件一起存储,也绝不用作位置信息。仅与蜜罐点击或训练样本一起保留。
xp实验预览值,来自地址中的 pa_preview仅页面浏览,且地址中有 pa_preview 时在内存中使用,用来显示预览的版本。该页面浏览不会计入实验。不存储。
p自定义属性页面浏览和自定义事件在 PII 脱敏后最多存储 30 个。收入和货币作为各自独立的字段存储。
e页面上的可见时长(毫秒)互动请求存储,上限为 4 小时。
sd滚动深度(百分比)互动请求以 10% 为一档存储。
n事件名称自定义事件存储,截断为 120 个字符。
vWeb Vitals 指标值指标请求(Web Vitals 模块)与指标名称一起存储,仅针对一部分请求样本。
c被点击元素的简短 CSS 选择器,或站点为它起的名称点击请求(点击图模块)存储,截断为 512 个字符。不含坐标或文本。

可选的调查模块会发送它自己的小请求。完整参考中列出了这些请求,见文档。蜜罐点击保留的内容在高级机器人检测中说明。

您的数据存放在哪里

美国境内的存储与处理,以及传输保障措施。

合规中心

GDPR、ePrivacy、美国各州法律等。

数据处理协议

已包含在我们的条款中。

开始无 Cookie 的衡量

没有 Cookie,没有指纹识别,统计无需同意横幅。

您的第一个工作区从 14 天免费 Pro 开始。之后它会转为免费套餐,包含每月 10.000k 个事件、3 个站点和 3 个月的历史数据。无需银行卡。