File:GoogleAnalyticsPlugin.js
/**
* @module Container
* @namespace springroll
*/
(function()
{
/**
* @class Container
*/
var plugin = new springroll.ContainerPlugin();
plugin.open = function()
{
var gaHandler = onGoogleAnalyticEvent.bind(this);
// Client is setup, listen for learning event
this.client.on(
{
analyticEvent: gaHandler,
trackEvent: gaHandler // @deprecated
});
};
plugin.close = function()
{
this.client.off('analyticEvent');
this.client.off('trackEvent');
};
/**
* Track an event for Google Analtyics
* @method onGoogleAnalyticEvent
* @private
* @param {event} event Bellhop analyticEvent
*/
var onGoogleAnalyticEvent = function(event)
{
var data = event.data;
// Send to the logging service
this.loggingService.send('ga-event', data);
// Producer site implementation of sending events
var GoogleAnalytics = include("GA_obj", false);
if (GoogleAnalytics && this.isProduction)
{
GoogleAnalytics.trackEvent(
data.category,
data.action,
data.label,
data.value
);
}
/**
* Event when dispatching a Google Analytics event
* @event analyticEvent
* @param {object} data The event data
* @param {string} data.category The event category
* @param {string} data.action The event action
* @param {string} [data.label] The optional label
* @param {number} [data.value] The optional value
*/
this.trigger('analyticEvent', data);
};
}());