google-analytics-ga4
Version:
This is package for google analytics GA4 .You can import it to any node project and use it .React , Vue, Anguler etc
142 lines (141 loc) • 4.71 kB
TypeScript
/**
* @typedef GaOptions
* @type {Object}
* @property {boolean} [cookieUpdate=true]
* @property {number} [cookieExpires=63072000] Default two years
* @property {string} [cookieDomain="auto"]
* @property {string} [cookieFlags]
* @property {string} [userId]
* @property {string} [clientId]
* @property {boolean} [anonymizeIp]
* @property {string} [contentGroup1]
* @property {string} [contentGroup2]
* @property {string} [contentGroup3]
* @property {string} [contentGroup4]
* @property {string} [contentGroup5]
* @property {boolean} [allowAdFeatures=true]
* @property {boolean} [allowAdPersonalizationSignals]
* @property {boolean} [nonInteraction]
* @property {string} [page]
*/
/**
* @typedef UaEventOptions
* @type {Object}
* @property {string} action
* @property {string} category
* @property {string} [label]
* @property {number} [value]
* @property {boolean} [nonInteraction]
* @property {('beacon'|'xhr'|'image')} [transport]
*/
/**
* @typedef InitOptions
* @type {Object}
* @property {string} trackingId
* @property {GaOptions|any} [gaOptions]
* @property {Object} [gtagOptions] New parameter
*/
export class GA4 {
reset: () => void;
isInitialized: boolean;
_testMode: boolean;
_hasLoadedGA: boolean;
_isQueuing: boolean;
_queueGtag: any[];
_gtag: (...args: any[]) => void;
gtag(...args: any[]): void;
_loadGA: (GA_MEASUREMENT_ID: any, nonce: any) => void;
_toGtagOptions: (gaOptions: any) => {};
/**
*
* @param {InitOptions[]|string} GA_MEASUREMENT_ID
* @param {Object} [options]
* @param {boolean} [options.legacyDimensionMetric=true]
* @param {string} [options.nonce]
* @param {boolean} [options.testMode=false]
* @param {GaOptions|any} [options.gaOptions]
* @param {Object} [options.gtagOptions] New parameter
*/
initialize: (GA_MEASUREMENT_ID: InitOptions[] | string, options?: {
legacyDimensionMetric?: boolean;
nonce?: string;
testMode?: boolean;
gaOptions?: GaOptions | any;
gtagOptions?: any;
}) => void;
_currentMeasurementId: string;
set: (fieldsObject: any) => void;
_gaCommandSendEvent: (eventCategory: any, eventAction: any, eventLabel: any, eventValue: any, fieldsObject: any) => void;
_gaCommandSendEventParameters: (...args: any[]) => void;
_gaCommandSendTiming: (timingCategory: any, timingVar: any, timingValue: any, timingLabel: any) => void;
_gaCommandSendPageview: (page: any, fieldsObject: any) => void;
_gaCommandSendPageviewParameters: (...args: any[]) => void;
_gaCommandSend: (...args: any[]) => void;
_gaCommandSet: (...args: any[]) => void;
_gaCommand: (command: any, ...args: any[]) => void;
ga: (...args: any[]) => any;
/**
* @param {UaEventOptions|string} optionsOrName
* @param {Object} [params]
*/
event: (optionsOrName: UaEventOptions | string, params?: any) => void;
send: (fieldObject: any) => void;
_appendCustomMap(options: any, legacyDimensionMetric?: boolean): any;
/**
* @since v1.0.2
* @param {string} [path="location.href"]
* @param {string[]} [_] unsupported
* @param {string} [title="location.pathname"]
* @deprecated Use `.send("pageview")` instead
*/
pageview: (path?: string, _?: string[], title?: string) => void;
/**
* @since v1.0.6
* @param {Object} options
* @param {string} options.label
* @param {function} hitCallback
* @deprecated Use `enhanced measurement` feature in Google Analytics.
*/
outboundLink({ label }: {
label: string;
}, hitCallback: Function): void;
}
declare var _default: GA4;
export default _default;
export type GaOptions = {
cookieUpdate?: boolean;
/**
* Default two years
*/
cookieExpires?: number;
cookieDomain?: string;
cookieFlags?: string;
userId?: string;
clientId?: string;
anonymizeIp?: boolean;
contentGroup1?: string;
contentGroup2?: string;
contentGroup3?: string;
contentGroup4?: string;
contentGroup5?: string;
allowAdFeatures?: boolean;
allowAdPersonalizationSignals?: boolean;
nonInteraction?: boolean;
page?: string;
};
export type UaEventOptions = {
action: string;
category: string;
label?: string;
value?: number;
nonInteraction?: boolean;
transport?: ('beacon' | 'xhr' | 'image');
};
export type InitOptions = {
trackingId: string;
gaOptions?: GaOptions | any;
/**
* New parameter
*/
gtagOptions?: any;
};