google-analytics-electron

0.1.2 • Public • Published

Google Analytics - Measurement Protocol API

npm version build status coverage status

The main purpose of this was to be used with Electron built apps.

Features

  • Pageview
  • Event
  • Screenview
  • Transaction
  • Social
  • Exception
  • Refund
  • Item
  • User Timing Tracking
  • Custom function for the rest (send)

Getting started

Installation

npm i google-analytics-electron
  • Init

    Analytics(trackingID, { userAgent, debug, version })

    import Analytics from 'google-analytics-electron'
    const analytics = new Analytics('UA-XXXXXXXX-X')
  • Pageview

    Analytics#pageview(hostname, url, title)

    return analytics.pageview('http://example.com', '/home', 'Example')
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })

    If you want to keep the session you need to specify the clientID.

  • Event

    Analytics#event(evCategory, evAction, { evLabel, evValue })

    const analytics = new Analytics('UA-XXXXXXXX-X', { clientID: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' })
    return analytics.event('Video', 'play', { evLabel: 'holiday', evValue: 300})
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })
  • Screenview

    Analytics#screen(screenName)

    const analytics = new Analytics('UA-XXXXXXXX-X', { 
      appName: 'test', 
      appVersion: '1.0.0', 
      appID: 'com.app.test', 
      appInstallerID:'com.app.installer'
    })
    return analytics.screen('Test')
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })
  • Transaction

    Analytics#transaction(trnID, { trnAffil, trnRev, trnShip, trnTax, currCode } = {})

    return analytics.transaction(123)
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })
  • Social

    Analytics#social(socialAction, socialNetwork, socialTarget)

    return analytics.social('like', 'facebook', 'home')
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })
  • Exception

    Analytics#exception(exDesc, exFatal)

    return analytics.exception('IOException', 1)
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })
  • Refund

    Analytics#refund(transactionID, evCategory = 'Ecommerce', evAction = 'Refund', nonInteraction = 1)

    return analytics.refund('T123')
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })
  • Item

    Analytics#item(trnID, itemName, { itemPrice, itemQty, itemSku, itemVariation, currCode } = {})

    return analytics.item('123', 'Test item')
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })
  • User Timing Tracking

    Analytics#timingTrk(timingCtg, timingVar, timingTime, { timingLbl, dns, pageDownTime, redirTime, tcpConnTime, serverResTime } = {})

    return analytics.timingTrk('Category', 'jsonLoader', 123)
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })
  • Send (for everything else for now)

    Analytics#send(hitType, params)

    return analytics.send('social', { sa: 'social', sn: 'facebook', st: 'home' })
      .then((response) => {
        return response
      })
      .catch((err) => {
        return err
      })

Tests

cross-env TRACKING_ID='UA-XXXXXXXX-X' npm test

License

MIT

Package Sidebar

Install

npm i google-analytics-electron

Weekly Downloads

1

Version

0.1.2

License

MIT

Last publish

Collaborators

  • arantes