diff --git a/google.analytics/ga-tests.ts b/google.analytics/ga-tests.ts
new file mode 100644
index 0000000000..4274b633ec
--- /dev/null
+++ b/google.analytics/ga-tests.ts
@@ -0,0 +1,76 @@
+///
+///
+
+describe("tester Google Analytics Tracker _gat object", () => {
+
+ it("can set ga script element", () => {
+ ga = document.createElement("script");
+ });
+
+ it("can set aync to true", () => {
+ ga.async = true;
+ });
+
+ 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", () => {
+ it("can create _createTracker", () => {
+ _gat._createTracker('UA-65432-1');
+ _gat._createTracker('UA-65432-2', 't2');
+ });
+
+ it("can create _getTrackerByName", () => {
+ _gat._getTrackerByName();
+ _gat._getTrackerByName('t2');
+ });
+
+ it("can create _anonymizeIp", () => {
+ _gat._anonymizeIp();
+ });
+
+});
+
+describe("tester Google Analytics Code _gaq object", () => {
+ it("can create _push", () => {
+ _gaq.push(['_setAccount', 'UA-XXXXXXX-YY']);
+ _gaq.push(['_gat._anonymizeIp']);
+ _gaq.push(['_trackPageview']);
+
+ _gaq.push(() => {
+ var tracker = _gat._getTrackerByName('UA-65432-1');
+ tracker._trackPageview();
+ }
+ );
+ });
+});
+
+
+describe("tester Google Analytics Code Tracker object", () => {
+ it("can create Tracker object and call methods", () => {
+ var tracker = _gat._getTrackerByName('UA-65432-1');
+ tracker._trackPageview();
+ tracker._getName();
+ tracker._getAccount();
+ tracker._getVersion();
+ tracker._getVisitorCustomVar(0);
+ tracker._setAccount();
+ tracker._setCustomVar(0, "name", "value", 1);
+ tracker._setSampleRate("80");
+ tracker._setSessionCookieTimeout(1800000);
+ tracker._setSiteSpeedSampleRate(5);
+ tracker._setVisitorCookieTimeout(63072000000);
+ tracker._trackPageLoadTime();
+ });
+});
+
+
+
diff --git a/google.analytics/ga.d.ts b/google.analytics/ga.d.ts
new file mode 100644
index 0000000000..b24bc6649e
--- /dev/null
+++ b/google.analytics/ga.d.ts
@@ -0,0 +1,41 @@
+// Type definitions for Google Analytics
+// Project: https://developers.google.com/analytics/devguides/collection/gajs/
+// Definitions by: Ronnie Haakon Hegelund
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+class Tracker {
+ _trackPageview(): void;
+ _getName(): string;
+ _getAccount(): string;
+ _getVersion(): string;
+ _getVisitorCustomVar(index: number); string;
+ _setAccount(): string;
+ _setCustomVar(index: number, name: string, value: string, opt_scope?: number): bool;
+ _setSampleRate(newRate: string): void;
+ _setSessionCookieTimeout(cookieTimeoutMillis: number): void;
+ _setSiteSpeedSampleRate(sampleRate: number): void;
+ _setVisitorCookieTimeout(milliseconds: number): void;
+ _trackPageLoadTime(): void;
+}
+
+interface GoogleAnalyticsCode {
+ push(commandArray: string[]): void;
+ push(Function): void;
+}
+
+interface GoogleAnalyticsTracker {
+ _getTracker(account: string): Tracker;
+ _createTracker(opt_account: string, opt_name?: string): Tracker;
+ _getTrackerByName(opt_name?: string): Tracker;
+ _anonymizeIp(): void;
+}
+
+interface GoogleAnalytics {
+ type: string;
+ src: string;
+ async: bool;
+}
+
+declare var ga: GoogleAnalytics;
+declare var _gaq: GoogleAnalyticsCode;
+declare var _gat: GoogleAnalyticsTracker;