带有Turbolinks的Googletagmanager

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

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

  (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-******');  

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

我按照本指南进行了页面刷新工作

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

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

您可以将事件与Turbolinks绑定到page:load(而不是$(document).ready

 $( window ).on( 'page:load', function () { // Do something } ); 

Google跟踪代码管理器的文档指定:

Google跟踪代码管理器通过事件支持动态网页

他们在此处提供了一些有关活动的文档: https : //developers.google.com/tag-manager/devguide#events – 但具体实施将取决于您使用GTM做什么。

现有的两个答案都不完整。 以下是完整的解决方案,以及有关如何为您的更改配置GTM的信息:

将此添加到您的网站:

   

完成后,在Google跟踪代码管理器中注册触发器,并将该触发器与所需的代码相关联。

完整说明可在此处获得: http : //labs.wrprojects.com/how-to-use-google-tag-manager-with-rails-and-turbolinks/

使用turbolink实现谷歌标签管理器5.复制下面的代码并粘贴到头部内部。

   <% if Rails.env.production? %>  <% end %>