无法通过Turbolinks有效使用Google跟踪代码管理器

时间:2016-04-23 01:44:27

标签: ruby-on-rails google-tag-manager turbolinks

我正在使用带有turbolinks的Rails 4.2应用程序的Google跟踪代码管理器。我完全被难以置信,完全无法使用turbolinks有效地使用Google跟踪代码管理器。

谷歌标记管理器似乎反复感知新页面加载(<body>标记被替换)作为谷歌标记管理器的新安装。当我查看我的Google标签助理录音时,我只看到了Google Tag Manager的绿色标签。

任何人都有资源上的任何线索,我可以弄清楚如何有效地使用它?

我看过Googletagmanager with Turbolinks似乎有点过时了,但也没有解决我的错误安装问题。

1 个答案:

答案 0 :(得分:-1)

替换标签可能会产生各种副作用(正如您现在意识到的那样,一个是代码重新初始化并触发gtm.js事件),因此我建议您删除noscript部分并将其余部分移至头 - 我真的不知道turbolinks(或RoR),但根据this article,turbolinks不会重新加载头部。

不幸的是,SPA中可能还有副作用,因为推送到dataLayer的所有项目都会保留在那里。您可能需要考虑在加载新内容时重置dataLayer:

window.google_tag_manager[{{Container ID}}].dataLayer.reset();

其中{{Container ID}}(显然)是您容器的GTM-XXX ID。不要使用未初始化的数组(dataLayer = [])覆盖dataLayer变量,因为GTM会向dataLayer变量添加一些方法,如果覆盖它们将会丢失,并且您的GTM实例将停止工作。