mirror of
https://github.com/wassname/cardsforscience.git
synced 2026-08-06 12:50:15 +08:00
Basic analytics support
This commit is contained in:
+10
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
@@ -119,4 +119,7 @@
|
||||
};
|
||||
$interval($scope.saveNow, 10000);
|
||||
}]);
|
||||
|
||||
analytics.init();
|
||||
analytics.sendScreen(analytics.screens.main);
|
||||
})();
|
||||
|
||||
+4
-1
@@ -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
@@ -38,6 +38,7 @@ var Helpers = (function() {
|
||||
return {
|
||||
loadFile: loadFile,
|
||||
formatNumberPostfix: formatNumberPostfix,
|
||||
version: '0.2'
|
||||
version: '0.2',
|
||||
analytics: ''
|
||||
};
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user