2012-02-28 232 views
0

我已將Google Analytics代碼添加到我的網站(在PHP頁面中),並且還添加了跟蹤出站鏈接/事件的代碼。代碼稍微修改了一些,因爲我不需要等一秒鐘才能打開鏈接,因爲它們都是在新窗口中打開的。Google Analytics(分析)JavaScript事件跟蹤代碼無法跟蹤事件

傳出鏈接都正常工作。

由於某些原因,事件根本沒有被跟蹤。

這裏的標頭中的分析代碼:

<script type="text/javascript"> 

    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXXXX-X']); 
    _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); 
    })(); 

</script> 

<script type="text/javascript"> 
function recordOutboundLink(link, category, action) { 
    try { 
    var myTracker=_gat._getTrackerByName(); 
    _gaq.push(['myTracker._trackEvent', category, action]); 
    }catch(err){} 
} 
</script> 

這裏是我的每一個環節上的代碼:

<a href="http://sitelink.tld" target="_blank" onClick="recordOutboundLink(this, 'Outbound Links', 'http://sitelink.tld');"> 

有人可以幫助我弄清楚爲什麼事件會不會在「Google Analytics事件」頁面上展示?

+1

你可以檢查你的javascript調試輸出。它可能包含一些有用的警告或錯誤。 – CodesInChaos 2012-02-28 09:30:45

+0

好主意,沒有想到 - 我會弄清楚如何做到這一點,並儘快檢查... – IsaacL 2012-02-28 14:13:42

+0

剛剛做了,它似乎與新代碼正常工作,但我真的看不到任何東西與舊的代碼... – IsaacL 2012-02-28 16:13:42

回答

1

你混合了古老的同步語法和新的異步synteax。 你函數應該是這樣的:

function recordOutboundLink(link, category, action) { 
    _gaq.push(['_trackEvent', category, action]); 
} 
+0

那我還需要接球員代碼嗎?我會很快嘗試 - 謝謝! – IsaacL 2012-02-28 07:52:03

+0

我不使用它。我從來沒有看到在這些地方出現的錯誤。但是,如果你願意,隨時添加它。 – Eduardo 2012-02-28 08:20:13

+0

似乎工作 - 非常感謝! – IsaacL 2012-02-28 16:12:20

1

這是你的代碼中的拼寫錯誤嗎? var myTracker=_gat._getTrackerByName();

不宜_gat_gaq

+0

不,我相信這是正確的,並在網上快速搜索似乎驗證...感謝嘗試,但! – IsaacL 2012-02-28 07:40:20

1

我使用這個鏈接代碼,並形成與默認跟蹤代碼,我得到的事件,類動作等,這只是一個有頭兩個字段設置元素。

onclick="_gaq.push(['_trackEvent', 'Site wide', 'Search Input']);"

1

給JS的時間來運行,並通過把一個setTimeout在該函數的事件發送到GA。在執行_gaq.push之前,頁面正被重定向到出站鏈接。

function recordOutboundLink(link, category, action) { 
    _gaq.push(['_trackEvent', category, action]); 
    setTimeout('document.location = "' + link.href + '"', 100); 
} 

或者,打開一個新的窗口:

function recordOutboundLink(link, category, action) { 
    _gaq.push(['_trackEvent', category, action]); 
    setTimeout('window.open("' + link.href + '","newsite")', 100); 
} 

如果您確定跟蹤器正在運行,並且有時間的新窗口中加載之前運行,那麼你原來的解決方案應該工作。

+0

如上所述,由於所有鏈接都是在新標籤頁/窗口中打開,所以沒有必要或不需要超時,因此在新頁面打開時,跟蹤代碼有足夠的時間在原始頁面上運行,超時會導致「目標」選項不起作用。 – IsaacL 2012-02-28 14:10:14

+0

@IsaacL我添加了一個新窗口打開的例子。但是如果跟蹤器有時間運行,您應該會看到結果或者至少會在[已安裝GA調試版的Chrome]控制檯中發送事件的跟蹤器(https://chrome.google.com/webstore/detail/jnkmfdileelhofjcijamephohjechhna )。 – 2012-02-28 14:51:03

+0

我結束了使用上面的代碼更改,它不需要超時,它似乎工作正常,但感謝您的幫助! – IsaacL 2012-02-28 16:12:47

相關問題