diff --git a/src/lib/actions/analytics.ts b/src/lib/actions/analytics.ts index db883247a..c39d53894 100644 --- a/src/lib/actions/analytics.ts +++ b/src/lib/actions/analytics.ts @@ -1,12 +1,11 @@ -import { Analytics, type AnalyticsPlugin } from 'analytics'; -import Plausible from 'plausible-tracker'; -import posthogEvent from 'posthog-js'; -import { get } from 'svelte/store'; -import { page } from '$app/stores'; - +import { page } from '$app/state'; import { ENV } from '$lib/system'; import { browser } from '$app/environment'; +import posthogEvent from 'posthog-js'; +import Plausible from 'plausible-tracker'; +import { Analytics, type AnalyticsPlugin } from 'analytics'; + type Payload = { payload: { event: string; @@ -55,30 +54,20 @@ const analytics = Analytics({ plugins: [plausible('appwrite.io')] }); -export type TrackEventArgs = { - plausible?: { name: string; data?: object }; - posthog?: { name: string }; -}; +export type TrackEventArgs = { name: string; data?: object }; -export const trackEvent = async (platforms: TrackEventArgs) => { - if (!isTrackingAllowed()) { +export const trackEvent = (eventArgs?: string | TrackEventArgs): void => { + if (!eventArgs || ENV.TEST) return; + + const path = page.route.id ?? ''; + const name = typeof eventArgs === 'string' ? eventArgs : eventArgs.name; + const data = typeof eventArgs === 'string' ? { path } : { ...eventArgs.data, path }; + + if (ENV.DEV || ENV.PREVIEW) { + console.log(`[Analytics] Event:`, name, data); return; } - const currentPage = get(page); - const path = currentPage.route.id ?? ''; - - if (ENV.DEV || ENV.PREVIEW) { - console.log(`[Analytics] Event`, platforms.plausible, platforms.posthog); - } else { - if (platforms.plausible) { - await analytics.track(platforms.plausible.name, { ...platforms.plausible.data, path }); - } - - if (platforms.posthog) { - posthogEvent.capture(platforms.posthog.name); - } - } + posthogEvent.capture(name, data); + analytics.track(name, data).then(); }; - -export const isTrackingAllowed = () => !ENV.TEST; diff --git a/src/lib/components/AppwriteIn100Seconds.svelte b/src/lib/components/AppwriteIn100Seconds.svelte index 0407d7987..c1148878b 100644 --- a/src/lib/components/AppwriteIn100Seconds.svelte +++ b/src/lib/components/AppwriteIn100Seconds.svelte @@ -1,8 +1,7 @@ @@ -117,15 +116,9 @@ {plan.description}

{/if} diff --git a/src/lib/layouts/Main.svelte b/src/lib/layouts/Main.svelte index 207b7f1ed..86b2a7839 100644 --- a/src/lib/layouts/Main.svelte +++ b/src/lib/layouts/Main.svelte @@ -227,11 +227,7 @@ target="_blank" rel="noopener noreferrer" class="web-u-inline-width-100-percent-mobile" - onclick={() => - trackEvent({ - plausible: { name: 'Star on GitHub in header' }, - posthog: { name: 'github-stars_nav_click' } - })} + event={{ name: 'github-stars-nav-click' }} >