Google Analytics推出異步追蹤(Asynchronous Tracking)已經有一陣子了,并且現(xiàn)在對于新創(chuàng)建的賬戶和配置文件都只提供最新的異步追蹤代碼。有傳言說這是因為Google將把網(wǎng)頁加載速度加入到網(wǎng)站搜索排名的算法中。而新的追蹤代碼將以異步的方式加載,相對于傳統(tǒng)的追蹤代碼,實施了異步追蹤的網(wǎng)頁加載速度會更快。 藍鯨網(wǎng)站分析筆記 Original Source
異步追蹤的優(yōu)勢
頁面加載速度快
異步追蹤使用異步的方式加載代碼,提高了JavaScript的加載速度,并且不會對頁面中的其他內容產生影響。
追蹤數(shù)據(jù)更準確
異步追蹤代碼放在頁面的頂部,</head>之前。與傳統(tǒng)追蹤代碼相比減少了因為追蹤代碼沒有被及時加載而丟失訪客記錄的可能。
傳統(tǒng)的追蹤代碼中,如果定制追蹤的事件在ga.js文件加載前被觸發(fā),這個事件可能無法被記錄到。使用異步追蹤將可以記錄到。
異步追蹤的定制和實施
異步追蹤代碼不能和傳統(tǒng)的追蹤代碼在一個頁面中同時使用,但可以在不同的頁面中分別使用。例如在網(wǎng)站的一部分頁面中使用傳統(tǒng)追蹤代碼,在另一部分網(wǎng)頁中使用異步追蹤代碼。Google官方建議將異步追蹤代碼放置在頁面頂部的</head>之前,不過你也可以按照原來的方式依然將代碼放置在頁面尾部</body>前。甚至可以將代碼分割開,分別放置在頁面頂部和尾部。
<html>
<head>
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
</script>
</head>
<body>
<p>bluewhale.cc </p>
<script> ?(function() {
var ga = document.createElement(’script’); ? ? ga.type = ‘text/javascript’; ga.async = true;
ga.src = ‘ http://bluewhale.cc/ga.js’;
var s = document.getElementsByTagName(’script’)[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>
同樣異步追蹤代碼也可以通過簡單的定制來提高效率。在上面標紅的部分中減少了對頁面類型的判斷過程,同時從本地調用ga.js文件。如果你的網(wǎng)站是第一次添加Google Analytics,直接在頁面中相應的位置粘帖代碼就可以了。如果之前使用的是傳統(tǒng)追蹤,并且進行過代碼定制,要遷移到異步追蹤就比較復雜了。
異步追蹤代碼的遷移
異步追蹤代碼和傳統(tǒng)的追蹤代碼在語法上有很多差異,在遷移時除了替換主要的追蹤代碼外,還要對定制的部分一一修改。下面以我的博客為例說明下具體過程。
遷移前的準備工作
首先,將頁面中的傳統(tǒng)追蹤代碼復制到一個txt文件中。并對追蹤代碼和網(wǎng)站中所有的定制內容進行記錄。
然后,將異步追蹤中相對應的定制語法保存在另一個txt文件中。并按照傳統(tǒng)代碼的內容進行定制修改。
傳統(tǒng)追蹤代碼,其中藍色部分是定制內容。
<!–GA tracking code begin–>
<script type=”text/javascript” src=”http://www.google-analytics.com/ga.js”></script>
<script type=”text/javascript”>
var pageTracker = _gat._getTracker(“UA-12347890-1″);
pageTracker._addOrganic(“soso”, “w”);
pageTracker._addOrganic(“sogou”, “query”);
pageTracker._addOrganic(“yodao”, “q”);
pageTracker._trackPageview();
</script>
<!–GA tracking code end–>
異步追蹤中相對應的定制語法
_gaq.push(['_addOrganic', 'soso', 'w']);
_gaq.push(['_addOrganic', 'yodao', 'q']);
_gaq.push(['_addOrganic', 'sogou', 'query']);
異步追蹤代碼遷移
異步追蹤代碼遷移前,先刪除網(wǎng)站頁面代碼中所有的傳統(tǒng)追蹤代碼,然后粘帖新的異步追蹤代碼。同時用新的異步追蹤定制追蹤逐一替換傳統(tǒng)的定制追蹤。
遷移后的異步追蹤代碼
<!–GA tracking code begin–>
<script type=”text/javascript”>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-12347890-1']);
_gaq.push(['_addOrganic', 'soso', 'w']);
_gaq.push(['_addOrganic', 'yodao', 'q']);
_gaq.push(['_addOrganic', 'sogou', 'query']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement(’script’); ga.type = ‘text/javascript’; ga.async = true;
ga.src = ‘http://www.google-analytics.com/ga.js’;
var s = document.getElementsByTagName(’script’)[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!–GA tracking code end–>
常用定制追蹤方法對比
以下是一些常用的定制追蹤方法。在進行代碼遷移時非常有用。前面的是傳統(tǒng)追蹤代碼,后面是相對應的異步追蹤代碼。
虛擬頁面:
<a href=”http://bluewhale.cc”onClick=”javascript:pageTracker._trackPageview(‘/go/bluewhale.cc’);”>藍鯨網(wǎng)站分析筆記</a>
<a href=” http://bluewhale.cc”onClick=”javascript: _gaq.push(['_trackPageview', ‘/go/bluewhale.cc’]);”>藍鯨網(wǎng)站分析筆記</a>
跨域追蹤:
pageTracker._setDomainName(‘none’);
pageTracker._setAllowLinker(true);
_gaq.push(['_setDomainName', 'none']);
_gaq.push(['_setAllowLinker', true]);
事件追蹤:
<a onclick=”pageTracker._trackEvent(‘category’, ‘action’, ‘opt_label’, opt_value);”> 藍鯨網(wǎng)站分析筆記</a>
<a onclick=”_gaq.push(['_trackEvent', 'category', 'action', 'opt_label', opt_value]);”> 藍鯨網(wǎng)站分析筆記</a>
搜索引擎,關鍵詞,推介:
pageTracker._addIgnoredOrganic(‘藍鯨網(wǎng)站分析筆記’); //將搜索關鍵字歸為直接訪問
pageTracker._addIgnoredRef(‘bluewhale.cc’); //將推介流量歸為直接流量
pageTracker._addOrganic(’sogou’, ‘query’); //增加新的搜索引擎
_gaq.push(['_addIgnoredOrganic', '藍鯨網(wǎng)站分析筆記']);
_gaq.push(['_addIgnoredRef', ''bluewhale.cc ']);
_gaq.push(['_addOrganic', 'sogou', 'query']);
訪問有效時間:
pageTracker._setSessionCookieTimeout(3600000);
_gaq.push(['_setSessionCookieTimeout', 3600000]);
電子商務追蹤:
var pageTracker = _gat._getTracker(‘ UA-12347890-1′);
pageTracker._trackPageview();
pageTracker._addTrans(”, ”, ”, ”, ”, ”, ”, ” );
pageTracker._addItem(”,”,”,”,”,”);
pageTracker._trackTrans();
_gaq.push(['_setAccount', ' UA-12347890-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['_addTrans', ('', '', '', '', '', '', '', '' ]);
_gaq.push(['_addItem', '','','','','','']);
_gaq.push(['_trackTrans']);