2009-08-11 85 views
0

我試圖捕獲某些下載鏈接的點擊並在Google Analytics中跟蹤它們。這裏是我的代碼使用Google Analytics執行trackPageview時出現問題

var links = document.getElementsByTagName("a"); 
for (var i = 0; i < links.length; i++) { 
    linkpath = links[i].pathname; 
    if(linkpath.match(/\.(pdf|xls|ppt|doc|zip|txt)$/) || links[i].href.indexOf("mode=pdf") >=0){ 
     //this matches our search 
     addClickTracker(links[i]); 
    } 
} 
function addClickTracker(obj){ 
    if (obj.addEventListener) { 
     obj.addEventListener('click', track , true); 
    } else if (obj.attachEvent) { 
     obj.attachEvent("on" + 'click', track); 
    } 
} 
function track(e){ 
    linkhref = (e.srcElement) ? e.srcElement.pathname : this.pathname; 
    pageTracker._trackPageview(linkhref); 

} 

一切直到pageTracker._trackPageview()調用的作品。在我的調試中,linkhref作爲字符串被正確地傳遞。沒有異常的人物,沒有什麼問題在於,通過觀看我的http請求,Google從不會再跟蹤gif(就像在「onclick」屬性中調用此函數一樣)。從我的JS控制檯調用跟蹤器也能按預期工作。這隻在我的聽衆中。

難道我的聽衆在沒有機會聯繫Google服務器之前沒有推遲默認操作(加載新頁面)?我見過其他跟蹤腳本,它們沒有任何推遲做類似的事情。

回答

0

嘗試

pageTracker._trackPageview( '/ pageX屬性/ downloadlink.html')

而且,只是爲了好玩確保GA代碼此腳本之前先加載。有時遺傳算法很挑剔並且很奇怪。

讓我知道這是否有助於

@ctrentmarketing

+0

是的,我試過跟蹤靜態路徑如你所說,這也不能工作。肯定確保GA在這個腳本之前加載,並且沒有骰子。 – dmrnj 2009-08-12 14:08:50

+0

我覺得自從這差不多一年之後,我就要將這個問題歸咎於更新,而且我多次遇到這個問題。 我的_pageTracker對象正在使用_setDomainName(),但我在本地嘗試此代碼。當域衝突時,跟蹤JS顯然加載,但跟蹤像素永遠不會被調用。 – dmrnj 2010-07-21 13:12:04