Rails 4、Turbolinks 和 Google Analytics - 跟踪异步模式点击会使常规跟踪无效

Rails 4, Turbolinks, and Google Analytics - Tracking async modal clicks invalidates regular tracking

在这个 SO answer 的帮助下,我在我的 Rails 4 应用程序中设置了 Google 分析跟踪。页面跟踪工作正常。

在我的应用程序中,用户可以单击 link,然后会弹出 Bootstrap 模式。我想在模式弹出时进行跟踪,所以我将这段代码添加到我的 js.erb 文件中:

<% if Rails.env.production? %>
    ga('send', 'pageview', '<%= "#{resource_path(@resource)}_modal" %>');
<% end %>

这可以正确跟踪所有模式点击,但现在我的常规页面跟踪似乎不起作用。有没有办法让我同时工作?

编辑#1:

在使用 alert 而不是 ga 调用进行一些调试后,我发现我的所有代码确实都在执行。现在我认为 ga 对象有问题。我是否需要在我的 js.erb 文件中为 Google Analytics 创建一个新对象,因为它不在我的 HTML 页面的头部以及 Google Analytics 代码的其余部分?

如有任何见解,我们将不胜感激。

编辑#2:

我找到了这个 troubleshooting guide from Google, and it provides some tips on how to debug your website's analytics. The guide also contains a link to a Google Chrome extension called Google Analytics Tracking Code Debugger,它可以帮助您解决跟踪代码问题。我现在正在使用它(它很棒),而且当我的模式请求正在通过时,我的常规页面请求似乎没有被跟踪。看来我必须进行一些代码更改。

好吧,经过所有的调试,预编译的资产似乎出于某种原因没有在我的生产服务器上更新。我不确定为什么之前没有更新它们,但在大约 10 个 rake asset:cleanrake asset:precompile 命令之后,资产现在已更新。 Google Analytics 现在适用于所有页面浏览量和模式点击!