ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

rack-tracker:Rails 开发者必看的终极跟踪中间件,一个栈统一管理15个分析与广告平台

rack-tracker:Rails 开发者必看的终极跟踪中间件,一个栈统一管理15个分析与广告平台 rack-trackerRails 开发者必看的终极跟踪中间件一个栈统一管理15个分析与广告平台【免费下载链接】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 编写的 Rack 跟踪中间件tracking middleware专为 Rails / Sinatra 应用设计它把 Google Analytics、Facebook Pixel、Hotjar 等15 个分析与广告平台的注入代码统一收进中间件栈告别散落在各个 layout 里的跟踪片段。为什么需要 rack-tracker告别满屏 tracking 片段大多数 Web 项目都会接入某种统计分析服务起步时可能只有 Google Analytics但随着业务增长很快又会加 Adwords 转化、Facebook Pixel、Hotjar……传统做法是在应用布局里一个个塞 partial 和 script 片段时间一长代码库就被这些跟踪代码片段tracking snippets弄得面目全非。rack-tracker 的思路是中间件一个Rack::Tracker挂进中间件栈即可处理器handler每个平台一个 handler统一渲染、统一注入位置零侵入只对 HTML 响应生效自动找/head或/body注入脚本核心中间件实现非常小巧核心逻辑就在 lib/rack/tracker.rb 中。3 步完成 rack-tracker 安装与配置 接入过程只需三步第 1 步在Gemfile中添加依赖然后执行bundlegem rack-tracker第 2 步把Rack::Tracker挂入中间件栈并注册需要的 handler以 Google Analytics 为例config.middleware.use(Rack::Tracker) do handler :google_analytics, { tracker: U-XXXXX-Y } end第 3 步完成。页面 HTML 的/head前会自动注入对应的分析脚本无需再改任何模板。Sinatra 或纯 Rack 应用同样适用只需在Rack::Builder中use Rack::Tracker即可。开箱即用的 15 个平台支持一览rack-tracker 内置处理器覆盖分析与广告全链路均位于lib/rack/tracker/目录下类别平台handler 名统计分析Google Analytics、Google Global Site Taggtag.js:google_analytics、:google_global标签管理Google Tag Manager含 dataLayer 推送:google_tag_manager广告转化Google Adwords、Bing、Criteo、Zanox:google_adwords_conversion、:bing、:criteo、:zanox社交追踪Facebook Pixel支持动态像素 ID、标准事件:facebook_pixel网站分析GoSquared、Hotjar、Heap、Hubspot:go_squared、:hotjar、:heap、:hubspot实验优化Visual Website OptimizerVWO:vwo在线客服Drift:drift各 handler 的详细配置项如 GA 的:anonymize_ip、:ecommerceFacebook Pixel 的动态 ID 写法等可在 README.md 中查阅。从 Controller 注入服务端跟踪事件tracker DSLrack-tracker 不只是塞一段初始化脚本。借助 Rails 控制器的tracker方法见 lib/rack/tracker/controller.rb你可以在服务端把事件写进请求上下文由中间件渲染到页面def show tracker do |t| t.google_analytics :send, { type: event, category: button, action: click } end endGA 支持事件、参数、Ecommerce / Enhanced Ecommerce 下单数据GTM 支持向 dataLayer 推送任意变量Criteo、Zanox、Bing 支持转化与成交事件事件会先写入env[tracker]重定向时还会自动借助 session 传递见 lib/rack/tracker.rb保证 302 之后事件不丢失。自动尊重 Do Not TrackDNT隐私头 自 2.0.0 起rack-tracker默认尊重 DNT 头当请求头DNT: 1时所有跟踪器都不会注入让用户真正拥有退出追踪的选择权。实现见 lib/rack/tracker/handler.rb。 个别追踪器确需忽略该头时可对单个 handler 传DO_NOT_RESPECT_DNT_HEADER: true——但官方建议三思而后行。想接入私有平台写一个自定义 Handler 即可每个平台本质上是一个 handler 类 一个 ERB 模板。继承Rack::Tracker::Handler实现self.track类方法再配一个template/xxx.erb就能让自定义跟踪服务与内置 15 家使用完全相同的接口。参考现成实现例如 lib/rack/tracker/google_tag_manager/google_tag_manager.rb。核心源码速览中间件主体lib/rack/tracker.rbhandler 基类注入位置、DNT 判断lib/rack/tracker/handler.rb控制器扩展trackerDSLlib/rack/tracker/controller.rb各平台 handler 与模板lib/rack/tracker/平台名/template/平台名.erb集成测试示例spec/integration/总结如果你的 Rails 或 Sinatra 应用正在被多个平台的跟踪代码绑架rack-tracker 提供了最干净的答案一个中间件栈、统一 handler 接口、服务端事件 DSL、默认尊重 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),仅供参考
返回列表