From 58cda9cc7fb79ca9df6746de7f9662bc08dc156a Mon Sep 17 00:00:00 2001 From: Stefan Malzner Date: Fri, 13 Oct 2017 12:29:40 +0200 Subject: initial commit --- src/lib/analytics.js | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/lib/analytics.js (limited to 'src/lib/analytics.js') diff --git a/src/lib/analytics.js b/src/lib/analytics.js new file mode 100644 index 000000000..b13bf8faa --- /dev/null +++ b/src/lib/analytics.js @@ -0,0 +1,42 @@ +import { remote } from 'electron'; +import { GA_ID } from '../config'; +// import { isDevMode } from '../environment'; + +const { app } = remote; + +/* eslint-disable */ +(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'); +/* eslint-enable */ + +const GA_LOCAL_STORAGE_KEY = 'gaUid'; + +ga('create', GA_ID, { + storage: 'none', + clientId: localStorage.getItem(GA_LOCAL_STORAGE_KEY), +}); + +ga((tracker) => { + localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId')); +}); +ga('set', 'checkProtocolTask', null); +ga('set', 'version', app.getVersion()); +ga('send', 'App'); + +export function gaPage(page) { + ga('send', 'pageview', page); + + console.debug('GA track page', page); +} + +export function gaEvent(category, action, label) { + ga('send', 'event', category, action, label); + + console.debug('GA track page', category, action); +} + +setTimeout(() => { + ga('send', 'Ping'); +}, 1000 * 60 * 10); // Ping GA every 10 Minutes -- cgit v1.2.3-54-g00ecf