ruby-on-rails – 带有Turbolinks的Googletagmanager

有人可以解释我们应该如何正确地将Googletagmanager与Turbolinks集成?

在普通页面上,我们只需在开始标记之后立即复制/粘贴此代码.

<!-- Google Tag Manager -->
  <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-******"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
  '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); //f.parentNode.insertBefore(j,f);
  })(window,document,'script','dataLayer','GTM-******');</script>
  <!-- End Google Tag Manager -->

如果我在Turbolinks支持页面中复制此代码,我可以看到只有一个网络请求(第一次加载页面时)

解决方法

我在 this guide之后进行了页面刷新工作

它建议您在跟踪代码管理器中设置虚拟网址宏和网页浏览规则,然后将其推送到dataLayer:

$(document).on('page:change',function(){
  dataLayer.push({
    'event':'pageview','virtualUrl': window.location.pathname
  });
});

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...