0

我在 Rails 中创建了一个帮助器模块,它创建了传递给link_torails 帮助器的参数散列。utmRails 应用程序发送的电子邮件中使用了这些参数。问题是,当我进行测试时,Google Analytics 没有获取任何数据。我意识到处理存在延迟,并且我还在使用 GA 调试器查看它实际发送的信标,并且我有一个暂存服务器并暂存 Google Analytics,我正在测试所有这些。有没有人看到以下方法会导致 GA 在“活动”报告下不接受任何访问?标签的顺序utm真的重要吗?我意识到utm_campaignutm_source并且utm_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
4

2 回答 2

2

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

第二个是因为utmzcookie 一直存在并且没有将访问计为新会话。由于 Google Analytics 和 chrome 处理单个会话的方式,您需要在新的隐身窗口中测试所有内容。有关更多详细信息,请参阅此 SO 帖子

最后,对于阅读本文的任何人,您都可以通过查找名为utmz. 该 cookie 由 Google Analytics 使用,看起来像这样12340657.1412743014.15.1.utmcsr=abc|utmccn=confirm|utmcmd=email,并且应该包含utm参数。

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

于 2014-10-09T21:51:27.827 回答
1

根据谷歌的说法,顺序无关紧要。AFAICT 在您的代码中一切都是有序的,所以问题出在其他地方。饼干?

于 2014-10-09T21:21:11.590 回答