Basic analytics support

This commit is contained in:
Tadej Novak
2014-08-04 22:23:43 +02:00
parent 62e285c16d
commit e1a1f23cde
5 changed files with 94 additions and 2 deletions
+10
View File
@@ -13,6 +13,15 @@
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">
<link rel="stylesheet" href="css/style.css">
<!-- Google Analytics -->
<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');
</script>
<!-- End Google Analytics -->
</head>
<body>
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
@@ -206,6 +215,7 @@
<script src="js/storage.js"></script>
<script src="js/helpers.js"></script>
<script src="js/analytics.js"></script>
<script src="js/gameobjects.js"></script>
<script src="js/event.js"></script>
<script src="js/detector.js"></script>
+75
View File
@@ -0,0 +1,75 @@
var analytics =
{
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;
}
ga('create', Helpers.analytics);
ga('set', { 'appName': 'Particle Clicker', 'appId': 'ch.cern.particle-clicker', 'appVersion': Helpers.version });
ga('set', 'anonymizeIp', true);
$('#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;
}
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;
}
ga('send', 'event', category, action, label, value);
}
};
+3
View File
@@ -119,4 +119,7 @@
};
$interval($scope.saveNow, 10000);
}]);
analytics.init();
analytics.sendScreen(analytics.screens.main);
})();
+4 -1
View File
@@ -61,6 +61,7 @@ var GameObjects = (function() {
research: function() {
if (lab.research(this.cost, this.reputation)) {
this.level++;
analytics.sendEvent(analytics.events.categoryResearch, analytics.events.actionResearch, this.name, this.level);
var oldCost = this.cost;
this.cost = Math.round(this.cost * this.cost_increase);
return oldCost;
@@ -74,7 +75,7 @@ var GameObjects = (function() {
return this._info;
},
showInfo: function() {
Helpers.showModal(this.name, this.getInfo());
UI.showModal(this.name, this.getInfo());
}
};
var research = $.extend([], Helpers.loadFile('json/research.json'),
@@ -97,6 +98,7 @@ var GameObjects = (function() {
hire: function() {
if (lab.buy(this.cost)) {
this.hired++;
analytics.sendEvent(analytics.events.categoryHR, analytics.events.actionHire, this.name, this.hired);
var cost = this.cost;
this.cost = Math.round(this.cost * this.cost_increase);
return cost;
@@ -153,6 +155,7 @@ var GameObjects = (function() {
buy: function() {
if (!this.used && lab.buy(this.cost)) {
this.used = true;
analytics.sendEvent(analytics.events.categoryUpgrades, analytics.events.actionBuy, this.name, 1);
var rec = this.getReceiver();
if (rec) {
rec[this.property] = rec[this.property] * this.factor + this.constant;
+2 -1
View File
@@ -38,6 +38,7 @@ var Helpers = (function() {
return {
loadFile: loadFile,
formatNumberPostfix: formatNumberPostfix,
version: '0.2'
version: '0.2',
analytics: ''
};
})();