summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js/lib/etc/analytics.js
blob: 0d026f2fe3f35b8686d1f636d232e12aae0fe46b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
})()