@flickerlist/electron-ga
v2.0.1
Published
Google Analytics client for Electron applications
Downloads
6
Readme
electron-ga
Google Analytics client for Electron applications with some useful builtin features
Features
- Unique Client ID for every machine, where your app has been installed
- Cache for offline usage
- Promise-based API
- It sends the following params by default:
- Protocol Version
- Client ID: unique for every machine
- Application Name
- Application Version
- User Language: determined by user agent
- User Agent: prepared to make interpretable for Analytics to parse the Platform info
- Screen Resolution
- Viewport Size
Easy to start using
First create a Google Analytics Mobile Account. It is needed, because webpage account does not track many parameters, like version. In many aspect an Electron application is more similar to a mobile application than a simple webpage.
electron-ga works only in the renderer process.
import Analytics from 'electron-ga';
const analytics = new Analytics('UA-XXXXXXXX-X');
Then:
await analytics.send('screenview', { cd: 'User List' });
await analytics.send('event', { ec: 'Scroll', ea: 'scrollto', el: 'row', ev: 123 });
electron-ga uses Google Analytics Measurement Protocol. You can add custom parameters or ovveride any of them.
API Reference
constructor
(trackId[, initParams])
The trackId
is a string and its format is: UA-XXXXXXXX-X
.
The initParams
is an object and its optional properties are:
- protocolVersion
- trackId
- clientId
- userId - undefined by default
- appName
- appVersion
- language
- userAgent
- viewport
- screenResolution
You can set any of them with a constant string value or a getter function, that returns a string value:
const analytics = new Analytics('UA-XXXXXXXX-X', {
userId: '123456',
language: () => store.getState().language
});
send
(hitType[, additionalParams]) -> Promise
The hitType
is a string. You can find here the available values.
The additionalParams
is an object with any properties, which are acceptable by the Google Analytics Measurement Protocol.