2017-01-03 44 views
0

我不認爲GTM正在爲我的Rails應用程序正確記錄數據。當我使用預覽功能時,開發人員工具中的GTM預覽數據僅在初始頁面加載時顯示,後續頁面加載(使用turbolink)不顯示預覽數據。我應該如何使用TurboLink建立GTM?導航到使用TurboLinks的頁面時,Google跟蹤代碼管理器預覽不顯示

我已經建立了我的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 --> 
+1

沒有評論的投票是相當差的做法。 – Will

回答

0
dataLayer.push(
    {'userID': '<%= current_user.id %>'}, 
    {'userCategory': 'User'} 
); 

,而不是請儘量

window.dataLayer = window.dataLayer || []; 
window.dataLayer.push({ 
    'userID': '<%= current_user.id %>', 
    'userCategory': 'User' 
}); 

這是未經測試的。

我注意到你的大括號使用「{」

2

這與預覽模式如何注入調試器IFRAME做。

它在初始頁面加載時被注入,但由於turbolinks替換了整個主體,它也從-ALL-後續頁面重新加載中刪除預覽面板。

令人遺憾的是,它幾乎是這樣,沒有多少人能做到。

您的GTM實施可能仍在工作,但Google跟蹤代碼管理器中的預覽模式與turbolinks頁面重新加載不兼容。

是的,這使得在turbolinks增強型網站中調試GTM成爲一大痛苦。

相關問題