UNPKG

ng-cordova

Version:

[ngCordova](http://ngcordova.com/) ==========

135 lines (101 loc) 3.58 kB
// install : cordova plugin add https://github.com/danwilson/google-analytics-plugin.git // link : https://github.com/danwilson/google-analytics-plugin angular.module('ngCordova.plugins.googleAnalytics', []) .factory('$cordovaGoogleAnalytics', ['$q', '$window', function ($q, $window) { return { startTrackerWithId: function (id) { var d = $q.defer(); $window.analytics.startTrackerWithId(id, function (response) { d.resolve(response); }, function (error) { d.reject(error); }); return d.promise; }, setUserId: function (id) { var d = $q.defer(); $window.analytics.setUserId(id, function (response) { d.resolve(response); }, function (error) { d.reject(error); }); return d.promise; }, debugMode: function () { var d = $q.defer(); $window.analytics.debugMode(function (response) { d.resolve(response); }, function () { d.reject(); }); return d.promise; }, trackView: function (screenName) { var d = $q.defer(); $window.analytics.trackView(screenName, function (response) { d.resolve(response); }, function (error) { d.reject(error); }); return d.promise; }, addCustomDimension: function (key, value) { var d = $q.defer(); var parsedKey = parseInt(key, 10); if (isNaN(parsedKey)) { d.reject('Parameter "key" must be an integer.'); } $window.analytics.addCustomDimension(parsedKey, value, function () { d.resolve(); }, function (error) { d.reject(error); }); return d.promise; }, trackEvent: function (category, action, label, value) { var d = $q.defer(); $window.analytics.trackEvent(category, action, label, value, function (response) { d.resolve(response); }, function (error) { d.reject(error); }); return d.promise; }, trackException: function (description, fatal) { var d = $q.defer(); $window.analytics.trackException(description, fatal, function (response) { d.resolve(response); }, function (error) { d.reject(error); }); return d.promise; }, trackTiming: function (category, milliseconds, variable, label) { var d = $q.defer(); $window.analytics.trackTiming(category, milliseconds, variable, label, function (response) { d.resolve(response); }, function (error) { d.reject(error); }); return d.promise; }, addTransaction: function (transactionId, affiliation, revenue, tax, shipping, currencyCode) { var d = $q.defer(); $window.analytics.addTransaction(transactionId, affiliation, revenue, tax, shipping, currencyCode, function (response) { d.resolve(response); }, function (error) { d.reject(error); }); return d.promise; }, addTransactionItem: function (transactionId, name, sku, category, price, quantity, currencyCode) { var d = $q.defer(); $window.analytics.addTransactionItem(transactionId, name, sku, category, price, quantity, currencyCode, function (response) { d.resolve(response); }, function (error) { d.reject(error); }); return d.promise; } }; }]);