1.8.5 • Public • Published


npm npm MIT license

Cordova (PhoneGap) 7.0+ Plugin to connect to Google's native Universal Analytics SDK


This is a fork of google-analytics-pligin by Dan Wilson. I removed all platfoms but iOS and Android and fixed google-play-services issue appling this PR.


  • A Cordova 7.0+ project for iOS or Android
  • A Mobile App property through the Google Analytics Admin Console
  • (Android) Google Play Services SDK installed via Android SDK Manager


This plugin follows the Cordova 7.0+ plugin spec, so it can be installed through the Cordova CLI in your existing Cordova project:

cordova plugin add cordova-plugin-google-analytics-fluxit

Release note

v1.0.0 -- api change from to, 'analytics' is deprecated since 1.0.0 and you should use the new api 'ga', because in the next release we are removing the analytics.

v1.7.x -- since this version there are new parameters in some of the old methods like startTrackerWithId('UA-XXXX-YY', 30) and this is causing errors for those who are using the ionic 2(ionic-native) or ionic 1 (ngCordova); these wrapper interfaces don't have the new parameters at the time we did the changes; so please update you ionic framework to the lastest version.

v1.7.11 -- since this version there is back compatibility with the new and old parameters in the method startTrackerWithId('UA-XXXX-YY', 30) to avoid loading issues reported.

v1.9.0 -- since this version the windows platform is supported.

JavaScript Usage

All the following methods accept optional success and error callbacks after all other available parameters.

//In your 'deviceready' handler, set up your Analytics tracker:'UA-XXXX-YY', 30)
//where UA-XXXX-YY is your Google Analytics Mobile App property and 30 is the dispatch period (optional)
//To track a Screen (PageView):'Screen Title')
//To track a Screen (PageView) w/ campaign details:'Screen Title', 'my-scheme://content/1111?utm_source=google&utm_campaign=my-campaign')
//To track a Screen (PageView) and create a new session:'Screen Title', '', true)
//To track an Event:'Category', 'Action', 'Label', Value)// Label and Value are optional, Value is numeric
//To track an Event and create a new session:'Category', 'Action', 'Label', Value, true)// Label, Value and newSession are optional, Value is numeric, newSession is true/false
//To track custom metrics:
//(trackMetric doesn't actually send a hit, it's behaving more like the addCustomDimension() method.
// The metric is afterwards added to every hit (view, event, error, etc...) sent, but the defined scope of the custom metric in analytics backend
//   (hit or product) will determine, at processing time, which hits are associated with the metric value.), Value) // Key and value are numeric type, Value is optional (omit value to unset metric)
//To track an Exception:'Description', Fatal)//where Fatal is boolean
//To track User Timing (App Speed):'Category', IntervalInMilliseconds, 'Variable', 'Label') // where IntervalInMilliseconds is numeric
//To add a Transaction (Ecommerce) -- Deprecated on 1.9.0 will be removed on next minor version (1.10.0).'ID', 'Affiliation', Revenue, Tax, Shipping, 'Currency Code')// where Revenue, Tax, and Shipping are numeric
//To add a Transaction Item (Ecommerce) -- Deprecated on 1.9.0 will be removed on next minor version (1.10.0).'ID', 'Name', 'SKU', 'Category', Price, Quantity, 'Currency Code')// where Price and Quantity are numeric
//To add a Custom Dimension
//(The dimension is afterwards added to every hit (view, event, error, etc...) sent, but the defined scope of the custom dimension in analytics backend
//   (hit or product) will determine, at processing time, which hits are associated with the dimension value.), 'Value', success, error)
//Key should be integer index of the dimension i.e. send `1` instead of `dimension1` for the first custom dimension you are tracking. e.g. `, 'Value', success, error)`
//Use empty string as value to unset custom dimension.
//To set a UserId:'my-user-id')
//To set a specific app version:'1.33.7')
//To get a specific variable using this key list
//for example to get campaign name:'cn', function(result){ console.log(result);})
//To set a specific variable using this key list
//for example to set session control:'sc', 'end', function(result){ console.log(result);})
//To manually dispatch any data (this is not implemented in browser platform):
//To set a anonymize Ip address:
//To set Opt-out:
//To enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more:
To enable verbose logging:
// set's dry run mode on Android and Windows platform, so that all hits are only echoed back by the google analytics service and no actual hit is getting tracked!
// **Android quirk**: verbose logging within javascript console is not supported. To see debug responses from analytics execute
// `adb shell setprop log.tag.GAv4 DEBUG` and then `adb logcat -v time -s GAv4` to list messages
// (see
//To enable/disable automatic reporting of uncaught exceptions, success, error)// where Enable is boolean

Example use ionic (Ionic Native)

npm i --save @ionic-native/google-analytics
import { GoogleAnalytics } from '@ionic-native/google-analytics';
import { Platform } from 'ionic-angular';
  constructor(private ga: GoogleAnalytics, private platform: Platform) { }
  initializeApp() {
    this.platform.ready().then(() => {'UA-00000000-0')
        .then(() => {
          console.log('Google analytics is ready now');
          //the component is ready and you can call any method here
        .catch(e => console.log('Error starting GoogleAnalytics', e));

Issue for using trackMetric in Ionic: currently @ionic-native/google-analytics defines the typescript signature with trackMetric(key: string, value?: any). So be aware to pass the metric index as a string formatted integer and a non empty string as a value, like'1', 'Value', success, error)!

Installing Without the CLI

Copy the files manually into your project and add the following to your config.xml files:

<feature name="UniversalAnalytics">
  <param name="ios-package" value="UniversalAnalyticsPlugin" />
<feature name="UniversalAnalytics">
  <param name="android-package" value="" />
<feature name="UniversalAnalytics">
  <param name="wp-package" value="UniversalAnalyticsPlugin" />

You also will need to manually add the Google Analytics SDK files:

var analyticsService = require('app/data/AnalyticsService');

Package Sidebar


npm i cordova-plugin-google-analytics-fluxit

Weekly Downloads






Unpacked Size

34.6 MB

Total Files


Last publish


  • niconaso