google-analytics-plugin

Provides Apache Cordova/Phonegap support for Google Analytics using the native sdks for Android & iOS.
  • Android Native SDK v4 (using Google Play Services SDK)
  • iOS Native SDK v3
This plugin provides support for some of the more specific analytics functions (screen, event & exception tracking, custom metrics & dimensions) and also the more generic set and send functions which can be used to implement all of the Google Analytics collection features.
As an example tracking a screen could be implemented using either the sendAppView function or the send function:
var analytics = navigator.analytics;

// set the tracking id
analytics.setTrackingId('UA-XXXXX-X');
// ...or set multiple tracking ids
analytics.setMultipleTrackingIds(['UA-XXXXX-1', 'UA-XXXXX-2']);

analytics.sendAppView('home', successCallback, errorCallback);

// or the same could be done using the send function

var Fields = analytics.Fields,
HitTypes = analytics.HitTypes,
LogLevel = analytics.LogLevel,
params = {};

params[Fields.HIT_TYPE] = HitTypes.APP_VIEW;
params[Fields.SCREEN_NAME] = 'home';

analytics.setLogLevel(LogLevel.INFO);

analytics.send(params, successCallback, errorCallback);
The send & set functions provide maximum flexibility and allow you to utilize all of the Google Analytics collection calls. Some helper functions are also provided to support some of the more common analytic functions.
For more information about measurement protocol refer to the following page:

Installation

cordova plugin add com.cmackay.plugins.googleanalytics
To use a specific version of Google's play-services-analytics library just specify it with the ANALYTICS_VERSION variable.
cordova plugin add com.cmackay.plugins.googleanalytics --variable ANALYTICS_VERSION='11.0.1'

API

analytics

analytics.Fields

GA Field Types
Kind: static property of analytics

analytics.HitTypes

GA Hit Types
Kind: static property of analytics

analytics.LogLevel

Log Levels
Kind: static property of analytics

analytics.setTrackingId(trackingId, [success], [error])

Sets the tracking id
Kind: static method of analytics
ParamTypeDescription
trackingIdstringthe trackingId
[success]functionthe success callback
[error]functionthe error callback

analytics.setMultipleTrackingIds(trackingIds, [success], [error])

Sets multiple tracking ids. This will override any tracking id previously set.
Kind: static method of analytics
ParamTypeDescription
trackingIdsarrayarray of trackingId parameters
[success]functionthe success callback
[error]functionthe error callback

analytics.setDispatchInterval(seconds, [success], [error])

Sets the dispatch Interval
Kind: static method of analytics
ParamTypeDescription
secondsnumberthe interval in seconds
[success]functionthe success callback
[error]functionthe error callback

analytics.getAppOptOut([success])

Get app-level opt out flag that will disable Google Analytics
Kind: static method of analytics
ParamTypeDescription
[success]functionthe success callback (value is passed to callback)

analytics.setAppOptOut([enabled], [success], [error])

Set app-level opt out flag that will disable Google Analytics
Kind: static method of analytics
ParamTypeDefaultDescription
[enabled]booleantruetrue for opt out or false to opt in
[success]functionthe success callback
[error]functionthe error callback

analytics.setLogLevel(logLevel, [success], [error])

Sets the log level
Kind: static method of analytics
ParamTypeDescription
logLevelnumberthe log level (refer to LogLevel for values)
[success]functionthe success callback
[error]functionthe error callback

analytics.dispatchHits([success], [error])

Manually dispatches hits
Kind: static method of analytics
ParamTypeDescription
[success]functionthe success callback
[error]functionthe error callback

analytics.get(key, success, [error])

Gets a field value. Returned as argument to success callback. If multiple trackers are being used, this returns an array of trackerId and field value pairs, e.g., [{ "UA-XXXXX-1" : "field_value1" }, { "UA-XXXXX-2" : "field_value2" }]
Kind: static method of analytics
ParamTypeDescription
keystringthe key
successfunctionthe success callback
[error]functionthe error callback

analytics.set(key, value, [success], [error])

Sets a field value
Kind: static method of analytics
ParamTypeDescription
keystringthe key
valuethe value
[success]functionthe success callback
[error]functionthe error callback

analytics.send(params, [success], [error])

Generates a hit to be sent with the specified params and current field values
Kind: static method of analytics
ParamTypeDescription
paramsobjectthe params
[success]functionthe success callback
[error]functionthe error callback

analytics.close([success], [error])

Closes the tracker
Kind: static method of analytics
ParamTypeDescription
[success]functionthe success callback
[error]functionthe error callback

analytics.customDimension(id, [value], [success], [error])

Sets a custom dimension
Kind: static method of analytics
ParamTypeDescription
idnumberthe id
[value]stringthe value
[success]functionthe success callback
[error]functionthe error callback

analytics.customMetric(id, [value], [success], [error])

Sets a custom metric
Kind: static method of analytics
ParamTypeDescription
idnumberthe id
[value]numberthe value
[success]functionthe success callback
[error]functionthe error callback

analytics.sendEvent(category, action, [label], [value], [success], [error])

Sends an event
Kind: static method of analytics
ParamTypeDefaultDescription
categorystringthe category
actionstringthe action
[label]string"''"the label
[value]number0the value
[success]functionthe success callback
[error]functionthe error callback

analytics.sendEventWithParams(category, action, [label], [value], params, [success], [error])

Sends an event with additional params
Kind: static method of analytics
ParamTypeDefaultDescription
categorystringthe category
actionstringthe action
[label]string"''"the label
[value]number0the value
paramsobjectthe params
[success]functionthe success callback
[error]functionthe error callback

analytics.sendAppView(screenName, [success], [error])

Sends a screen view
Kind: static method of analytics
ParamTypeDescription
screenNamestringthe screenName
[success]functionthe success callback
[error]functionthe error callback

analytics.sendAppViewWithParams(screenName, params, [success], [error])

Sends a screen view with additional params
Kind: static method of analytics
ParamTypeDescription
screenNamestringthe screenName
paramsobjectthe params
[success]functionthe success callback
[error]functionthe error callback

analytics.sendTiming(category, variable, label, time, [success], [error])

Sends a user timing
Kind: static method of analytics
ParamTypeDescription
categorystringthe category
variablestringthe variable
labelstringthe label
timenumberthe time
[success]functionthe success callback
[error]functionthe error callback

analytics.sendException(description, [fatal], [success], [error])

Sends an exception
Kind: static method of analytics
ParamTypeDescription
descriptionstringthe exception description
[fatal]booleanmarks the exception as fatal
[success]functionthe success callback
[error]functionthe error callback

analytics.trackUnhandledScriptErrors([opts], [success], [error])

Tracks unhandled scripts errors (window.onerror) and then calls sendException. This function optionally can be passed an object containing a formmatter function which takes in all the args to window.onError and should return a String with the formatted error description to be sent to Google Analytics. Also the object can provide a fatal property which will be passed to sendException (defaults to true).
Kind: static method of analytics
ParamTypeDescription
[opts]objectthe options { formatter: Function, fatal: Boolean }
[success]functionthe success callback
[error]functionthe error callback