2011-08-11 51 views
8

我正在尋找一個很好的解決方案來爲Jquery mobile執行移動分析。我沒有檢查這個問題如何使用Jquery mobile執行移動分析

Flurry Analytics vs Google Analytics on the mobile platform

但這些都是針對特定平臺/手機制造商所有的解決方案上,不論製造商或操作系統的所有平臺,具體的,但jQuery Mobile的作品。基本上,我正在尋找一個針對webapps的分析解決方案。

附加信息: - bango看起來很貴,每月$ 49。 Admob不會工作,因爲我們不需要它做廣告,也不需要放置廣告。

回答

1

我使用了谷歌Analytics(分析)將以下代碼位,它工作得很好:

以下是非常正常的谷歌Analytics(分析)設置:

var _gaq = _gaq || []; 
_gaq.push(['_setAccount', '**-*****-**']); 

(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'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
})(); 

爲jQuery Mobile的更新是在這裏使每個虛擬頁記錄:

$(document).delegate('[data-role=page]', 'pageshow', function (event, ui) { 
    var url = location.href; 
    try { 
     if (location.hash) { 
      url = location.hash; 
     } 
     _gaq.push(['_trackPageview', url]); 
    } 
    catch(error) { 
     // error catch 
    } 
}); 
+0

將嘗試這併發送我的反饋。 – pal4life

+0

還沒有嘗試過,但Bango Analytics絕對適用於移動Web應用程序。 – pal4life

+0

defaulturl在哪裏定義? – pauloya

2

我使用了以下內容:

<script> 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-xxxxxx-xx']); 

    (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'; 
     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
    })(); 

$('[data-role=page]').live('pageshow', function (event, ui) { 
    try { 

     hash = location.hash; 

     if (hash && hash.length > 1) { 
      _gaq.push(['_trackPageview', hash.substr(1)]); 
     } else { 
      _gaq.push(['_trackPageview']); 
     } 
    } catch(err) { 

    } 

}); 
</script> 

'pageshow'事件甚至會觸發第一頁,所以不要以爲你想在GA設置中包含_trackPageview。此外,location.hash將返回帶有「#」字符的url,所以hash.subtr(1)將清除那個將對hash/pushstate訪問者進行規範化的關閉。

更新11/30/11:增加了檢查散列長度的ie錯誤(來自:Paulo Manuel Santos)。

+0

我發現,在某些情況下與IE瀏覽器和點擊後退按鈕後,網址是用空散列(http:blabla/Index#)呈現。 所以我將它改爲'if(hash && hash.length> 1)'。 – pauloya

+0

對於'else'我使用了'location.pathname'。 – pauloya

+0

任何人都試過這個解決方案,並發現它*沒有*工作?此設置僅適用於作爲在線演示網站推出的應用程序,但不適用於在手機上安裝我的應用程序。 – Wytze