diff options
author | Stefan Malzner <stefan@adlk.io> | 2017-10-13 12:29:40 +0200 |
---|---|---|
committer | Stefan Malzner <stefan@adlk.io> | 2017-10-13 12:29:40 +0200 |
commit | 58cda9cc7fb79ca9df6746de7f9662bc08dc156a (patch) | |
tree | 1211600c2a5d3b5f81c435c6896618111a611720 /src/lib/analytics.js | |
download | ferdium-app-58cda9cc7fb79ca9df6746de7f9662bc08dc156a.tar.gz ferdium-app-58cda9cc7fb79ca9df6746de7f9662bc08dc156a.tar.zst ferdium-app-58cda9cc7fb79ca9df6746de7f9662bc08dc156a.zip |
initial commit
Diffstat (limited to 'src/lib/analytics.js')
-rw-r--r-- | src/lib/analytics.js | 42 |
1 files changed, 42 insertions, 0 deletions
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 @@ | |||
1 | import { remote } from 'electron'; | ||
2 | import { GA_ID } from '../config'; | ||
3 | // import { isDevMode } from '../environment'; | ||
4 | |||
5 | const { app } = remote; | ||
6 | |||
7 | /* eslint-disable */ | ||
8 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ | ||
9 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), | ||
10 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) | ||
11 | })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); | ||
12 | /* eslint-enable */ | ||
13 | |||
14 | const GA_LOCAL_STORAGE_KEY = 'gaUid'; | ||
15 | |||
16 | ga('create', GA_ID, { | ||
17 | storage: 'none', | ||
18 | clientId: localStorage.getItem(GA_LOCAL_STORAGE_KEY), | ||
19 | }); | ||
20 | |||
21 | ga((tracker) => { | ||
22 | localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId')); | ||
23 | }); | ||
24 | ga('set', 'checkProtocolTask', null); | ||
25 | ga('set', 'version', app.getVersion()); | ||
26 | ga('send', 'App'); | ||
27 | |||
28 | export function gaPage(page) { | ||
29 | ga('send', 'pageview', page); | ||
30 | |||
31 | console.debug('GA track page', page); | ||
32 | } | ||
33 | |||
34 | export function gaEvent(category, action, label) { | ||
35 | ga('send', 'event', category, action, label); | ||
36 | |||
37 | console.debug('GA track page', category, action); | ||
38 | } | ||
39 | |||
40 | setTimeout(() => { | ||
41 | ga('send', 'Ping'); | ||
42 | }, 1000 * 60 * 10); // Ping GA every 10 Minutes | ||