mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Merge pull request #2966 from patkujawa-wf/update_google_analytics
Update google analytics to include newer universal analytics
This commit is contained in:
@@ -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();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
Vendored
+28
-4
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user