declare global { | |
interface Window { | |
gtag: any; | |
fireEvent: (props: { | |
action: string; | |
category: string; | |
label?: string; | |
value?: string; | |
}) => void; | |
} | |
} | |
/** | |
* Tracks the event on google analytics | |
* @see https://developers.google.com/analytics/devguides/collection/gtagjs/events | |
* @param props Event properties | |
* @returns void | |
*/ | |
window.fireEvent = (props) => { | |
const { action, category, label, value } = props; | |
if (!window.gtag) { | |
console.warn('Missing GTAG - Analytics disabled'); | |
return; | |
} | |
if (import.meta.env.DEV) { | |
console.log('Analytics event fired', props); | |
} | |
window.gtag('event', action, { | |
event_category: category, | |
event_label: label, | |
value: value, | |
}); | |
}; | |