rack-tracker的Google Analytics配置全解gtag.js与UA的12个关键参数速查清单【免费下载链接】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 是一个 Rack 中间件让你不用再往应用里塞一堆统计代码片段而是把 Google Analytics包括 gtag.js 和 UA/analytics.js 两种方案等追踪服务统一托管到中间件里。本文给你一份12 个关键参数速查清单覆盖 UA 追踪器:google_analytics与 gtag.js 追踪器:google_global的全部核心配置项新手照着配即可。一、先认识 rack-tracker一个中间件两种 Google 方案rack-tracker 的工作方式很简单在应用中间件栈里挂载Rack::Tracker声明你要用的 handler它在每次响应返回前自动把统计脚本注入到页面的/head或/body之前支持多个追踪服务共存互不干扰。针对 Google 生态它内置了两个 handlerHandler方案适用场景源码位置:google_analyticsUA / analytics.js老站点、GA 传统属性lib/rack/tracker/google_analytics/google_analytics.rb:google_globalgtag.js全球站点标记Google 推荐的新方案支持多追踪器lib/rack/tracker/google_global/google_global.rb 新建议首选:google_globalgtag.js维护老项目时再选:google_analytics。二、UAanalytics.js方案12 个关键参数速查清单以下参数在Rack::Tracker中间件初始化时通过handler :google_analytics, {...}传入#参数作用值示例 / 说明1tracker追踪器 ID必填静态字符串如U-XXXXX-Y或lambda { |env| ... }按请求动态取值2anonymize_ip匿名化 IPGDPR 常用true自动抹掉 IP 最后一段3cookie_domainGATC Cookie 域名如railslabs.com多子域共享数据时必配4user_id自定义用户 IDlambda { |env| env[rack.session][user_id] }返回 nil 时自动忽略5site_speed_sample_rate站点速度采样率设置站点速度数据采集的样本比例6enhanced_link_attribution增强型链接归因true时自动引入linkid.js插件7advertising展示广告特征true时加载displayfeatures插件8ecommerce传统电商追踪true时加载ecommerce.js插件并发送交易9enhanced_ecommerce增强型电商追踪true时加载ec插件10optimizeGoogle Optimize 容器 ID如GTM-1234配合 A/B 实验11pageview_url_script自定义页面 URL 表达式默认window.location.pathname window.location.searchSPA/带 hash 路由时自定义12explicit_pageview是否自动发送 pageview默认true手动控制浏览量时设为false另有 2 个通用参数同样值得记住position注入位置默认:head可设为:body脚本会改插到/body前DO_NOT_RESPECT_DNT_HEADER默认 rack-tracker 会尊重浏览器的 DNTDo Not Track请求头并跳过注入设为true可强制注入。一个典型配置长这样Rails 环境config.middleware.use(Rack::Tracker) do handler :google_analytics, { tracker: U-XXXXX-Y, anonymize_ip: true, user_id: lambda { |env| env[rack.session][user_id] }, explicit_pageview: true } end渲染结果就是一段标准的ga(create, ...)ga(send, pageview, ...)脚本模板见lib/rack/tracker/google_analytics/template/google_analytics.erb。三、gtag.jsgoogle_global方案参数差异速查gtag.js 方案与 UA 方案的参数命名略有不同对照如下gtag.js 参数作用trackers⭐ 与 UA 的tracker不同它是数组支持同时配置多个追踪 IDanonymize_ipIP 匿名化cookie_domainCookie 域名user_id用户 ID支持 lambdalink_attribution增强型链接归因对应 UA 的enhanced_link_attributionallow_display_features控制 Display Features注意gtag.js 中语义是允许与 UA 的advertising方向相反custom_map配置自定义维度映射optimize_idOptimize 容器 IDset批量设置配置项支持 lambda 按请求求值多追踪器配置示例config.middleware.use(Rack::Tracker) do handler :google_global, { trackers: [ { id: G-XXXXX-Y }, { id: G-WWWWW-Z } ] } end⚠️ 若trackers中某个 id 为空gtag.js handler 会打印警告并自动跳过该追踪器见lib/rack/tracker/google_global/google_global.rb。四、服务端埋点事件、参数与电商事件rack-tracker 的精华在于服务端打点——在控制器里调用trackerDSL事件会随页面一起注入无需前端写 JS事件Send记录登录、点击等行为参数type / category / action / label / value参数Parameter设置自定义维度如dimension1: pink渲染为ga(set, dimension1, pink)电商Ecommerce / EnhancedEcommerceaddItem、addTransaction、addProduct、setAction等完整电商链路。控制器里一次埋点即可def show tracker do |t| t.google_analytics :send, { type: event, category: button, action: click, label: nav-buttons, value: X } end end事件通过请求env在中间件与控制器间传递env[tracker]核心逻辑见lib/rack/tracker/handler.rb与lib/rack/tracker/controller.rb。五、三个新手最容易踩的坑页面没看到统计脚本检查浏览器是否开启了 DNT1——rack-tracker 默认尊重该请求头属预期行为。数据里有中文或引号别慌rack-tracker 已内置 JS 转义见lib/rack/tracker/javascript_helper.rb事件值中的特殊字符会被安全转义无需手动处理。SPA 单页应用浏览量统计不准把explicit_pageview设为false关闭自动 pageview并用pageview_url_script自定义 URL 表达式可把location.hash纳入再在前端路由切换时手动上报。六、小结新项目用gtag.js:google_global老项目用UA:google_analytics二者参数清单已在上表列全记住 3 个高频参数tracker/trackersID可 lambda 动态化、anonymize_ip合规、explicit_pageviewSPA 必调服务端trackerDSL 是 rack-tracker 最大的优势事件、维度、电商全都能在控制器里一行搞定。配套规格测试位于spec/handler/google_analytics_spec.rb与spec/integration/google_analytics_integration_spec.rb参数行为细节都可以从中得到验证。【免费下载链接】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),仅供参考