# Step 9: 트러블슈팅 및 FAQ
## 이 문서의 목표
- 자주 발생하는 문제 해결하기
- GA4 관련 FAQ
- 유용한 디버깅 도구
---
## 자주 발생하는 문제
### 문제 1: 실시간에 데이터가 안 보여요
**원인 확인:**
1. 측정 ID가 올바른지 확인
2. 환경변수가 제대로 설정되었는지 확인
3. 광고 차단 확장 프로그램 확인
**해결 방법:**
```bash
# 1. 환경변수 확인
echo $NEXT_PUBLIC_GA_MEASUREMENT_ID
# 2. 빌드 후 소스 확인
# 배포된 사이트에서 페이지 소스 보기
# "gtag" 또는 "G-" 검색
```
**브라우저에서 확인:**
```javascript
// 개발자 도구 콘솔에서
console.log(window.dataLayer);
// 데이터가 있으면 정상
```
---
### 문제 2: 어제 데이터가 없어요
**원인:**
- GA4 설정 직후에는 과거 데이터가 없음
- 데이터는 설정 시점부터 수집 시작
**해결:**
- GA4는 과거 데이터를 소급하지 않음
- 설정 완료 후 24-48시간 기다리기
- 실시간 → 어제 → 일주일 순으로 데이터 축적
---
### 문제 3: 방문자 수가 이상하게 적어요
**가능한 원인들:**
| 원인 | 확인 방법 |
|------|----------|
| 봇/크롤러 필터링 | 관리 → 데이터 설정 → 데이터 필터 |
| 내부 트래픽 제외 | 관리 → 데이터 스트림 → 태그 설정 |
| 광고 차단 | 다른 브라우저/시크릿 모드로 테스트 |
| 캐시 | 하드 리프레시 (Ctrl+Shift+R) |
---
### 문제 4: 특정 페이지 조회가 안 잡혀요
**SPA (Single Page Application) 문제:**
Next.js App Router는 클라이언트 사이드 네비게이션을 사용하므로,
페이지 전환 시 자동으로 페이지뷰가 안 잡힐 수 있음.
**해결책: 라우트 변경 감지**
```tsx
// components/GoogleAnalytics.tsx
"use client";
import Script from "next/script";
import { usePathname, useSearchParams } from "next/navigation";
import { useEffect } from "react";
const GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID;
export default function GoogleAnalytics() {
const pathname = usePathname();
const searchParams = useSearchParams();
useEffect(() => {
if (pathname && GA_MEASUREMENT_ID) {
window.gtag("config", GA_MEASUREMENT_ID, {
page_path: pathname + (searchParams?.toString() ? `?${searchParams}` : ""),
});
}
}, [pathname, searchParams]);
if (!GA_MEASUREMENT_ID) return null;
return (
<>
>
);
}
```
---
### 문제 5: 개발 환경에서 데이터가 섞여요
**해결: 환경별 설정 분리**
```tsx
// components/GoogleAnalytics.tsx
const GA_MEASUREMENT_ID = process.env.NEXT_PUBLIC_GA_MEASUREMENT_ID;
const isDevelopment = process.env.NODE_ENV === 'development';
export default function GoogleAnalytics() {
// 개발 환경에서는 GA 비활성화
if (!GA_MEASUREMENT_ID || isDevelopment) {
return null;
}
// ...
}
```
---
## FAQ
### Q: GA4는 무료인가요?
**A:** 네, 완전 무료입니다. 유료 버전(GA4 360)도 있지만 대기업용입니다.
### Q: 데이터 보관 기간은?
**A:** 기본 2개월, 최대 14개월까지 설정 가능
- 관리 → 데이터 설정 → 데이터 보관
### Q: GDPR/쿠키 동의가 필요한가요?
**A:** EU 사용자 대상 서비스라면 필요합니다.
- 일본 내 서비스는 큰 문제 없음
- 필요 시 쿠키 동의 배너 추가
### Q: 내 방문도 카운트되나요?
**A:** 네, 기본적으로 카운트됩니다.
- 제외하려면: 관리 → 데이터 스트림 → 태그 설정 → 내부 트래픽 정의
### Q: 여러 도메인을 하나로 추적할 수 있나요?
**A:** 네, 크로스 도메인 추적 가능
- 관리 → 데이터 스트림 → 태그 설정 → 도메인 구성
---
## 유용한 디버깅 도구
### 1. Google Tag Assistant
- Chrome 확장 프로그램
- 페이지의 태그 상태 확인
- https://tagassistant.google.com/
### 2. GA4 DebugView
- 관리 → DebugView
- 실시간 이벤트 디버깅
### 3. 브라우저 개발자 도구
```javascript
// Network 탭에서 필터
google-analytics
gtag
collect
// Console에서 확인
console.log(window.dataLayer);
```
### 4. Real-time 보고서
- 가장 빠른 확인 방법
- 설정 후 즉시 테스트 가능
---
## 다음 단계
v10에서 전체 과정을 정리하고 마무리합니다.
---
*작성일: 2024-12-05*
*프로젝트: PlanitAI 웹사이트 방문자 분석 설정*