1. 程式人生 > >GA.js 收集使用者資訊

GA.js 收集使用者資訊

Google Anlytics 分析程式碼是非同步載入的,一般來講不會影響網頁效能,但是技術部的網頁效能報告里老是提到 ga.js 的狀態為 Aborted,說明 ga 雖然是非同步跟蹤,但某些情況下對網頁效能與載入時間確實存在影響。Google分析程式碼到底會不會影響網頁效能?本地託管ga.js是否可行?本文提供本地伺服器託管ga.js的基本思路與實現方法。

出現請求Aborted狀態,意思著這個請求被終止,原因很簡單,因為我們處於某個特定地區的網路環境(你懂的)。那如何解決非GA程式碼請求ga.js的載入速度?網上找到的方案不多於三種,但基本上都是修改跟蹤程式碼,比如刪除http:與https:的判斷、忽略cookie殘缺性檢查等。但是筆者認為:提高ga.js可用性的徹底辦法是“本地託管ga.js,將ga.js移植到本地伺服器”。本文經過實測,與站長/SEO朋友們分享一下實現過程。

本地化ga.js:本地託管ga.js檔案,網頁效能/載入時間神馬的都是浮雲

Google分析程式碼到底會不會影響網頁效能?

跟一些站長,或者網站資料分析師們交流時發現,大部分人的觀點是“因為GA跟蹤是非同步跟蹤模式,所以不會影響頁面效能”。在這一點上,SEO祥子倒有自己的保留意見:是的,2009年底,google analytics推出GA非同步跟蹤程式碼,效能相比以前的同步跟蹤程式碼在網頁效能方面有了跨越式的提升。但是,祥子根據多年做站與SEO的經驗,GA並非有了非同步跟蹤就萬無一失了!

1。首先,我們要基於一個前提,GA使用的是非同步統計模式,大大提高網頁效能。但是我們不能忽略:客戶端瀏覽器仍然要下載大約為35.9KB的ga.js檔案,而這個檔案是從位於美國 加利福尼亞州的Google伺服器上下載。

2。我們的網路環境不是非常理想,雖然GOOGLE伺服器的可能性很高, 但是對中國使用者來講,成功連線率有明顯影響。我曾經查閱過相關的資料,中國使用者開啟www.google.com的可用率為92%左右,www.google-analytics.com/ga.js 的可能率高很多,但是也就是99.2%上下。這是2011年的資料,進入2012年,情況更糟糕,Google analytics網站更難開啟。

3。ga.js瀏覽器快取週期為12小時,而且使用者訪問使用GA分析的不同網站,載入的是同一個ga.js檔案。意味著使用者訪問不同網站時不需重複載入檔案。這是個很好的訊息。 但是,鑑於google在中國大陸使用者的連通率,現在使用GA分析系統的網站不是太多;受ga.js 12小時快取週期的影響,如果使用者是12小時前瀏覽過使用GA的網站,將重新載入檔案;還有部分沒有瀏覽器從來沒有載入過ga.js的使用者就更不用說了,網頁效能肯定受到影響。

綜上所述,GA程式碼雖然對網頁效能影響的機率很小,但對部分使用者來講仍有載入ga.js檔案失敗的風險。

本地託管ga.js是否可行?

那麼,將ga.js本地化能否有效跟蹤訪問?ga.js是否允許本地化?

查閱了google analytics幫助中心“本地託管 ga.js 檔案”,Google是充許ga.js本地託管的,不過,它似乎並不鼓勵這麼做。

以下為GOOGLE關於ga.js本地化的說明

GOOGLE幫助中心:本地託管 ga.js 檔案

雖然您可以下載檔案進行檢查,但我們建議使用者不要自行託管 ga.js。

大部分人希望在本地託管 ga.js,是為了避免網站訪問者在每次請求網頁時都要從 Google 下載該檔案。然而,無論 ga.js託管在何處,它都只需下載一次,然後就會快取(儲存)在訪問者的瀏覽器中,以便用於後續網頁瀏覽。

因此,對於您和您的訪問者來說,從 Google 的伺服器中引用 ga.js 檔案最有利。這樣能夠確保您使用的是最新版本:只要有新功能和其他改進,立刻就會提供給您。這將有助於我們儘可能確保您報告的準確性。

本地伺服器託管ga.js的基本思路:

託管ga.js到本地伺服器的思路非常簡單:

1。用程式下載ga.js到本地伺服器;

2。定期檢查ga.js檔案,保持本地伺服器為最新版本的檔案;

3。修改並將跟蹤程式碼植入網頁;

4。成功發做分析資料,GA帳戶接收報表。

從google伺服器下載ga.js檔案到本地伺服器,更新週期–每天。

值得一提的是,ga.js檔案會不定期的更新內容,如果使用舊版本的ga檔案,可能導致跟蹤出現問題,所以需要保持本地伺服器ga.js為最新版本,我想一天更新一次,應該沒有問題。

在網頁裡植入GA程式碼

本地伺服器已有最新版本的ga.js檔案,只需修改頁面內跟蹤程式碼即可,修改的主要內容就是把ga.src修改即可。如果你的網站不使用https://,那麼可以對程式碼進行簡化,刪除網頁是http:或https:的判斷即可。以下為測試程式碼,經過驗證,GA接收資料正常。

 

<script type="text/javascript">
var_gaq=_gaq||[];
_gaq.push(['_setAccount','UA-37616747-1']);
_gaq.push(['_trackPageview']);
(function(){
varga=document.createElement('script');ga.type='text/javascript';ga.async=true;
ga.src='http://www.55ben.com/本地伺服器目錄/ga.js';
//因為不需判斷頁面是否屬於https:
//可以把ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
//改為:ga.src ='你的本地ga.js地址';
vars=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(ga,s);
})();
</script>