9

とで作成Site ActivityGoogle Analyticsれた Web アプリの を追跡する最良の方法を探しています。BackboneRequires

Google のページを見ると、このドロップイン プラグイン Backbone.Analytics が見つかりました。

私の質問は次のとおりです
。1) を使用しています。Backbone.Analytics追加するために backbone.analytics.js を変更する必要があり_gaq.push(['_setAccount', 'UA-XXXXX-X']);ますか?
2) 他に考えられる解決策/プラグインはありますか?

4

8 に答える 8

17

私は「自分でやる」スタイルを好みます:)それは本当に簡単です:

var Router = Backbone.Router.extend({

    initialize: function()
    {
        //track every route change as a page view in google analytics
        this.bind('route', this.trackPageview);
    },

    trackPageview: function ()
    {
        var url = Backbone.history.getFragment();

        //prepend slash
        if (!/^\//.test(url) && url != "")
        {
            url = "/" + url;
        }

        _gaq.push(['_trackPageview', url]);
    }
}

そして、いつものように Google アナリティクス スクリプトをページに追加します。

于 2013-01-22T09:26:04.783 に答える
3

私がそれをどのように行っているかを共有したいと思いました。これは大規模なアプリではうまくいかないかもしれませんが、ページ ビューやその他のイベントをいつ追跡するかを GA に手動で伝えるのが好きです。「all」または「route」にバインドしようとしましたが、必要なすべてのアクションを自動的に記録することはできませんでした。

App.Router = BB.Router.extend({
    //...
    track: function(){
        var url = Backbone.history.getFragment();

        // Add a slash if neccesary
        if (!/^\//.test(url)) url = '/' + url;

        // Record page view
        ga('send', {
            'hitType': 'pageview',
            'page': url
        });
    }
});

だからApp.Router.Main.track();、ナビゲートしたり、追跡したいことをしたりした後に電話するだけです。

現在パブリック ベータ版の新しいAnalytics.jsトラッキング スニペットを使用していることに注意してください。API は非常に直感的であるため、プラグインを使用して複雑さを抽象化する必要はありません。例: 次のように、無限スクロール ビューの最後までスクロールする人の数を追跡します。

onEnd: function(){
    ga('send', 'event', 'scrollEvents', 'Scrolled to end');
}

ここに画像の説明を入力 幸運を。

于 2013-10-03T07:01:11.750 に答える
3

何も変更する必要はありません。通常どおり、Google アナリティクスのコード スニペットを追加し、他の Javascript ライブラリと同じように Backbone.Analytics を含めます。

于 2012-07-17T20:43:55.850 に答える
1

これについて小さな投稿を書きました。誰かの役に立てば幸いです。

http://sizeableidea.com/adding-google-analytics-to-your-backbone-js-app/

var appRouter = Backbone.Router.extend({
     initialize: function() {
        this.bind('route', this.pageView);  
    },  
    routes: {
        'dashboard': 'dashboardPageHandler'
    },
    dashboardPageHandler: function() {
      // add your page-level logic here...    
    },
    pageView : function(){  
     var url = Backbone.history.getFragment();

     if (!/^\//.test(url) && url != ""){
          url = "/" + url;
      }

      if(! _.isUndefined(_gaq)){
         _gaq.push(['_trackPageview', url]);
      }  
   }   
});

var router = new appRouter();

Backbone.history.start();
于 2013-12-04T13:55:45.597 に答える
0

この質問に更新を投稿するだけで、私が知っている、または最後のハードルに落ちているように見える backbone.js 開発者から多くのことを得ることができるようです。

Javascript:

App.trackPage = function() {
 var url;
 if (typeof ga !== "undefined" && ga !== null) {
  url = Backbone.history.getFragment();
  return ga('send', 'pageview', '/' + url);
 }
};

Backbone.history.on("route", function() {
 return App.trackPage();
});

トラッキング スニペット:

<head>
 <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||
  function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();
  a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;
  a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script',
  '//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXXXXXX-X', 'auto');
 </script>
</head>

トラッキング スニペットは、アクティビティを追跡するすべてのページで使用できる必要があります。これは、すべてのコンテンツが挿入される index.html である可能性がありますが、一部のサイトには複数の静的ページまたは混合ページがある場合があります。必要に応じて ga('send') 関数を含めることができますが、ページの読み込み時にのみ起動します。

ここで見つけることができる完全なプロセスを示すのではなく、説明する、より詳細なブログ投稿を書きました: http://v9solutions.co.uk/tech/2016/02/15/how-to-add- google-analytics-to-backbone.js.html

于 2016-03-17T09:54:12.617 に答える
0

すべての回答はほとんど良いようですが、時代遅れです (2015 年 9 月)。この Google 開発者ガイドに従ってください: https://developers.google.com/analytics/devguides/collection/analyticsjs/single-page-applicationsこれ が私のバージョンのソリューションです (提案された呼び出しを に追加しましたga('set'...)):

MyRouter = Backbone.Router.extend
    ...
    initialize: () ->
        # Track every route and call trackPage
        @bind 'route', @trackPage

    trackPage: () ->
        url = Backbone.history.getFragment()
        # Add a slash if neccesary
        if not /^\//.test(url) then url = '/' + url
        # Analytics.js code to track pageview
        global.ga('set', {page: url})
        global.ga('send', 'pageview')
    ...
于 2015-09-28T21:24:43.773 に答える
0

他の可能なソリューション/プラグインについては、いくつかのプロジェクトでhttps://github.com/aterris/backbone.analyticsを使用しましたが、これも非常にうまく機能します。また、分析統合のある時点で便利なイベント追跡など、いくつかのオプションもあります。

于 2013-09-17T13:29:21.583 に答える