diff --git a/google.analytics/ga-tests.ts b/google.analytics/ga-tests.ts
index 03d5c2ed5..23edc0fe8 100644
--- a/google.analytics/ga-tests.ts
+++ b/google.analytics/ga-tests.ts
@@ -1,25 +1,15 @@
///
///
-describe("tester Google Analytics Tracker _gat object", () => {
-
- it("can set ga script element", () => {
- ga = document.createElement("script");
+describe('UniversalGoogleAnalytics', () => {
+ it('should be a function', () => {
+ ga('create', 'UA-65432-1');
+ ga('send', 'pageview');
});
-
- it("can set aync to true", () => {
- ga.async = true;
+ it('should have methods', () => {
+ ga.getAll();
+ ga.getByName('aNamedTracker');
});
-
- it("can set src to string url", () => {
- ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';;
- });
-
- it("can set type", () => {
- ga.type = 'text/javascript';
- });
-
-
});
describe("tester Google Analytics Tracker _gat object", () => {
@@ -27,7 +17,7 @@ describe("tester Google Analytics Tracker _gat object", () => {
_gat._createTracker('UA-65432-1');
_gat._createTracker('UA-65432-2', 't2');
});
-
+
it("can create _getTrackerByName", () => {
_gat._getTrackerByName();
_gat._getTrackerByName('t2');
@@ -36,7 +26,7 @@ describe("tester Google Analytics Tracker _gat object", () => {
it("can create _anonymizeIp", () => {
_gat._anonymizeIp();
});
-
+
});
describe("tester Google Analytics Code _gaq object", () => {
@@ -50,12 +40,12 @@ describe("tester Google Analytics Code _gaq object", () => {
tracker._trackPageview();
}
);
- });
+ });
});
describe("tester Google Analytics Code Tracker object", () => {
- it("can create Tracker object and call methods", () => {
+ it("can create Tracker object and call methods", () => {
var tracker = _gat._getTrackerByName('UA-65432-1');
tracker._trackPageview();
tracker._getName();
diff --git a/google.analytics/ga.d.ts b/google.analytics/ga.d.ts
index 032e236ee..f711f894e 100644
--- a/google.analytics/ga.d.ts
+++ b/google.analytics/ga.d.ts
@@ -30,12 +30,19 @@ interface GoogleAnalyticsTracker {
_anonymizeIp(): void;
}
-interface GoogleAnalytics {
- type: string;
- src: string;
- async: boolean;
+interface UniversalGoogleAnalytics {
+ (command: string, trackingId:string, opt_configObject?: {}): UniversalTracker;
+ (command: string, ...rest): void;
+ getAll(): UniversalTracker[];
+ getByName(trackerName: string): UniversalTracker;
}
-declare var ga: GoogleAnalytics;
+interface UniversalTracker {
+ get(...any): any;
+ send(...any): any;
+ set(...any): any;
+}
+
+declare var ga: UniversalGoogleAnalytics;
declare var _gaq: GoogleAnalyticsCode;
declare var _gat: GoogleAnalyticsTracker;