diff --git a/lib/analytics.ts b/lib/analytics.ts new file mode 100644 index 0000000..3f2d6a0 --- /dev/null +++ b/lib/analytics.ts @@ -0,0 +1,21 @@ +import type { BuilderSlotKey } from "@/types/builderSlots"; + +export function trackBuildStarted() { + window.umami?.track("build_started"); +} + +export function trackPartSelected(slot: BuilderSlotKey, partName: string, partId: string) { + window.umami?.track("part_selected", { slot, part_name: partName, part_id: partId }); +} + +export function trackAffiliateLinkClicked(partName: string, retailer: string) { + window.umami?.track("affiliate_link_clicked", { part_name: partName, retailer }); +} + +export function trackBuildShared() { + window.umami?.track("build_shared"); +} + +export function trackBuildSaved() { + window.umami?.track("build_saved"); +} diff --git a/types/umami.d.ts b/types/umami.d.ts new file mode 100644 index 0000000..4f0243c --- /dev/null +++ b/types/umami.d.ts @@ -0,0 +1,5 @@ +interface Window { + umami?: { + track: (eventName: string, properties?: Record) => void; + }; +}