<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > GA中網(wǎng)站速度的度量與分析

          GA中網(wǎng)站速度的度量與分析

          作者: 時(shí)間:2012-08-09 來源:網(wǎng)絡(luò) 收藏

          很多文章都會說到對于用戶轉(zhuǎn)化的影響,慢的用戶更容易離開,尤其是可以找到替代內(nèi)容的情況下。

          本文引用地址:http://www.ex-cimer.com/article/154179.htm

          那么如何的加載呢,之前大家的做法是在頁面的頭部記一下時(shí)間:var start = new Date().getTime(),然后在頁腳計(jì)算一下用掉的時(shí)間:var timeUse = new Date().getTime() – start,把這兒的timeUse用事件的方式提交到服務(wù)器:_gaq.push(['_trackEvent', 'timeUse', '/home.html', 'load', timeUse]),最后在的事件列表,看事件的平均值來評價(jià)頁面的加載時(shí)間。

          這樣做,可以獲得加載時(shí)間,但不完整,完整的頁面加載是這樣的:

          1、用戶打開url鏈接

          2、瀏覽器查詢url的dns地址

          3、提交url請求到服務(wù)器端

          4、服務(wù)器端處理

          5、傳輸處理好的html文本內(nèi)容到瀏覽器

          6、瀏覽器解析html,并加載css,js,圖片等內(nèi)容

          7、加載完成,用戶看到完整的頁面內(nèi)容

          前面的timeUse獲取的其實(shí)是第6步操作的用時(shí),2到5步的用時(shí)都無法獲取,假設(shè)某個網(wǎng)站的dns查詢慢,服務(wù)器端處理慢,還是會影響用戶的體驗(yàn),而這個是我們無法的。

          其實(shí)dns查詢,等待服務(wù)器處理等時(shí)間,作為瀏覽器是知道的,于是HTML5規(guī)范為這部分的查詢,提供了接口,允許javascript來查詢詳細(xì)的用時(shí),具體文檔在這兒:https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#sec-navigation-timing-interface,調(diào)用的例子見這兒:http://www.html5rocks.com/en/tutorials/webperformance/basics/,假設(shè)我們要獲取當(dāng)前頁面的dns解析時(shí)間,只要:performance.timing.domainLookupEnd – performance.timing.domainLookupStart即可,目前支持該接口的瀏覽器有:firefox,chrome,IE9等對html5標(biāo)準(zhǔn)支持較好的瀏覽器。我實(shí)際看了一下我們站點(diǎn)的統(tǒng)計(jì),firefox/chrome/IE9瀏覽器共占 38% 這樣,不同類型網(wǎng)站因?yàn)橛脩羧翰煌?,這個比例會有差別。速度值可以作為參考,如果Chrome加載一個頁面特別慢,可以認(rèn)為IE6也快不到那里去,就該著手優(yōu)化了。

          作為與時(shí)俱進(jìn)的,當(dāng)然要使用更好的方式的,于是你可以在網(wǎng)站-》網(wǎng)站速度報(bào)表處看你的站點(diǎn)的詳細(xì)加載時(shí)間,包括:網(wǎng)頁的平均加載時(shí)間,重定向,dns查詢,服務(wù)器端處理等時(shí)間,在網(wǎng)頁計(jì)時(shí)(Page Timings)列表,可以按頁面看平均加載時(shí)間。

          如果選擇了一個時(shí)間段,點(diǎn)擊具體的頁面,如:/home頁,還可以看一下這個頁面在這段時(shí)間的加載速度變化。

          看過統(tǒng)計(jì)學(xué)的朋友都知道平均值是靠不住的,假設(shè)有10個用戶,9個加載速度是1秒,一個是191秒,這時(shí)得到的平均加載時(shí)間是:20秒,很顯然這兒的20秒是沒有意義的,我們需要看明細(xì),GA考慮到了這個問題,支持在報(bào)表頁點(diǎn)擊:效果(Performance)標(biāo)簽,查看明細(xì)的信息:

          從這個圖上,我們可以知道大多數(shù)用戶的加載時(shí)間在10秒左右,少部分用戶特別慢,超過了20秒,整體速度可以接受。

          在網(wǎng)頁計(jì)時(shí)(Page Timings)列表頁我們可以找出加載慢的頁面,有針對性的優(yōu)化。

          當(dāng)然在中國的網(wǎng)絡(luò)環(huán)境下,網(wǎng)頁加載速度還受所在城市,網(wǎng)絡(luò)運(yùn)營商等因素影響,這時(shí)可以按城市,頁面加載時(shí)間,配置一個自定義報(bào)告:

          效果如下:

          而網(wǎng)絡(luò)運(yùn)營商對于網(wǎng)站加載速度的影響,要用細(xì)分來做,目前中國主要運(yùn)營商有:電信和聯(lián)通,分別占據(jù)南北市場,電信的服務(wù)器提供商名會包含:chinanet,聯(lián)通會包含:unicom,以電信為例,新建一個細(xì)分:

          還是剛才的/home頁,我們這時(shí)就可以按運(yùn)營商來比較頁面加載速度了:

          這時(shí)我們可以看出聯(lián)通的頁面加載速度要比電信慢很多,這時(shí)就應(yīng)該考慮使用CDN加速了,畢竟16秒還是太慢了。

          影響網(wǎng)頁加載時(shí)間的因素有很多,除了運(yùn)營商,帶寬等,如果是sns類的站點(diǎn),同樣的home頁,不同用戶看到的內(nèi)容其實(shí)不一樣的,如:某個活躍用戶加入的小組多,好友多,這時(shí)他加載home頁自然會速度慢,如果要詳細(xì)的這部分用戶慢的原因,可以把用戶ID傳到自定義變量里,按用戶ID看加載時(shí)間。

          對于GA的網(wǎng)站速度報(bào)表,默認(rèn)情況下是不需要額外配置的,GA在統(tǒng)計(jì)頁面時(shí),會按1%的抽樣比例,提交頁面的加載時(shí)間,如果你的站點(diǎn)訪問量比較小,可以通過:

          _gaq.push(['_setSiteSpeedSampleRate', 20]),來調(diào)整整體的抽樣比例,或者對于重要的頁面,指定更高的抽樣比例。

          在有了網(wǎng)頁加載時(shí)間的數(shù)據(jù)后,就可以比較加載速度對跳出率,轉(zhuǎn)化的影響了,但我實(shí)際嘗試做的時(shí)候,卻發(fā)現(xiàn)沒有現(xiàn)成的指標(biāo),或維度來讓你篩選,我的想法是用頁面級自定義變量來標(biāo)記, key是speed,value是slow, fast,5秒以下算fast,超過5秒算slow,具體的操作,我后繼會補(bǔ)充。

          小結(jié)

          網(wǎng)站速度的度量不管對于網(wǎng)站開發(fā),還是網(wǎng)站分析都有重要的意義,通過改進(jìn)網(wǎng)站速度,我們可以提高用戶體驗(yàn),降低跳出率,提高轉(zhuǎn)化率,而這一切都是可以觀察量化的。



          關(guān)鍵詞: 分析 度量 速度 網(wǎng)站 GA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();