summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js/lib/etc/analytics.js
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/www/js/lib/etc/analytics.js')
-rw-r--r--StoneIsland/www/js/lib/etc/analytics.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/StoneIsland/www/js/lib/etc/analytics.js b/StoneIsland/www/js/lib/etc/analytics.js
new file mode 100644
index 00000000..0d026f2f
--- /dev/null
+++ b/StoneIsland/www/js/lib/etc/analytics.js
@@ -0,0 +1,49 @@
+var analytics = (function() {
+ var analytics = {}
+
+ analytics.fields = {
+ trackingId: 'UA-XXXXXXXX-Y',
+ clientId: localStorage.getItem('ga:clientId'),
+ storage: 'none',
+ }
+
+ analytics.init = function() {
+ console.log("Analytics init")
+ analytics.build()
+ analytics.send('/')
+ }
+
+ analytics.build = function() {
+ ;( 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','https://www.google-analytics.com/analytics.js','ga' );
+
+ analytics.ga = window.ga
+ analytics.ga('create', analytics.fields)
+ // prevent tasks that would abort tracking
+ analytics.ga('set', {
+ // don't abort if the protocol is not http(s)
+ checkProtocolTask: null,
+ // don't expect cookies to be enabled
+ checkStorageTask: null,
+ })
+ // a callback function to get the clientId and store it ourselves
+ analytics.ga(function(tracker){
+ localStorage.setItem('ga:clientId', tracker.get('clientId'));
+ })
+ }
+
+ analytics.send = function(path) {
+ console.log("/a\\ send", path)
+ if (!analytics.ga) return
+ analytics.ga('send', {
+ // these are the three required properties, check GA's doc for the optional ones
+ hitType: 'screenview',
+ screenName: path,
+ appName: 'StoneIsland'
+ })
+ }
+
+ return analytics
+})()