Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Barebones google analytics RequireJS module wrapper for “universal analytics” with example of how to use it within a single page application
/**
* Google analytics include (using "Universal Analytics")
* https://gist.github.com/acusti/8718758
*/
/*global define */
define(function(require) {
'use strict';
var ga_amd;
// Setup temporary Google Analytics objects
window.GoogleAnalyticsObject = 'ga';
window.ga = function() {
(window.ga.q = window.ga.q || []).push(arguments);
};
window.ga.l = 1 * new Date();
// Create a function that wraps `window.ga`
// This allows dependant modules to use `window.ga` via amd module
ga_amd = function () {
window.ga.apply(this, arguments);
};
// Asynchronously load google's analytics.js; it will take over `window.ga` object after it loads
// This allows us to add events to `window.ga` before the library has fully loaded
require(['//google-analytics.com/analytics.js']);
return ga_amd;
});
/**
* Google analytics tracking
*/
/*global define */
define(function(require) {
'use strict';
var // Helpers
ga = require('app/google-analytics'),
// Google analytics settings
tracking_id = '{{TrackingID}}',
tracking_domain = '{{Domain}}';
return {
update : function() {
var url = window.location.pathname;
// Set up your pageview URL
// To push the hash as a path, for example:
url += window.location.hash.substr(1);
// Track it
ga('send', 'pageview', url);
},
init : function() {
// Initialize analytics
ga('create', tracking_id, tracking_domain);
ga('send', 'pageview');
}
};
});
@acusti
Copy link
Author

acusti commented Jan 30, 2014

Google analytics tracking in RequireJS for a Single Page Application

Just:

var track = require('app/tracking');

where you need it, then track.init() to start it off, and track.update() thereafter (perhaps onhashchange).

Loading

@acusti
Copy link
Author

acusti commented Jan 30, 2014

Note that you could also just require the google-analytics module from whatever JS module (like main) and do:

ga('create', '{{TrackingID}}', '{{Domain}}');
ga('send', 'pageview');

Loading

@Oxicode
Copy link

Oxicode commented Apr 25, 2014

Gracias, solo debes corregir
require(['http://www.google-analytics.com/analytics.js']);
por
require(['//google-analytics.com/analytics.js']);

Loading

@denisinla
Copy link

denisinla commented Aug 16, 2014

Change:

require(['http://www.google-analytics.com/analytics.js']);

to

require(['//.google-analytics.com/analytics.js']);

Loading

@christianhaller
Copy link

christianhaller commented Feb 16, 2015

require(['//google-analytics.com/analytics.js']);

Loading

@dadfer
Copy link

dadfer commented Nov 7, 2017

Does this code work with the current version of Google Analytics? I have been testing the code and ga shows me the amount of users online but it does not show me what screen is being viewed even when I call the update function. Please help

Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment