Skip to main content
 首页 » 编程设计

ruby-on-rails之Analytics UTM 标签之数据未记录

2025年05月04日139linjiqin

我在 Rails 中创建了一个帮助模块,它创建了传递给 link_to 的参数散列。 rails 助手。这些utm Rails 应用程序发送的电子邮件中使用了参数。问题是,当我进行测试时,Google Analytics 没有获取任何数据。我意识到处理存在延迟,并且我还在使用 GA 调试器查看它实际发送的信标,并且我有一个登台服务器和登台 Google Analytics,我正在测试所有这些。有没有人看到以下方法会导致 GA 在“事件”报告下不接受任何访问? utm 的顺序标签真的很重要吗?我意识到utm_campaign , utm_sourceutm_medium都是必需的,并确保它们在每个链接中。

例如,这就是其中一个链接的样子。但是,GA 没有获取任何数据。

http://example.com/?utm_campaign=welcome&utm_medium=email&utm_source=abc 

我比较了 link_to 这个链接方法创建了 Google UTM Link Builder输出,唯一的区别是参数的顺序。顺序重要吗?
http://example.com/?utm_source=abc&utm_medium=email&utm_campaign=welcome 

这是帮助程序模块及其与 link_to 一起使用的示例.
# mailer_helper.rb 
 
require 'uri' 
 
module MailerHelper 
 
  def self.tracking_param_hash(utm_source, utm_medium, utm_campaign, params = {}) 
    { utm_source: utm_source, 
      utm_medium: utm_medium, 
      utm_campaign: utm_campaign 
      }.merge(params) 
  end 
 
  def self.email_tracking_params(utm_campaign, options = {}) 
    tracking_param_hash("abc", "email", utm_campaign, options) 
  end 
 
... 
 
end 
 
# example usage in email view 
 
email_params = MailerHelper::email_tracking_params("set-password", reset_password_token: @token) 
 
link_to 'Set my password', edit_password_url(@resource, email_params) 
 
# rendered link in email 
http://example.com/users/password/edit?reset_password_token=YEt9PJgQsxb3WpJQ7OEXH3YDT8JZMD&utm_campaign=reset-password&utm_medium=email&utm_source=abc 

请您参考如下方法:

数据没有记录有几个原因。第一个是因为用户点击的链接之一正在向 user_confirmation_path 发送 POST。 .由于 urchin 从未在 POST 上加载,因此不会记录任何数据,用户将被重定向到登录页面。参数需要与来自 POST 的重定向保持一致,否则流量将被视为 direct .接近尾声Kissmetrics blog post他们概述了这个问题。为了解决这个问题,您可以将参数传递到重定向 url。所以像 redirect_to user_signin_path(tracking_parameters) , 其中 tracking_parametersutm POST URL 中的标签。

第二个是因为 utmz cookie 一直存在,并且没有将访问计为新 session 。由于 Google Analytics 和 chrome 处理单个 session 的方式,您需要在新的隐身窗口中测试所有内容。见 this SO post更多细节。

最后,对于阅读此内容的任何人,您都可以通过查找名为 utmz 的 cookie 来确认正在设置 UTM 参数。 .该 cookie 由 Google Analytics 使用,看起来类似于 12340657.1412743014.15.1.utmcsr=abc|utmccn=confirm|utmcmd=email并且应该有 utm里面的参数。

[为清楚起见以及我正在测试的各种场景进行了编辑]