google-analytics-plugin
Cordova (PhoneGap) 7.0+ Plugin to connect to Google's native Universal Analytics SDK
Comments
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.
Prerequisites:
- 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
Installing
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 window.analytics
to window.ga
, '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:windowga//where UA-XXXX-YY is your Google Analytics Mobile App property and 30 is the dispatch period (optional) //To track a Screen (PageView):windowga //To track a Screen (PageView) w/ campaign details:windowga //To track a Screen (PageView) and create a new session:windowga //To track an Event:windowga// Label and Value are optional, Value is numeric //To track an Event and create a new session:windowga// 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.)windowga // Key and value are numeric type, Value is optional (omit value to unset metric) //To track an Exception:windowga//where Fatal is boolean //To track User Timing (App Speed):windowga // where IntervalInMilliseconds is numeric //To add a Transaction (Ecommerce) -- Deprecated on 1.9.0 will be removed on next minor version (1.10.0).windowga// 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).windowga// 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.)windowga//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. `window.ga.addCustomDimension(1, 'Value', success, error)`//Use empty string as value to unset custom dimension. //To set a UserId:windowga //To set a specific app version:windowga //To get a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters://for example to get campaign name:windowga //To set a specific variable using this key list https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters://for example to set session control:windowga //To manually dispatch any data (this is not implemented in browser platform):windowga //To set a anonymize Ip address:windowga //To set Opt-out:windowga //To enabling Advertising Features in Google Analytics allows you to take advantage of Remarketing, Demographics & Interests reports, and more:windowga To enable verbose logging:windowga// 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 https://developers.google.com/android/reference/com/google/android/gms/analytics/Logger) //To enable/disable automatic reporting of uncaught exceptionswindowga// where Enable is boolean
Example use ionic (Ionic Native)
npm i --save @ionic-native/google-analytics
;; ... { } { thisplatform; }
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 window.ga.trackMetric('1', 'Value', success, error)
!
Installing Without the CLI
Copy the files manually into your project and add the following to your config.xml files:
You also will need to manually add the Google Analytics SDK files:
- Download the Google Analytics SDK 3.0 for iOS and/or Android
- For iOS, add the downloaded Google Analytics SDK header files and libraries according to the Getting Started documentation
- For Android, add
libGoogleAnalyticsServices.jar
to your Cordova Android project's/libs
directory and build path - For Windows Phone, add the GoogleAnalyticsSDK package via NuGet
- For Windows 10 (UWP), add the UWP.SDKforGoogleAnalytics.Native package via NuGet
var analyticsService = ; analyticsService;