declare global { interface Window { // eslint-disable-next-line @typescript-eslint/no-explicit-any gtag?: (...args: any[]) => void; // eslint-disable-next-line @typescript-eslint/no-explicit-any fbq?: (...args: any[]) => void; } } function gtag(event: string, params?: Record): void { if (typeof window !== "undefined" && typeof window.gtag === "function") { window.gtag("event", event, params ?? {}); } } function fbq(event: string, data?: Record): void { if (typeof window !== "undefined" && typeof window.fbq === "function") { window.fbq("track", event, data ?? {}); } } export const conversionEvents = { beginCheckout: (planName: string, value: number, currency = "EUR") => { gtag("begin_checkout", { items: [{ item_name: planName }], value, currency }); fbq("InitiateCheckout", { content_name: planName, value, currency }); }, purchase: (planName: string, value: number, transactionId?: string) => { const id = transactionId ?? crypto.randomUUID(); gtag("purchase", { transaction_id: id, value, currency: "EUR", items: [{ item_name: planName }] }); fbq("Purchase", { content_name: planName, value, currency: "EUR" }); }, selectPlan: (planName: string) => { gtag("select_item", { items: [{ item_name: planName }] }); fbq("AddToCart", { content_name: planName }); }, };