analytics.coffee | |
|---|---|
| Template | |
Private constants | |
| Code for Templates analytics account. | ACCOUNT = 'UA-28812528-1' |
| Source URL of the analytics script. | SOURCE = 'https://ssl.google-analytics.com/ga.js' |
Analytics setup | analytics = window.analytics = new class Analytics extends utils.Class |
Public functions | |
| Add analytics to the current page. | add: -> |
| Setup tracking details for analytics. | _gaq = window._gaq ?= []
_gaq.push ['_setAccount', ACCOUNT]
_gaq.push ['_trackPageview'] |
| Inject script to capture analytics. | ga = document.createElement 'script'
ga.async = 'async'
ga.src = SOURCE
script = document.getElementsByTagName('script')[0]
script.parentNode.insertBefore ga, script |
| Determine whether or not analytics are enabled. | enabled: -> not store? or store.get 'analytics' |
| Remove analytics from the current page. | remove: -> |
| Delete scripts used to capture analytics. | for script in document.querySelectorAll "script[src='#{SOURCE}']"
script.parentNode.removeChild script |
| Remove tracking details for analytics. | delete window._gaq |
| Create an event with the information provided and track it in analytics. | track: (category, action, label, value, nonInteraction) -> if @enabled()
event = ['_trackEvent'] |
| Add the required information. | event.push category
event.push action |
| Add the optional information where possible. | event.push label if label?
event.push value if value?
event.push nonInteraction if nonInteraction? |
| Add the event to analytics. | _gaq = window._gaq ?= []
_gaq.push event |
Configuration | |
| Initialize analytics. | store?.init 'analytics', yes
|