Merge pull request #2966 from patkujawa-wf/update_google_analytics

Update google analytics to include newer universal analytics
This commit is contained in:
Masahiro Wakame
2014-10-14 11:29:02 +09:00
2 changed files with 62 additions and 21 deletions
+34 -17
View File
@@ -2,24 +2,44 @@
/// <reference path="../jasmine/jasmine.d.ts" />
describe("tester Google Analytics Tracker _gat object", () => {
it("can set ga script element", () => {
ga = <HTMLScriptElement>document.createElement("script");
gaClassic = <HTMLScriptElement>document.createElement("script");
});
it("can set aync to true", () => {
ga.async = true;
});
gaClassic.async = true;
});
it("can set src to string url", () => {
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';;
gaClassic.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
});
it("can set type", () => {
ga.type = 'text/javascript';
gaClassic.type = 'text/javascript';
});
});
describe('UniversalAnalytics', () => {
it('should exercise all ga APIs', () => {
ga('create', 'UA-65432-1', 'auto');
ga('create', 'UA-65432-1', {some: 'config'});
ga('create', 'UA-65432-1', 'auto', {some: 'config'});
ga('send', 'pageview');
ga('send', 'pageview', {some: 'details'});
ga.create('UA-65432-1', 'auto');
ga.create('UA-65432-1', {some: 'config'});
ga.create('UA-65432-1', 'auto', {some: 'config'});
ga.getAll();
ga.getByName('aNamedTracker');
});
it('should excercise Tracker APIs', () => {
var tracker: UniversalAnalytics.Tracker = ga('create', 'UA-65432-1', 'auto');
var aString: string = tracker.get<string>('aString');
var aNumber: number = tracker.get<number>('aNumber');
var anObject: {} = tracker.get<{}>('anObject');
tracker.send('pageview');
tracker.send('pageview', {some: 'details'});
tracker.set('aString', aString);
tracker.set('aNumber', aNumber);
tracker.set('anObject', anObject);
});
});
describe("tester Google Analytics Tracker _gat object", () => {
@@ -27,7 +47,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 +56,7 @@ describe("tester Google Analytics Tracker _gat object", () => {
it("can create _anonymizeIp", () => {
_gat._anonymizeIp();
});
});
describe("tester Google Analytics Code _gaq object", () => {
@@ -50,12 +70,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();
@@ -71,6 +91,3 @@ describe("tester Google Analytics Code Tracker object", () => {
tracker._trackPageLoadTime();
});
});
+28 -4
View File
@@ -1,6 +1,6 @@
// Type definitions for Google Analytics
// Project: https://developers.google.com/analytics/devguides/collection/gajs/
// Definitions by: Ronnie Haakon Hegelund <http://ronniehegelund.blogspot.dk>
// Type definitions for Google Analytics (Classic and Universal)
// Project: https://developers.google.com/analytics/devguides/collection/gajs/, https://developers.google.com/analytics/devguides/collection/analyticsjs/method-reference
// Definitions by: Ronnie Haakon Hegelund <http://ronniehegelund.blogspot.dk>, Pat Kujawa <http://patkujawa.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
declare class Tracker {
@@ -36,6 +36,30 @@ interface GoogleAnalytics {
async: boolean;
}
declare var ga: GoogleAnalytics;
declare module UniversalAnalytics {
// https://developers.google.com/analytics/devguides/collection/analyticsjs/method-reference
interface ga {
(command: string, poly: string, opt_poly?: {}): UniversalAnalytics.Tracker;
(command: string, trackingId: string, auto: string, opt_configObject?: {}): UniversalAnalytics.Tracker;
(command: string, hitDetails: {}): void;
create(trackingId: string, opt_configObject?: {}): UniversalAnalytics.Tracker;
create(trackingId: string, auto: string, opt_configObject?: {}): UniversalAnalytics.Tracker;
getAll(): UniversalAnalytics.Tracker[];
getByName(name: string): UniversalAnalytics.Tracker;
}
interface Tracker {
get<T>(fieldName: string): T;
send(hitType: string, opt_fieldObject?: {}): void;
set(fieldName: string, value: string): void;
set(fieldName: string, value: {}): void;
set(fieldName: string, value: number): void;
set(fieldName: string, value: boolean): void;
}
}
declare var gaClassic: GoogleAnalytics;
declare var ga: UniversalAnalytics.ga;
declare var _gaq: GoogleAnalyticsCode;
declare var _gat: GoogleAnalyticsTracker;