跳到主要内容
QRCodeMax.Vip

二维码追踪:能统计什么,以及如何尊重隐私

只有通过跳转服务的动态二维码才能统计扫描次数——即便如此,也永远不知道是谁扫的。本文介绍能测量什么、不能测量什么,以及尊重隐私的追踪习惯。

作者:QRCodeMax.Vip 5 分钟阅读

二维码能告诉你一个码被扫了多少次、大致在什么时间、用的是什么设备——但前提是这个码是动态码,也就是说,每次扫描都要经过一个会记录访问的跳转。无论动态还是静态,任何二维码都无法告诉你扫描者是谁。本文解释哪些数据是实际可测的,哪些测不到,以及如何在追踪扫描的同时,尊重拿手机的那个人的隐私。

为什么只有动态码能统计扫描次数

二维码本质上只是一张记录数据的图片。在静态码里,这些数据就是目标网址本身。有人扫描时,手机直接打开你的网站,中间没有任何环节记录这次访问。你的网站统计会看到一次访问,但除非你提前给网址加了标记,否则它看起来和任何其他访问没有区别。

动态码的工作方式不同。它编码的是一个简短的跳转网址——比如 qrmx.vip/abc123——由生成服务持有。有人扫描时,手机先请求这个短网址。服务的服务器收到请求,记录几项信息,然后通过 HTTP 跳转把手机送往真正的目标地址。这条日志就是追踪。这也是动态码可以印出来之后再改的原因:改一下跳转目标,同一块黑白方块继续可用。

代价是依赖。如果跳转服务宕机或关停,所有印出去的码都会失效。动态追踪用链条上一环你无法控制的服务,换来了测量能力和灵活性。

能合理统计到什么

每次扫描都是打向跳转服务器的一次普通网络请求,所以能测的,就是网络服务器天然能看到的东西:

  • 扫描次数。 每次请求算一次扫描。总数只能当作约数看待:有人会重复扫,一些相机应用会预取链接,一个热情的访客就能把数字撑大。
  • 大致时间。 服务器时间戳能给出日期,通常还有小时。这在对比不同投放位置时最有用——门口的海报和袋子里的传单,一比就知道。
  • 设备类型。 请求的 User-Agent 请求头能看出操作系统家族,通常是 iOS 还是 Android,有时还能看出浏览器。这是个粗糙的信号,可能缺失,也可能很笼统。
  • 国家或地区。 服务器可以根据 IP 地址推断大致位置。VPN、公司网络和运营商路由都会让数据失真,所以城市级的数据只能当线索,不能当事实。

这些都不稀奇,和任何一次网站访问产生的浅层数据一样。价值来自结构:给每个投放位置单独一个码,数字之间就能互相比较,而不是混成一团。

无法知道什么

一次扫描只是一条匿名的 HTTP 请求。它不携带姓名、邮箱、电话号码,也没有账号 ID。除非对方主动在目标页面的表单里填写信息,否则你完全不知道他是谁。你也无法可靠地把同一个人在不同码、不同访问之间串起来;没有你自己域名上的登录或 Cookie,每一次扫描都是一个全新的陌生人。

有两点值得说清楚,因为对二维码的恐惧常常跑在事实前面:

  • 扫码不会让任何人访问你的手机。二维码读不到通讯录、照片、短信,也拿不到精确的 GPS 位置。它只能打开一个链接,或者在特殊场景下触发某个动作,比如加入一个 Wi-Fi 网络。
  • IP 地址不是身份。它能提示大致区域,但无法告诉你一个家里——更别说一座城市里——具体是哪个人拿着手机。

连设备类型也只是基于手机发送的请求头做出的推断,浏览器还可以修改它。如果有人承诺仅凭二维码就能给你扫描者的身份,那他卖的是自己并没有的东西。

用 UTM 参数和网站统计追踪静态码

如果你只想知道一个码给网站带来了多少流量,可能根本不需要动态码。保持静态,在目标网址后面加上 UTM 参数即可:

https://example.com/menu?utm_source=poster&utm_medium=qr&utm_campaign=spring

你现有的网站统计会把这类访问单独归为一组——来源"poster"、媒介"qr"——与搜索、社交和直接输入的流量区分开。不需要额外服务,没有跳转依赖,码也永远不会失效。标记就写在网址里,这本身就是一种坦率:在意的人看得见这个链接是被统计的。

局限也是真实的:

  • 网址变长,二维码图案更密,远距离识别稍难。
  • 印刷之后无法再改目标地址。
  • 你统计的是访问,不是扫描。多数手机扫码后先显示网址预览,等用户点一下才打开,那些扫一眼就走的人不会出现在你的统计里。

对很多用途——餐厅菜单、产品页、下载链接——这已经足够。问题只是"带来多少流量"时,选加 UTM 的静态码;需要在点击前就有扫描次数,或希望日后能改目标地址时,选动态码。

隐私友好的做法

统计扫描本身是正当的。粗心地统计没有必要,在许多地方还是法律问题,因为欧盟《通用数据保护条例》(GDPR)等隐私法律可能把 IP 地址视为个人数据。三个习惯能让扫描统计在道德和法律上都站得住。

不收集个人信息

不要记录完整 IP 地址,不要给设备做指纹识别,也不要为了认出扫描者而把正经内容锁在登录墙后面。只保留上文提到的汇总信号:次数、时间戳、设备家族、粗略地区。如果使用跳转服务,优先选择截断或哈希处理 IP 地址、而不是原样存储的服务。一个实用的判断标准:一条记录如果关联不到具体的人,造成伤害的可能性就小得多,合规麻烦也是。

缩短保存时间

原始请求日志堆着没有任何用处。一个常见的经验法则:原始日志保留 30 到 90 天,够看清趋势、排查一次失灵的投放,然后删掉,只留汇总数据——每个码的月度次数、设备占比等等。报告要问的问题,汇总数据几乎都能回答;而你不再持有的数据,是不会泄露的。

说明你在做什么

如果人们合理地会想知道,就告诉他们。在海报或落地页上写一句"本码的扫描会被匿名统计,用于改进我们的活动",只花一句话,换来的却是暗中追踪会毁掉的信任。如果用生成服务的动态码,印刷之前先读一遍它的隐私政策:记录什么、保存多久、是否与第三方共享数据。

一套简单可行的工作流程

  1. 写下你想回答的那一个问题,比如"哪个海报位置效果最好?"
  2. 选能回答它的最轻工具:流量问题用加 UTM 的静态码,要扫描次数和可修改性用动态码。
  3. 每个投放位置单独建一个码。QRCodeMax.Vip 这类免费生成器静态码和动态码都支持,可以按问题选工具。
  4. 做一张小对照表,记下每个码对应的位置;没有标注的码,一个月后就成了谜。
  5. 大批量印刷之前,用两部不同的手机试扫每一个码。
  6. 固定周期复盘数据——每周或每月——并据此行动:挪海报、改目标地址、下线活动。

核心要点

用动态码或加 UTM 的静态码去统计次数和粗略背景,永远不要去追扫描者背后那个人的身份。能收的少收一点,必须删的早删一点,统计了什么就直说。这样的追踪才值得信任——也不是巧合,这样的追踪你才真的会用。

常见问题

二维码能告诉我扫描者是谁吗?
不能。扫描只是一条匿名请求,不携带姓名、邮箱或电话号码;只有当对方主动在码打开的页面上填写信息时,你才能知道他是谁。
要看扫描次数,必须用动态二维码吗?
想要真正的扫描次数,是的。动态码让每次扫描都经过一个会记录的跳转。静态码只能间接追踪:加 UTM 参数,然后在网站统计里看访问量。
动态二维码实际能收集到哪些数据?
大致就是网络服务器能看到的东西:扫描次数、日期和小时、设备的操作系统家族,以及根据 IP 地址推断的粗略位置。全部都是近似值。
加 UTM 参数的静态码是好的替代方案吗?
当你的问题只是"带来多少流量"时,是的。它保留了静态码的可靠性,用现有统计就能测量访问,不过印刷后无法改目标地址,而且统计的是访问而不是扫描。
扫描数据应该保存多久?
一个常见的经验法则是原始日志保存 30 到 90 天,之后只保留每个码的月度次数之类的汇总数据。数据用多久留多久即可。