From db74a9b166279d4638888f4e21fd5dfd02fe094d Mon Sep 17 00:00:00 2001 From: SquidSpirit Date: Mon, 4 Aug 2025 07:00:17 +0800 Subject: [PATCH 1/2] BLOG-112 feat: add Google Analytics integration and update environment variables - Implement Google Analytics script loading in a new component. - Add GA_MEASUREMENT_ID to the environment configuration. - Update layout to include GoogleAnalytics component. - Enhance app.html with viewport and description meta tags. --- frontend/Dockerfile | 1 + frontend/src/app.d.ts | 5 ++++ frontend/src/app.html | 3 ++ .../framework/ui/GoogleAnalytics.svelte | 28 +++++++++++++++++++ frontend/src/lib/environment.ts | 1 + frontend/src/routes/+layout.svelte | 4 ++- 6 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 frontend/src/lib/common/framework/ui/GoogleAnalytics.svelte diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 394c146..69e2299 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -24,4 +24,5 @@ ENV NODE_ENV=production ENV HOSTNAME=0.0.0.0 ENV PORT=3000 ENV PUBLIC_API_BASE_URL=http://127.0.0.1:8080/ +ENV PUBLIC_GA_MEASUREMENT_ID= CMD ["node", "build"] diff --git a/frontend/src/app.d.ts b/frontend/src/app.d.ts index ecf09e9..05109e2 100644 --- a/frontend/src/app.d.ts +++ b/frontend/src/app.d.ts @@ -15,6 +15,11 @@ declare global { declare const __VERSION__: string; } + + interface Window { + dataLayer: unknown[]; + gtag: (command: 'config' | 'set' | 'js' | 'event', ...args: unknown[]) => void; + } } export {}; diff --git a/frontend/src/app.html b/frontend/src/app.html index e9f1193..0146294 100644 --- a/frontend/src/app.html +++ b/frontend/src/app.html @@ -12,8 +12,10 @@ media="(prefers-color-scheme: dark)" href="%sveltekit.assets%/icon/logo-dark.svg" /> + 魚之魷魂 SquidSpirit + @@ -30,6 +32,7 @@ /> + %sveltekit.head% diff --git a/frontend/src/lib/common/framework/ui/GoogleAnalytics.svelte b/frontend/src/lib/common/framework/ui/GoogleAnalytics.svelte new file mode 100644 index 0000000..9556629 --- /dev/null +++ b/frontend/src/lib/common/framework/ui/GoogleAnalytics.svelte @@ -0,0 +1,28 @@ + diff --git a/frontend/src/lib/environment.ts b/frontend/src/lib/environment.ts index cacc64b..f845aec 100644 --- a/frontend/src/lib/environment.ts +++ b/frontend/src/lib/environment.ts @@ -2,4 +2,5 @@ import { env } from '$env/dynamic/public'; export abstract class Environment { static readonly API_BASE_URL = env.PUBLIC_API_BASE_URL ?? 'http://localhost:5173/api/'; + static readonly GA_MEASUREMENT_ID = env.PUBLIC_GA_MEASUREMENT_ID ?? ''; } diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index 5d87c98..f5d435c 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -1,10 +1,12 @@ - + -- 2.47.2 From e9b716521d943c9263353883a3db33cb4c48f486 Mon Sep 17 00:00:00 2001 From: SquidSpirit Date: Mon, 4 Aug 2025 07:22:48 +0800 Subject: [PATCH 2/2] BLOG-112 refactor: simplify Google Analytics script initialization and remove gtag declaration from Window interface --- frontend/src/app.d.ts | 1 - .../lib/common/framework/ui/GoogleAnalytics.svelte | 12 ++++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/frontend/src/app.d.ts b/frontend/src/app.d.ts index 05109e2..a20b327 100644 --- a/frontend/src/app.d.ts +++ b/frontend/src/app.d.ts @@ -18,7 +18,6 @@ declare global { interface Window { dataLayer: unknown[]; - gtag: (command: 'config' | 'set' | 'js' | 'event', ...args: unknown[]) => void; } } diff --git a/frontend/src/lib/common/framework/ui/GoogleAnalytics.svelte b/frontend/src/lib/common/framework/ui/GoogleAnalytics.svelte index 9556629..eca33c8 100644 --- a/frontend/src/lib/common/framework/ui/GoogleAnalytics.svelte +++ b/frontend/src/lib/common/framework/ui/GoogleAnalytics.svelte @@ -1,4 +1,4 @@ - -- 2.47.2