A drop-in plugin that integrates Google's trackEvent
directly into Backbone's navigate
function. Works best with pushState
set to true
. If pushState
is turned off, it's possible Google will register visits twice on page load. You can mitigate that by removing the trackEvent
from the Google code in your site.
- JQuery
- Backbone.js (Tested in 0.5.3)
- Underscore.js (Tested in 1.2.3)
Add the asynchronous Google Analytics code to your site.
Removing this line will prevent double counting if you load your page, and then call Backbone's route right afterwards.
Add these dependencies to your site's <head>
, in order:
<script src="jquery.js"></script>
<script src="underscore.js"></script>
<script src="backbone.js"></script>
<script src="backbone.analytics.js"></script>
In each function for each of your Backbone routes, simply call the navigate
function as you normally would. Backbone.Analytics will call _gaq.push(['_trackPageview', '/some-page'])
after completing the Backbone route.
var TestRouter = Backbone.Router.extend({
routes: {
'some-page': 'somePage'
},
somePage: function() {
this.navigate('some-page');
return false;
}
});
var router = new TestRouter();
Backbone.history.start();
router.somePage();
// The alternative might be...
router.navigate('some-page', true);