Measurement Protocol API
Google Analytics -The main purpose of this was to be used with Electron built apps.
Features
- Pageview
- Event
- Screenview
- Transaction
- Social
- Exception
- Refund
- Purchase
- Checkout Steps
- Checkout Options
- Item
- User Timing Tracking
- Custom function for the rest (send)
Github Page - Docs
https://vacu.github.io/electron-google-analytics/
Getting started
Installation
npm i electron-google-analytics
-
Init
Analytics(trackingID, { userAgent, debug, version })
;const analytics = 'UA-XXXXXXXX-X'; -
Set (custom params)
Analytics#set(key, value)
analytics; -
Remove parameter:
analytics; -
Pageview
Analytics#pageview(hostname, url, title, clientID, sessionDuration)
return analytics;If you want to keep the session you need to specify the
clientID
. TheclientID
can be found in the promiseresponse
above. -
Event
Analytics#event(evCategory, evAction, { evLabel, evValue, clientID })
return analyticsevent'Video' 'play' evLabel: 'holiday' evValue: 300; -
Screenview
Analytics#screen(appName, appVer, appID, appInstallerID, screenName, clientID)
return analytics; -
Transaction
Analytics#transaction(trnID, { trnAffil, trnRev, trnShip, trnTax, currCode } = {}, clientID)
return analytics; -
Social
Analytics#social(socialAction, socialNetwork, socialTarget, clientID)
return analytics; -
Exception
Analytics#exception(exDesc, exFatal, clientID)
return analytics; -
Refund
Analytics#refund(trnID, evCategory = 'Ecommerce', evAction = 'Refund', nonInteraction = 1, { prdID, prdQty } = {}, clientID)
return analytics; -
Purchase
Analytics#purchase(hostname, url, title, transactionID, { trnAffil, trnRev, trnTax, trnShip, trnCoupon, prdID, prdName, prdCtg, prdBrand, prdVar, prdPos } = {}, clientID)
return analytics; -
Checkout Steps
Analytics#checkout(hostname, url, title, checkoutStep, checkoutOpt, { prdID, prdName, prdCtg, prdBrand, prdVar, prdPrice, prdQty } = {}, clientID)
return analytics; -
Checkout Options
Analytics#checkoutOpt(evCategory, evAction, checkoutStep, checkoutOpt, clientID)
return analytics; -
Item
Analytics#item(trnID, itemName, { itemPrice, itemQty, itemSku, itemVariation, currCode } = {}, clientID)
return analytics; -
User Timing Tracking
Analytics#timingTrk(timingCtg, timingVar, timingTime, { timingLbl, dns, pageDownTime, redirTime, tcpConnTime, serverResTime } = {}, clientID)
return analytics; -
Send (for everything else for now)
Analytics#send(hitType, params, clientID)
return analytics;
es5 usage
If you are not using tools like babel to use es6 with your application, you'll have to modify your code slightly. Below is an example of a test screen view that you can use out of the box with node.js
const Analytics = ;const analytics = 'UA-XXXXXXXX-X'; { return analytics ;};
Tests
cross-env TRACKING_ID='UA-XXXXXXXX-X' npm test