2011-08-11 7 views
8

私はJqueryモバイルのモバイルアナリティクスを行うための良い解決策を探しています。私はこの質問にJqueryモバイルを使用してモバイルアナリティクスを行う方法

Flurry Analytics vs Google Analytics on the mobile platform

をチェックしましたが、これらは関係なく、メーカーやオペレーティングシステムのすべてのすべてのプラットフォーム上で特定のが、jQueryのモバイル作品プラットフォーム固有/電話メーカーのためのソリューションです。基本的に私はWebアプリケーション用の分析ソリューションを探しています。

追加情報: - バンゴは$ 49 /月で高価に見えます。 Admobは広告掲載の必要性がなく、広告を掲載する必要もないため、仕事がありません。

答えて

1

私は、Googleアナリティクスのコードの次のビットを使用して、それがうまく機能:

次はかなり通常のGoogleアナリティクスの設定です:

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

haventはこれをまだ試していますが、Bango AnalyticsはモバイルWebappsでは間違いなく動作します。 – 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'イベントが発生するため、_trackPageviewをGA設定に含めないといけません。また、location.hashはurlに "#"文字を返すので、hash.subtr(1)はそれを消去し、ハッシュ/プッシュステートの訪問者を正規化します。

更新日11/30/11:バグのハッシュ長のチェックが追加されました(Paulo Manuel Santosから)。

+0

私は、IEでいくつかのケースでは、空のハッシュ(http:blabla/Index#)でレンダリングされます。 だから、 'if(hash && hash.length> 1)'に変更しました。 – pauloya

+0

'else'については' location.pathname'を使用しました。 – pauloya

+0

誰もこの解決策を試してみたが、*動作していないことが分かった?この設定は、私がオンラインデモサイトとして出したアプリでのみ動作しますが、携帯電話で自分のアプリをインストールした場合は動作しません。 – Wytze

関連する問題