0

我有一個事件跟蹤器(位於main.js中,而不是內聯單擊處理程序),當用戶單擊具有特定類的項目時應該觸發該事件跟蹤器。但是,我的客戶報告說,這些事件跟蹤器從不開火,或者至少從未看到他們的回覆。然而,整個網站的其他GA事件跟蹤器正在工作。任何人都可以看到我的代碼下面可能導致這個問題的任何問題?Google事件跟蹤器沒有觸發

在main.js的js函數來處理這看起來像這樣:

$('.vote.complete').click(function() 
{ 
    whence = "toCompleted"; 
    vote_id = $(this).data('vote_id'); 
    cid = $(this).data('campaign_id'); 

    c_title = $('#outfitPair'+cid).data('campaign_title'); 
    u_id = $('#outfitPair'+cid).data('other_id'); 

    _gaq = window._gaq; 

    if(_gaq != undefined){ 
     _gaq.push(['_trackEvent', 'ViewPreviousVote', c_title, u_id]); 
    } 

    $('#outfitPair'+cid).find('.button.vote').removeClass('to-vote'); 
    $(this).addClass('to-vote'); 

    $.get('/campaigns/new_pair?whence='+whence+'&vote_id='+vote_id) 

    return false; 
}); 

爲被點擊的是什麼樣子的HTML:

<a href="#" class="button vote complete" data-vote_id="9490" data-campaign_id="5"> 
    <span>01</span> 
</a> 

而且在我的佈局標題中的腳本:

<script> 
var _gaq = _gaq || []; 
     _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']); 
     _gaq.push(['_setDomainName', 'mywebsite.com']); 
     _gaq.push(['_trackPageview']); 

     (function() { 
     var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
     })(); 

     window._gaq = _gaq; 
</script> 

GA調試器在加載網頁時在我的js控制檯中返回這個,雖然沒有新東西顯示出來,當我嘗試觸發事件追蹤:

Registered new plugin: "linker" analytics_debug.js:5 
Creating new tracker: t0 analytics_debug.js:5 

Sent beacon: 
v=1&_v=j11d&a=XXXXXXXXX&t=pageview&_s=1&dl=http%3A%2F%2Fapp.website.com%2Fcampaigns%2Fvote&dr=&ul=en-us&de=UTF-8&dt=Website&sd=32-bit&sr=1366x768&vp=1349x667&je=1&fl=11.8%20r800&_u=MAC~&cid=XX.XX&tid=UA-XXXXXXX-X&z=812880404 

analytics_debug.js:5 
adSenseId (&a):    XXXXXXXXXX analytics_debug.js:5 
apiVersion (&v):    1 analytics_debug.js:5 
clientId (&cid):    XXX.XXX analytics_debug.js:5 
encoding (&de):    UTF-8 analytics_debug.js:5 
flashVersion (&fl):   11.8 r800 analytics_debug.js:5 
hitType (&t):     pageview analytics_debug.js:5 
javaEnabled (&je):   1 analytics_debug.js:5 
language (&ul):    en-us analytics_debug.js:5 
location (&dl):    http://app.website.com analytics_debug.js:5 
referrer (&dr):    analytics_debug.js:5 
screenColors (&sd):   32-bit analytics_debug.js:5 
screenResolution (&sr):  1366x768 analytics_debug.js:5 
title (&dt):     Website analytics_debug.js:5 
trackingId (&tid):   UA-XXXXXXXX-X analytics_debug.js:5 
viewportSize (&vp):   1349x667 analytics_debug.js:5 
+0

那麼它不是一個答案,但我有一個類似的問題,只是發現這幾分鐘前,似乎幫助我:https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna/details – user1431083

+0

你有任何錯誤嗎? – putvande

+0

我的js控制檯沒有錯誤。我會用GA調試器在控制檯中返回的內容更新我的問題。 – xxyyxx

回答

0

是分配給u_id了一批other_id價值?如果opt_label參數是一個整數,jQuery .data()將嘗試轉換爲Javascript值,並且_trackEvent可能會自動失敗。

您可以使用.attr()來獲取屬性值而無需轉換。嘗試:

u_id = $('#outfitPair'+cid).attr('data-other_id'); 
0

我知道這是一個老問題,但基於您的調試器輸出,它看起來像是期待新的「Universal Analytics」跟蹤代碼。我可以告訴,因爲調試器輸出顯示「analytics_debug.js」而不是「ga_debug.js」。

您在標題中給出的腳本使用舊的異步語法。也許您在Google Analytics中創建了一個媒體資源,並選擇了Universal Analytics而不是Classic。如果是這樣,你應該儘量升級到新的代碼:

<!-- Google Analytics --> 
<script> 
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 
})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 

ga('create', 'UA-XXXX-Y'); 
ga('send', 'pageview'); 

</script> 
<!-- End Google Analytics --> 

https://developers.google.com/analytics/devguides/collection/analyticsjs/

然後你的事件代碼將ga('send', 'event', category, action, label, value);