Telemetry: 一种可以在别人网站也能收集访问记录的技术

背景

作为一个内容创作者来说,我们经常会把自己的一些文章,发布到一些第三方创作平台。但是对于内容有追求的人来说,发布仅仅只是开始,在后续很长的一段时间内我们都需要持续关注文章的阅读情况。而我们所有的数据收集只能借助平台自身的能力,这非常依赖于平台本身的能力。而且同一个内容我们往往会发到不同的平台,而这些阅读与访问数据是完全隔离的。

作为一个开发者,我会开发很多软件,但是当我把软件发布出去以后,再大部分情况下会完全脱离我的控制,比如我发布了一个命令行程序,我不知道用户的使用情况如何,我甚至不知道有多少用户使用了我的应用。或者我开发了一个开源应用,在过去,我只能通过github 的star功能知道我的应用被多少人喜欢,但是对于我的应用被多少人使用,使用情况如何则是完全不知道的。

因此,我们需要一个足够简单的,为了个人隐私或者其他的限制收集最少信息的解决方案。这个解决方案就是遥测技术.

Telemetry

遥测技术在计算机领域上是一种非常常见的技术,它往往选择最小的、匿名的信息上报,以适应各种个人隐私的需求。同时满足内容的创作者最低限度的分析需求。

比如React的Nextjs框架,就会通过Telemetry技术去收集信息 : API Reference: Next.js CLI | Next.js (nextjs.org)

又或者通过在文章中插入1px大小的空白透明像素图片,来实现在没有自己控制权的网站中收集用户的访问情况。现代浏览器和大部分的网站会阻止自定义脚本的插入,因为这往往会成为一种攻击。而相对而言一张图片则会显得非常无害。基本所有的网站都是允许第三方图片加载的。这也让Telemetry技术成为可能。

那么我们可以通过一张图片可以收集到什么信息呢?

事实上,仅仅接收一张图片的访问我们可以收集到的信息比你想象中的更多。

我们可以通过收集用户的网络请求,可以获得用户访问IP,访问时间,访问来源,访问设备。以此我们就可以分析用户的流量情况。比如文章的高峰与趋势,用户人群的分布,不同平台的流量粒度等等。这对于我们进行一些营销与宣传活动尤为重要。

所以我们要如何才能拥有Telemetry能力呢?

Telemetry其实是一种非常简单的技术,简单的来说只需要一个接口来接收来自互联网的请求即可。但是正因为简单所以几乎没有专门做这方面的工具存在。而对于大部分来说如果没有去做统计分析的意识的话很可能根本不会去关注这个。或者关注了也会因为基本的门槛而退却。但是这方面的需求又是确定的。

我们可以很简单的进行开发,只需要快速创建一个项目,创建一个路由,收集请求体中的信息,并返回空白图片即可。

以 nodejs 代码为例:

js 复制代码
router.get(
  '/telemetry.gif',
  async (req, res) => {
    const ip = req.ip;
    const referer = req.header['referer'];
    const userAgent = req.headers['user-agent'];
    
    // storage it in your database
    
    const blankGifBuffer = Buffer.from(
		  'R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',
		  'base64'
		);
    res.header('Content-Type', 'image/gif').send(blankGifBuffer);
  }
);

如果你不想自己做,那我则会推荐可以直接使用 Tianji, Tianji 作为一款 Website Analytics + Uptime Monitor + Server Status 的开源项目, 最近推出了 Telemetry 功能,可以帮助内容创作者提供遥测上报的能力,帮助用户更好的收集各种内容。最重要的是他是开源的,意味着你可以自己控制你的数据,并整合多个平台的流量到一处,而无需碎片化的在不同的地方查看同样的东西。

Github: github.com/msgbyte/tia...

官网: tianji.msgbyte.com/

BTW: 本文就包含了这样的遥测上报功能。你能找到么?

相关推荐
Cosolar2 小时前
大模型应用开发面试 • 每日三题|Day 002|记忆(Memory)、工具使用(Tool Use)和微调(Fine-tuning)
后端·python·llm
神奇小汤圆2 小时前
深入源码:Hermes Agent 如何实现 "Self-Improving"
后端
LIO2 小时前
掌握 React useEffect:核心概念、使用技巧与常见陷阱
前端·react.js
XD7429716362 小时前
科技早报晚报|2026年5月12日:GUI Agent、编程会话工作台与 npm 安装门禁,今晚更值得做的 3 个技术机会
前端·科技·npm·供应链安全·ai agent·开发者工具
前端那点事2 小时前
Vue3 新趋势:10个高阶实用操作|性能优化+开发提效+避坑指南
前端·vue.js
small_white_robot2 小时前
idek-2022 web 全wp——持续更新
开发语言·前端·javascript·网络·安全·web安全·网络安全
漫游的渔夫2 小时前
从 if-else 乱麻到状态机:前端开发者该怎么理解多 Agent 协作?
前端·人工智能·typescript
前端那点事2 小时前
90%前端只会皮毛!JSON.parse/stringify高阶用法、数据规则、避坑终极指南
前端·vue.js
需要坚持的人2 小时前
让 SVG 不再“丢字变形”:一次思维导图导出文字转 Path 的实战优化
前端·vue.js·svg
铭毅天下2 小时前
当搜索引擎遇上 Rust——深度解读下一代实时搜索引擎 INFINI Pizza
开发语言·后端·搜索引擎·rust