From f0657ce9f4f1c92ebadbf0e5fd58940c1a7b5fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Sat, 2 May 2026 08:27:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(analytics):=20=E6=9B=B4=E6=96=B0Google=20An?= =?UTF-8?q?alytics=E9=85=8D=E7=BD=AE=E5=92=8C=E5=8F=98=E9=87=8F=E5=91=BD?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新环境变量命名以匹配GA4标准,并调整默认存储权限配置 添加页面浏览跟踪逻辑,当用户同意分析时发送页面数据 --- .env.example | 2 +- src/components/analytics/GoogleAnalytics.tsx | 16 +++++++++------- src/lib/analytics.ts | 8 ++++++++ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.env.example b/.env.example index a56f659..89c8dde 100644 --- a/.env.example +++ b/.env.example @@ -1 +1 @@ -NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX +NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX diff --git a/src/components/analytics/GoogleAnalytics.tsx b/src/components/analytics/GoogleAnalytics.tsx index 4fed77b..09d9099 100644 --- a/src/components/analytics/GoogleAnalytics.tsx +++ b/src/components/analytics/GoogleAnalytics.tsx @@ -12,9 +12,9 @@ function GoogleAnalyticsContent() { useEffect(() => { if (!GA_MEASUREMENT_ID || typeof window === 'undefined') {return;} - + const url = pathname + (searchParams.toString() ? `?${searchParams.toString()}` : ''); - + if (window.gtag) { window.gtag('config', GA_MEASUREMENT_ID, { page_path: url, @@ -37,18 +37,20 @@ function GoogleAnalyticsContent() { window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); - - // 默认禁用存储,等待用户同意 + gtag('consent', 'default', { - 'analytics_storage': 'denied', + 'analytics_storage': 'granted', 'ad_storage': 'denied', + 'functionality_storage': 'granted', + 'personalization_storage': 'denied', + 'security_storage': 'granted', 'wait_for_update': 500 }); - + gtag('config', '${GA_MEASUREMENT_ID}', { send_page_view: false, anonymize_ip: true, - allow_google_signals: false, + allow_google_signals: true, allow_ad_personalization_signals: false, cookie_flags: 'SameSite=None;Secure' }); diff --git a/src/lib/analytics.ts b/src/lib/analytics.ts index 2709eaa..52b2b85 100644 --- a/src/lib/analytics.ts +++ b/src/lib/analytics.ts @@ -174,6 +174,14 @@ export const updateConsentDetailed = (preferences: CookiePreferences) => { personalization_storage: preferences.marketing ? 'granted' : 'denied', security_storage: 'granted', }); + + if (preferences.analytics) { + window.gtag('config', GA_MEASUREMENT_ID, { + page_path: window.location.pathname + window.location.search, + page_title: document.title, + page_location: window.location.href, + }); + } } };