2012-05-29 267 views
1

我想用jQuery來跟蹤網頁上的下載和其他事件。這很難調試。下面的代碼目前沒有工作。假設頁面加載了jQuery庫,並且所有的XXXX被替換爲正確的信息。有任何想法嗎?非常感激!jQuery谷歌分析跟蹤

<script type="text/javascript"> 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXX']); 
    _gaq.push(['_setDomainName', 'XXXXX.com']); 
    _gaq.push(['_addIgnoredRef', 'XXXXX.com']); 
    _gaq.push(['_trackPageview']); 
    if (jQuery) { 
        jQuery(document).ready(function() { 
            jQuery('a').click(function() { 
                var $a = jQuery(this); 
                var href = ($a.attr('href')) ? $a.attr('href') : ''; 
                if ((href.match(/^http/i)) && (!href.match(document.domain))) { 
                    var category = 'outgoing - XXXX Landing'; 
                    var event = 'click - XXXX Landing'; 
                    _gaq.push(['_trackEvent', category, event, href]); 
                } else { 
                    if (href.match(/.(doc|pdf|xls|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)$/i)) { 
                        var category = 'download - XXXX Landing'; 
                        var event = 'click - XXXX Landing'; 
                        _gaq.push(['_trackEvent', category, event, href]); 
                    } else { 
                        if (href.match(/^mailto:/i)) { 
                            var category = 'mailto - XXXX Landing'; 
                            var event = 'click - XXXX Landing'; 
                            _gaq.push(['_trackEvent', category, event, href]); 
                        } 
                    } 
                } 
            }); 
        }); 
    } 

    (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'; 
        if ('http:' == document.location.protocol) { 
            ga.src = 'http://www.google-analytics.com/ga.js'; 
        } else { 
            ga.src = 'https://ssl.google-analytics.com/ga.js'; 
        } 
        var s = document.getElementsByTagName('script')[0]; 
        s.parentNode.insertBefore(ga, s); 
    })(); 
</script> 
+1

這很難調試,部分原因是它的格式非常糟糕。你需要在你的問題和實際的代碼中糾正這個問題,如果你剛剛複製和粘貼它。 – Bojangles

+0

我已經用'console.log'而不是'_gaq.push'試過了你的代碼,它工作得很好。可能是'_gaq.push(['_ setDomainName','XXXXX.com']);'包含document.domain之外的其他域(例如,您正在本地主機上測試)。這種不匹配可能會阻止Google分析跟蹤。 – CodingHamster

+0

首先要調試你應該用** console.log()或alert(); ** - 來查看你的jQuery代碼是否正常工作,以取代所有** _ gaq.push()**調用 – shershen

回答

0

谷歌Analytics(分析)事件跟蹤內置

例如,如果你想跟蹤文件下載,你可以做這樣的事情 -

HTML:

<a href="sample.pdf" class="download">Click to download.</a> 

JS:

$("a.download").click(function() { 
    _gaq.push(['_trackEvent', 'Files', 'Downloaded']) 
}); 

以下是Google的官方Event Tracking Guide。該指南將爲您更詳細地解釋所有內容。

0

我可能會使用$ .getScript來下載並將GA代碼應用到DOM,而不是他們給你的樣板文件作爲樣板。在運行設置跟蹤代碼,域名等內容或_gaq不會執行任何操作之前,您還需要在DOM中使用該功能。