nx/nx-dev/feature-analytics/src/lib/google-analytics.ts
2021-06-07 09:10:04 -04:00

41 lines
949 B
TypeScript

/**
* [Gtag sending data documentation](https://developers.google.com/analytics/devguides/collection/gtagjs/sending-data)
*
* [About Events](https://support.google.com/analytics/answer/1033068/about-events)
*/
import { Gtag } from './gtag';
declare const gtag: Gtag;
export function sendPageViewEvent(data: {
gaId: string;
path?: string;
title?: string;
}): void {
try {
gtag('config', data.gaId, {
...(!!data.path && { page_path: data.path }),
...(!!data.title && { page_title: data.title }),
});
} catch (exception) {
throw new Error(`Cannot send Google Tag event: ${exception}`);
}
}
export function sendCustomEvent(
action: string,
category: string,
label: string,
value?: number
): void {
try {
gtag('event', action, {
event_category: category,
event_label: label,
value,
});
} catch (error) {
throw new Error(`Cannot send Google Tag event: ${error}`);
}
}