0

グーグルアナリティクスをあなたのJQMサイトと統合する方法を説明するたくさんの投稿を見てきましたが、それは私にとってはうまくいかないようです。私はJQMバージョン1.2を使用しており、次のコードを含む外部javascriptファイルがあります。

var _gaq = _gaq || []; _gaq.push(['_ setAccount'、'UA-12345678-9']);

(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){}});

これが機能しない理由を見つけられますか?外部ファイルではなく、各ページにコードをインラインでロードする必要がありますか?

4

2 に答える 2

1

「pageshow」イベントへのページビューをトリガーする必要があります。

参照: http: //roughlybrilliant.com/jquery_mobile_best_practices#7

これを試して:

var _gaq = _gaq || [];

    $(document).ready(function(e) {
        (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 {
            _gaq.push(['_setAccount', 'YOUR_ANALYTICS_ID_GOES_HERE']);

            if ($.mobile.activePage.attr("data-url")) {
                _gaq.push(['_trackPageview', $.mobile.activePage.attr("data-url")]);
            } else {
                _gaq.push(['_trackPageview']);
            }
        } catch(err) {}

    });

上記のコードを外部ファイルに配置する場合は、コードが適切なタイミングで実行されることを確認してください(JQMとページが読み込まれた後)...このコードをメインのhtmlファイルの最後に添付することをお勧めします。

于 2012-10-06T19:42:42.853 に答える
0
var _gaq = _gaq || [];

    $(document).ready(function(e) {
        (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 {
            _gaq.push(['_setAccount', 'YOUR_ANALYTICS_ID_GOES_HERE']);

            if ($.mobile.activePage.attr("data-url")) {
                _gaq.push(['_trackPageview', $.mobile.activePage.attr("data-url")]);
            } else {
                _gaq.push(['_trackPageview']);
            }
        } catch(err) {}

    });

警告:ライブメソッドの名前がonに変更されました

(php、jsp)ページに挿入された別のファイルである可能性があります

データロールページのdivを閉じる直前に挿入する必要があります

jquery mobileのベストプラクティスとより具体的なものを確認できます。http://roughlybrilliant.com/jquery_mobile_best_practices#7を参照してください。

于 2013-08-27T14:07:31.117 に答える