我不认为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 -->
答案 0 :(得分:3)
这与预览模式如何注入调试器iframe有关。
它是在初始页面加载时注入的,但由于turbolinks替换了整个主体,因此它也会从-ALL-后续页面重新加载中删除预览面板。
遗憾的是它几乎是如此,人们无能为力。
您的GTM实施可能仍然有效,但Google跟踪代码管理器中的预览模式与turbolinks页面重新加载不兼容。
是的,这使得在turbolinks增强型网站中调试GTM成为一个重大难题。
答案 1 :(得分:0)
bwarea
请尝试
bwarea
这是未经测试的。
我注意到你使用大括号'{'