无法通过 Turbolinks 有效使用 Google 标签管理器
Unable to effectively use Google Tag Manager with Turbolinks
我将 Google 跟踪代码管理器与带有 turbolinks 的 Rails 4.2 应用程序一起使用。我完全被难住了,完全无法通过 turbolinks 有效地使用 Google 标签管理器。
Google 标签管理器似乎反复感知新的页面加载(<body>
标签被替换)作为 google 标签管理器的新安装。当我查看我的 Google 标签助手记录时,我只看到 Google 标签管理器的无尽绿色标签海洋。
有人提供任何资源线索,我可以从中找出如何有效使用它的方法吗?
我看过 Googletagmanager with Turbolinks,它似乎有点过时,但也没有解决我的错误安装问题。
替换标签可能会产生各种副作用(正如您现在意识到的,其中之一是代码被重新初始化并触发 gtm.js 事件),所以我建议您放弃 noscript 部分并移动剩下的到头部 - 我真的不知道 turbolinks(或 RoR),但根据 this article turbolinks 不会重新加载头部。
不幸的是,SPA 中仍然可能存在副作用,因为所有推送到 dataLayer 的项目都将保留在那里。您可能需要考虑在加载新内容时重置数据层:
window.google_tag_manager[{{Container ID}}].dataLayer.reset();
其中 {{Container ID}}(显然)是您容器的 GTM-XXX ID。不要只是用未初始化的数组 (dataLayer = []) 覆盖 dataLayer 变量,因为 GTM 向 dataLayer 变量添加了一些方法,如果覆盖它将会丢失,并且您的 GTM 实例将停止工作。
我将 Google 跟踪代码管理器与带有 turbolinks 的 Rails 4.2 应用程序一起使用。我完全被难住了,完全无法通过 turbolinks 有效地使用 Google 标签管理器。
Google 标签管理器似乎反复感知新的页面加载(<body>
标签被替换)作为 google 标签管理器的新安装。当我查看我的 Google 标签助手记录时,我只看到 Google 标签管理器的无尽绿色标签海洋。
有人提供任何资源线索,我可以从中找出如何有效使用它的方法吗?
我看过 Googletagmanager with Turbolinks,它似乎有点过时,但也没有解决我的错误安装问题。
替换标签可能会产生各种副作用(正如您现在意识到的,其中之一是代码被重新初始化并触发 gtm.js 事件),所以我建议您放弃 noscript 部分并移动剩下的到头部 - 我真的不知道 turbolinks(或 RoR),但根据 this article turbolinks 不会重新加载头部。
不幸的是,SPA 中仍然可能存在副作用,因为所有推送到 dataLayer 的项目都将保留在那里。您可能需要考虑在加载新内容时重置数据层:
window.google_tag_manager[{{Container ID}}].dataLayer.reset();
其中 {{Container ID}}(显然)是您容器的 GTM-XXX ID。不要只是用未初始化的数组 (dataLayer = []) 覆盖 dataLayer 变量,因为 GTM 向 dataLayer 变量添加了一些方法,如果覆盖它将会丢失,并且您的 GTM 实例将停止工作。