导航到使用TurboLinks的页面时,不显示Google跟踪代码管理器预览

时间:2017-01-03 18:13:21

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

我不认为GTM正在为我的Rails应用程序正确记录数据。当我使用预览功能时,开发人员工具中的GTM预览数据仅在初始页面加载时显示,后续页面加载(使用turbolinks)不显示预览数据。我应该如何使用TurboLinks设置GTM?

我在标题中设置了我的GTM:

<script>
var dataLayer = [];
(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=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-N7MDCP');</script>
<!-- End Google Tag Manager -->

然后在身体的顶部:

<script>
<% if user_signed_in? %>
  dataLayer.push({'userID': '<%= current_user.id %>'},{'userCategory': 'User'});
<% end %>
</script>


<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N7MDCP"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->


<!-- Google Tag Manager trigger for Turbolinks -->
 <script type="text/javascript">
   var url = window.location.href;
   dataLayer.push({
     'event':'pageView',
     'virtualUrl': url
   });
 </script>
 <!-- End Google Tag Manager trigger for Turbolinks -->

2 个答案:

答案 0 :(得分:3)

这与预览模式如何注入调试器iframe有关。

它是在初始页面加载时注入的,但由于turbolinks替换了整个主体,因此它也会从-ALL-后续页面重新加载中删除预览面板。

遗憾的是它几乎是如此,人们无能为力。

您的GTM实施可能仍然有效,但Google跟踪代码管理器中的预览模式与turbolinks页面重新加载不兼容。

是的,这使得在turbolinks增强型网站中调试GTM成为一个重大难题。

答案 1 :(得分:0)

bwarea

请尝试

bwarea

这是未经测试的。

我注意到你使用大括号'{'