From 538bfc94b7cb78ae86e89a2040dc55b0c816f45d Mon Sep 17 00:00:00 2001 From: jllee000 Date: Thu, 19 Feb 2026 17:23:22 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=98=A8=EB=B3=B4=EB=94=A9=20=EC=8A=A4?= =?UTF-8?q?=ED=85=9D=20=EB=B3=84=20GA=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/onBoarding/components/funnel/MainCard.tsx | 7 ++++++- .../onBoarding/components/funnel/step/AlarmStep.tsx | 9 +++++++++ .../components/funnel/step/SocialLoginStep.tsx | 10 +++++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/apps/client/src/pages/onBoarding/components/funnel/MainCard.tsx b/apps/client/src/pages/onBoarding/components/funnel/MainCard.tsx index 765bc5c1..1f6f0afe 100644 --- a/apps/client/src/pages/onBoarding/components/funnel/MainCard.tsx +++ b/apps/client/src/pages/onBoarding/components/funnel/MainCard.tsx @@ -1,4 +1,4 @@ -import { Progress, Button } from '@pinback/design-system/ui'; +import { Progress, Button, sendGAEvent } from '@pinback/design-system/ui'; import { useState, useEffect, lazy, Suspense } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import SocialLoginStep from './step/SocialLoginStep'; @@ -185,6 +185,11 @@ const MainCard = () => { setDirection(1); setStep(next); navigate(`/onboarding?step=${next}`); + sendGAEvent( + `onboard-step-${idx + 1}`, + `onboard-step-${idx + 1}`, + `onboard-step-${idx + 1}` + ); }; const prevStep = () => { diff --git a/apps/client/src/pages/onBoarding/components/funnel/step/AlarmStep.tsx b/apps/client/src/pages/onBoarding/components/funnel/step/AlarmStep.tsx index c10e37fc..52694e16 100644 --- a/apps/client/src/pages/onBoarding/components/funnel/step/AlarmStep.tsx +++ b/apps/client/src/pages/onBoarding/components/funnel/step/AlarmStep.tsx @@ -1,10 +1,19 @@ import dotori from '/assets/onBoarding/icons/dotori.svg'; import AlarmBox from '../AlarmBox'; +import { useEffect } from 'react'; +import { sendGAEvent } from '@pinback/design-system/ui'; interface AlarmStepProps { selected: 1 | 2 | 3; setSelected: (n: 1 | 2 | 3) => void; } const AlarmStep = ({ selected, setSelected }: AlarmStepProps) => { + useEffect(() => { + sendGAEvent( + 'onboard-alarm-step', + 'onboard-alarm-step', + 'onboard-alarm-step' + ); + }, []); return (
dotori diff --git a/apps/client/src/pages/onBoarding/components/funnel/step/SocialLoginStep.tsx b/apps/client/src/pages/onBoarding/components/funnel/step/SocialLoginStep.tsx index c126a49b..222c0cd9 100644 --- a/apps/client/src/pages/onBoarding/components/funnel/step/SocialLoginStep.tsx +++ b/apps/client/src/pages/onBoarding/components/funnel/step/SocialLoginStep.tsx @@ -3,8 +3,16 @@ import GoogleLogo from '/assets/onBoarding/icons/googleLogo.svg'; import { Link } from 'react-router-dom'; import { handleGoogleLogin } from '@shared/utils/handleGoogleLogin'; import { ROUTES_CONFIG } from '@routes/routesConfig'; - +import { useEffect } from 'react'; +import { sendGAEvent } from '@pinback/design-system/ui'; const SocialLoginStep = () => { + useEffect(() => { + sendGAEvent( + 'onboard-social-login-step', + 'onboard-social-login-step', + 'onboard-social-login-step' + ); + }, []); return (