-
Notifications
You must be signed in to change notification settings - Fork 5
Google Analytics(GA) 연동 가이드
Won Kim edited this page Dec 24, 2024
·
1 revision
@next/third-parties/google
패키지를 사용하는 것은 Google Analytics를 더 빠르게 연동하고 최신 Next.js App Router와 호환되도록 설계된 솔루션입니다.
아래는 이 방법에 대해 고려할 장점, 설정 가이드, 그리고 추가적인 트래킹 옵션입니다.
- 간편함: Google Analytics를 위한 최소한의 설정만 필요합니다.
- 자동 페이지 뷰 트래킹: App Router 기반의 라우팅에 따라 자동으로 페이지 뷰를 기록합니다.
- 최신 App Router와 호환: Root Layout에서 사용하는 구조는 최신 Next.js 앱 구조와 완벽하게 호환됩니다.
- 의존성 관리: 라이브러리를 통해 GA 설정을 캡슐화하여 코드가 깔끔해집니다.
npm install @next/third-parties
app/layout.tsx
에서 아래와 같이 설정합니다:
import { GoogleAnalytics } from '@next/third-parties/google'
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>
{children}
<GoogleAnalytics gaId={process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID} />
</body>
</html>
)
}
NEXT_PUBLIC_GA_MEASUREMENT_ID
를 .env.local
파일에 추가합니다:
NEXT_PUBLIC_GA_MEASUREMENT_ID=G-XXXXXXXXXX
Google Analytics 대시보드의 실시간 탭에서 페이지 뷰가 기록되는지 확인하세요.
자동 페이지 뷰 외에도 특정 이벤트(예: 버튼 클릭, 폼 제출)를 트래킹하려면 아래 방법을 사용할 수 있습니다.
Google Analytics 이벤트를 보내는 함수를 정의합니다:
export const trackEvent = ({ action, category, label, value }: {
action: string,
category: string,
label?: string,
value?: number,
}) => {
if (typeof window !== 'undefined' && window.gtag) {
window.gtag('event', action, {
event_category: category,
event_label: label,
value,
});
}
};
예를 들어, 버튼 클릭 시 이벤트를 트래킹:
import { trackEvent } from '@/lib/analytics'
export default function MyButton() {
return (
<button
onClick={() =>
trackEvent({
action: 'click',
category: 'Button',
label: 'Header Button',
value: 1,
})
}
>
Click Me
</button>
)
}