Files
cardsforscience/src/js/analytics.js
T

98 lines
2.9 KiB
JavaScript

/** Custom google analystics events **/
var Helpers = require("js/helpers");
// google analystics async code
(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');
var analytics = module.exports =
{
enabled: true,
screens:
{
main: 'Main screen',
about: 'About',
achievements: 'Achievements',
info: 'Physics information'
},
events:
{
categoryResearch: 'Research',
categoryHR: 'HR',
categoryUpgrades: 'Upgrades',
actionResearch: 'Research',
actionHire: 'Hire',
actionBuy: 'Buy'
},
init: function()
{
if (typeof Helpers.analytics === 'undefined' || Helpers.analytics == '') {
analytics.enabled = false;
return;
}
// TODO replace with angular analtcs
if(ga){
ga('create', Helpers.analytics,'auto');
ga('set', { 'appName': 'Cards For Science', 'appId': '', 'appVersion': '0.6' });
ga('set', 'anonymizeIp', true);
// ga('send','pageview');// angulartics
}
$('#myModal').on('show.bs.modal', function (e) {
analytics.sendScreen(analytics.screens.about);
});
$('#myModal').on('hide.bs.modal', function (e) {
analytics.sendScreen(analytics.screens.main);
});
$('#achievements-modal').on('show.bs.modal', function (e) {
analytics.sendScreen(analytics.screens.achievements);
});
$('#achievements-modal').on('hide.bs.modal', function (e) {
analytics.sendScreen(analytics.screens.main);
});
$('#infoBox').on('show.bs.modal', function (e) {
analytics.sendScreen(analytics.screens.info);
});
$('#infoBox').on('hide.bs.modal', function (e) {
analytics.sendScreen(analytics.screens.main);
});
},
sendScreen: function(type)
{
if (!analytics.enabled || typeof type === 'undefined') {
return;
}
if(ga){
ga('send', 'screenview', { 'screenName': type });
}
},
sendEvent: function(category, action, label, value)
{
if (!analytics.enabled || typeof category === 'undefined' || typeof action === 'undefined' || typeof label === 'undefined' || typeof value === 'undefined') {
return;
}
if(ga){
ga('send', 'event', category, action, label, value, {'screenName': analytics.screens.main });
}
}
};