UNPKG

@technoapple/ga4

Version:

TypeScript Node.js library to support GA4 analytics.

41 lines (31 loc) 980 B
import { ga4Option } from "./ga4option"; import { DataLayerObject } from "../types/dataLayer"; import { KeyValueParams, gtag } from "../types/gtag"; import {} from '../types/global'; class ga4 { private static instance: ga4; private constructor() { } public init(option:ga4Option){ window.dataLayer = window.dataLayer || Array<DataLayerObject>; window.gtag = window.gtag || function() { window.dataLayer.push(arguments); } window.gtag('js', new Date()); window.gtag('config', option.targetId); } public static getInstance():ga4 { if (!ga4.instance) { ga4.instance = new ga4(); } return ga4.instance; } public send(eventName:string, eventParameters: KeyValueParams ): boolean { window.gtag('event', eventName, eventParameters); return true; } get gtag() : gtag { return window.gtag; } } export {ga4};