ng-cordova
Version:
[ngCordova](http://ngcordova.com/) ==========
135 lines (101 loc) • 3.58 kB
JavaScript
// 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;
}
};
}]);