@ima/plugin-analytic-google
Version:
Seznam IMA.js google analytic plugin
70 lines • 2.11 kB
TypeScript
import type { Dependencies } from '@ima/core';
import { AbstractAnalytic } from '@ima/plugin-analytic';
type ConsentSettings = {
ad_storage?: 'denied' | 'granted';
analytics_storage?: 'denied' | 'granted';
personalization_storage?: 'denied' | 'granted';
};
export interface AnalyticGoogleSettings {
consentSettings?: ConsentSettings;
service: string;
waitForUpdateTimeout?: number;
}
export interface PageViewData {
page_location: string;
page_path: string;
page_referrer: string;
page_route: string;
page_status?: string;
page_title: string;
}
/**
* Google analytic 4 class
*/
export declare class GoogleAnalytics4 extends AbstractAnalytic {
#private;
_consentSettings?: ConsentSettings;
static get $dependencies(): Dependencies;
set _ga4Script(value: Gtag.Gtag);
get _ga4Script(): Gtag.Gtag;
get config(): AnalyticGoogleSettings;
/**
* Initializes the Google Analytics 4 plugin.
*/
constructor(config: AnalyticGoogleSettings, ...rest: ConstructorParameters<typeof AbstractAnalytic>);
/**
* Hits custom event of given with given data
*/
hit(eventName: string, eventData: Record<string, any>): void;
/**
* Hit page view event to analytic with defined data.
*/
hitPageView(pageData: Record<string, any>): void;
/**
* Updates user consents in Google Analytics script
*
* @param purposeConsents Purpose Consents of TCModel, see: https://www.npmjs.com/package/@iabtcf/core#tcmodel
*/
updateConsent(purposeConsents: Record<string, any>): void;
/**
* @override
* @inheritdoc
*/
_applyPurposeConsents(purposeConsents: Record<string, any>): void;
/**
* @override
* @inheritdoc
*/
_configuration(): void;
/**
* Returns page view data derived from pageData param.
*/
_getPageViewData(pageData: Record<string, any>): PageViewData;
/**
* @override
* @inheritdoc
*/
_createGlobalDefinition(window: globalThis.Window): void;
}
export {};
//# sourceMappingURL=GoogleAnalytics4.d.ts.map