rack-tracker不只是Rails专属:Sinatra与纯Rack应用接入跟踪分析的快速指南
rack-tracker不只是Rails专属Sinatra与纯Rack应用接入跟踪分析的快速指南【免费下载链接】rack-trackerTracking made easy: Don’t fool around with adding tracking and analytics partials to your app and concentrate on the things that matter.项目地址: https://gitcode.com/gh_mirrors/ra/rack-trackerrack-tracker 是一个轻量级 Ruby 跟踪中间件让 Sinatra 和纯 Rack 应用也能一键接入 Google Analytics、Facebook Pixel 等 15 数据分析服务无需再手动往模板里塞跟踪代码片段。很多新手以为它只能配合 Rails 使用其实它骨子里就是一个标准的 Rack 中间件——只要你的应用会产出 HTML就能用。 为什么 rack-tracker 不是Rails 专属rack-tracker 的核心是一个名为Rack::Tracker的中间件源码见lib/rack/tracker.rb它的工作流程非常纯粹拦截经过的 HTTP 响应检查Content-Type是否为 HTML非 HTML 响应直接放行把各服务Google、Bing、Hotjar 等的script片段注入到/head或/body前。而 Rails 的部分只是一个可选的 Railtielib/rack/tracker/railtie.rb仅当检测到Rails常量存在时才加载。换句话说Rails 只是锦上添花Rack 才是它的地基。这正是 Sinatra 和纯 Rack 应用可以直接复用它的根本原因。第 1 步安装 rack-tracker 跟踪库在应用的 Gemfile 中加入一行然后执行bundlegem rack-tracker也可以直接gem install rack-tracker或者把仓库克隆下来阅读源码git clone https://gitcode.com/gh_mirrors/ra/rack-tracker依赖非常轻只需要rack、tilt和activesupport对 Sinatra 这类小应用毫无负担。第 2 步Sinatra 应用接入步骤Sinatra 本身运行在 Rack 之上接入方式就是在应用前面挂一层 Tracker 中间件。以config.ru为例require rack/tracker require sinatra use Rack::Tracker do handler :google_analytics, { tracker: U-XXXXX-Y } end run Sinatra::Application启动后每一个 HTML 页面的/head前都会自动出现 Google Analytics 的脚本无需修改任何视图文件。想同时接多个服务也很简单在同一块 DSL 里继续声明即可use Rack::Tracker do handler :google_analytics, { tracker: U-XXXXX-Y } handler :google_tag_manager, { container: GTM-XXXXXX } handler :facebook_pixel, { id: PIXEL_ID } end第 3 步纯 Rack 应用接入步骤如果你的应用完全由Rack::Builder搭建没有用任何 Web 框架接入方式完全一致require rack/tracker map / do use Rack::Tracker do handler :google_analytics, { tracker: U-XXXXX-Y } handler :go_squared, { tracker: ABCDEFGH } end run MyRackApp end 注意中间件会检查响应的Content-Type只有包含html的响应才会被注入脚本所以你的 JSON API 端点天然安全不会被污染。没有 Rails 控制器如何发送服务端事件Rails 用户在控制器里能调用tracker { |t| t.google_analytics :send, ... }那是 Railtie 自动注入的扩展。Sinatra / 纯 Rack 里没有这个魔法方法但 rack-tracker 把事件统一存放在请求环境变量env[tracker]中你可以直接写入get /login do request.env[tracker] { google_analytics [ { class_name Send, category Users, action Login, label Standard } ] } 登录成功 end下一次渲染 HTML 时这段数据就会被 HandlerDelegatorlib/rack/tracker/handler_delegator.rb转换成对应的 JS 事件代码。如果你希望在自己的 Sinatra 应用里复用 Rails 风格的tracker方法只需一行include Rack::Tracker::Controller定义在lib/rack/tracker/controller.rb。内置跟踪服务一览15 主流平台开箱即用在lib/rack/tracker/目录下每个子目录就是一个服务 Handler全部开箱即用服务handler 名称典型配置项Google Analytics:google_analyticstrackerGoogle Global Site Tag:google_globaltrackersGoogle Tag Manager:google_tag_managercontainerGoogle AdWords 转化:google_adwords_conversionid,labelFacebook / Facebook Pixel:facebook/:facebook_pixelidHotjar:hotjarsite_idBing:bingtrackerHubspot:hubspotsite_idDrift:driftaccount_idHeap:heapenv_idVWO:vwoaccount_idGoSquared:go_squaredtrackerCriteo:criteoset_accountZanox:zanoxaccount_id另外还支持动态配置配置项可以传 lambda按每个请求动态取值例如facebook_pixel的id就可以写成lambda { |env| env[PIXEL_ID] }方便多租户场景。DNT 隐私保护默认尊重用户的不跟踪选择 ️从 2.0.0 起当请求带有DNT: 1Do Not Track头时rack-tracker默认不注入任何跟踪脚本这是对用户隐私的友好默认值实现在lib/rack/tracker/handler.rb。如果某个 Handler 确实需要忽略该头可显式传DO_NOT_RESPECT_DNT_HEADER: true——不过官方建议三思而后行。进阶为自定义分析服务编写 Handlerrack-tracker 的扩展模型对非 Rails 应用同样友好。只需继承Rack::Tracker::Handler设置self.position :head或:body在handler_name对应的目录里放一个template/xxx.erb模板在中间件里注册handler MyHandler, { awesome: true }。模板中可直接访问#options和当前请求的env需要多位置注入时还可以重写#inject方法参考lib/rack/tracker/google_tag_manager/google_tag_manager.rb的实现。常见问题速查 ✅脚本注入到了非页面响应不会。只有Content-Type含html的响应才会被处理。多个服务顺序问题按 DSL 中handler声明顺序依次注入。安全性提醒跟踪数据最终会以 JavaScript 形式输出请勿把未经验证的用户输入直接写入事件参数以免 XSS 风险。线程安全吗中间件在每次请求时对实例做dup见lib/rack/tracker.rb多线程环境下放心使用。小结rack-tracker 的价值不依赖于 Rails它是一个标准 Rack 中间件Sinatra 应用三行代码即可接入纯 Rack 应用同样适用。统一的管理入口、15 内置服务、服务端事件注入和 DNT 隐私支持让跟踪代码满天飞的问题在轻量级应用中同样得到优雅解决。【免费下载链接】rack-trackerTracking made easy: Don’t fool around with adding tracking and analytics partials to your app and concentrate on the things that matter.项目地址: https://gitcode.com/gh_mirrors/ra/rack-tracker创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

OpCore-Simplify:黑苹果 EFI 三步生成

OpCore-Simplify:黑苹果 EFI 三步生成

OpCore-Simplify:黑苹果 EFI 三步生成 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 新笔记本想装 macOS,满屏 Kext 和 confi…

2026/8/23 13:56:30 阅读更多 →
B站视频下载完整指南:用 bilibili-downloader 把大会员4K视频存进硬盘

B站视频下载完整指南:用 bilibili-downloader 把大会员4K视频存进硬盘

B站视频下载完整指南:用 bilibili-downloader 把大会员4K视频存进硬盘 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 看到想存的大会…

2026/8/23 13:56:30 阅读更多 →
若川博客 Vuex 进阶:学习 vuex 源码整体架构,打造属于自己的状态管理库

若川博客 Vuex 进阶:学习 vuex 源码整体架构,打造属于自己的状态管理库

若川博客 Vuex 进阶:学习 vuex 源码整体架构,打造属于自己的状态管理库 【免费下载链接】blog 若川的博客—撰写了学习源码整体架构系列几十篇。组织了源码共读活动,每周一起学习200行左右的源码,加我微信 ruochuan02 参与。 项…

2026/8/23 13:56:30 阅读更多 →

最新新闻

5 分钟跑通 Sabaki:免费开源的围棋棋盘与 SGF 编辑器完整指南

5 分钟跑通 Sabaki:免费开源的围棋棋盘与 SGF 编辑器完整指南

5 分钟跑通 Sabaki:免费开源的围棋棋盘与 SGF 编辑器完整指南 【免费下载链接】Sabaki An elegant Go board and SGF editor for a more civilized age. 项目地址: https://gitcode.com/gh_mirrors/sa/Sabaki Sabaki 是一款免费开源(MIT 协议&…

2026/8/23 14:52:51 阅读更多 →
5 分钟跑通大气层整合包:从 SD 卡到能玩游戏的完整记录

5 分钟跑通大气层整合包:从 SD 卡到能玩游戏的完整记录

5 分钟跑通大气层整合包:从 SD 卡到能玩游戏的完整记录 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable Switch 只能插正版卡玩,自制软件进不去,存档还怕…

2026/8/23 14:52:51 阅读更多 →
PRIME代币全解析:AMA Protocol灵魂绑定代币的发行机制与用途

PRIME代币全解析:AMA Protocol灵魂绑定代币的发行机制与用途

PRIME代币全解析:AMA Protocol灵魂绑定代币的发行机制与用途 【免费下载链接】node 项目地址: https://gitcode.com/GitHub_Trending/node95/node 在 AMA Protocol(Amadeus Protocol,一个基于矩阵乘法"有用工作量证明"的隐…

2026/8/23 14:52:51 阅读更多 →
Listen1:一个浏览器插件免费听遍七大音乐平台,聚合搜歌告别版权焦虑

Listen1:一个浏览器插件免费听遍七大音乐平台,聚合搜歌告别版权焦虑

Listen1:一个浏览器插件免费听遍七大音乐平台,聚合搜歌告别版权焦虑 【免费下载链接】listen1_chrome_extension one for all free music in china (chrome extension, also works for firefox) 项目地址: https://gitcode.com/gh_mirrors/li/listen1_…

2026/8/23 14:52:51 阅读更多 →
FlicFlac:绿色免安装,一键转换 7 种音频

FlicFlac:绿色免安装,一键转换 7 种音频

FlicFlac:绿色免安装,一键转换 7 种音频 【免费下载链接】FlicFlac Tiny portable audio converter for Windows (WAV FLAC MP3 OGG APE M4A AAC) 项目地址: https://gitcode.com/gh_mirrors/fl/FlicFlac 上周末,我把攒了多年的 2GB …

2026/8/23 14:52:51 阅读更多 →
Falcon-40B-Instruct生产上线安全指南:语言偏差与风险3大陷阱必读清单

Falcon-40B-Instruct生产上线安全指南:语言偏差与风险3大陷阱必读清单

Falcon-40B-Instruct生产上线安全指南:语言偏差与风险3大陷阱必读清单 【免费下载链接】falcon-40b-instruct 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/falcon-40b-instruct Falcon-40B-Instruct 是 TII 推出的 400 亿参数开源指令大模型&a…

2026/8/23 14:51:51 阅读更多 →

日新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/23 0:00:50 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/23 0:00:50 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/23 0:00:50 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/23 0:00:50 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/23 0:00:50 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/23 0:00:50 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/22 18:08:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →