실습 — GTM으로 우리 사이트 전환 잡기
본인 GTM 컨테이너로 google-ads-edu.pages.dev/practice 데모 결제 흐름의 페이지뷰·완료 페이지 전환·dataLayer 이벤트를 단계별로 잡아보는 60분 실습.
준비물
- Google 계정 1개
- 본인 GTM 컨테이너 — 없으면 tagmanager.google.com에서 5분 만에 만들기
- 본인 GA4 속성 (선택) — 미션 1에서 페이지뷰 도달 검증용
- 실습 사이트: 우리 사이트의
/practice흐름 — https://google-ads-edu.pages.dev/practice
실습 사이트 흐름
/practice → /practice/cart/ → /practice/checkout/ → /practice/complete/
| 단계 | URL | 자동 발동 이벤트 |
|---|---|---|
| 1. 상품 페이지 | /practice/ | (없음 — 일반 페이지뷰) |
| 2. 장바구니 | /practice/cart/ | (없음) |
| 3. 결제 | /practice/checkout/ | begin_checkout |
| 4. 완료 | /practice/complete/ | purchase (transaction_id 포함) |
미션 1 (Easy) — 모든 페이지 GA4 페이지뷰 추적
목표: GA4 구성 태그를 만들어 /practice/* 모든 페이지에서 페이지뷰 발동.
단계
- GTM 좌측 태그 → 새로 만들기
- 태그 구성 클릭 → “Google 태그(Google tag)” 또는 “Google 애널리틱스: GA4 구성” 선택
- 태그 ID 입력: 본인 GA4 측정 ID
G-XXXXXXX - 트리거 클릭 → “모든 페이지(All Pages)” 선택
- 태그 이름:
GA4 - 페이지뷰→ 저장 - 우측 상단 미리보기 클릭 → URL 입력:
https://google-ads-edu.pages.dev/practice/→ Connect - 새 창으로 사이트가 열리면 상품 → 장바구니 → 결제 → 완료 4단계를 클릭하며 이동
- Tag Assistant 좌측 타임라인에서 각 페이지뷰마다
GA4 - 페이지뷰태그가 “Fired” 상태로 떠야 함
검증 — GA4 실시간 보고서
GA4 → 보고서 → 실시간 → 미리보기로 방문한 페이지가 30초 이내에 표시되면 성공.
미션 2 (Medium) — 완료 페이지 URL 기반 Google Ads 전환
목표: /practice/complete/ URL에 도달했을 때만 Google Ads 전환 추적 태그 발동.
단계
- (준비) Google Ads → 도구 → 전환 → 새 전환 → “웹사이트” → 카테고리 “구매” → 저장 → 전환 ID + 전환 라벨 복사
- GTM → 트리거 → 새로 만들기
- 트리거 유형: 페이지 뷰
- 발동 조건: “일부 페이지 뷰” →
Page Pathcontains/practice/complete - 트리거 이름:
Page - 완료 페이지→ 저장 - GTM → 태그 → 새로 만들기 → “Google Ads 전환 추적”
- 전환 ID·라벨 입력 / 전환 가치:
50000/ 통화:KRW - 트리거: 방금 만든
Page - 완료 페이지선택 - 태그 이름:
GAds - 전환 - 구매→ 저장 - 미리보기 → 사이트에서 4단계 결제 흐름 진행 → 완료 페이지에서
GAds - 전환 - 구매태그가 “Fired”로 떠야 함
자가 점검 체크리스트
-
/practice/에서는 전환 태그 안 떠야 함 (Tags Not Fired영역에 가 있어야 정상) -
/practice/complete/에서만 1회 발동 - Properties 탭에서
Conversion Value: 50000,Currency: KRW정확히 전달
미션 3 (Hard) — dataLayer 이벤트 + transaction_id로 중복 방지
목표: 완료 페이지가 자동 발동하는 purchase dataLayer 이벤트를 정확히 잡아 매출·주문 ID 정확 전달.
단계
1) 데이터 영역 변수 만들기
GTM → 변수 → “사용자 정의 변수” → 새로 만들기
세 개를 같은 방식으로 생성:
| 변수 이름 | 변수 유형 | 데이터 영역 변수 이름 |
|---|---|---|
dlv - value | 데이터 영역 변수 | value |
dlv - currency | 데이터 영역 변수 | currency |
dlv - transaction_id | 데이터 영역 변수 | transaction_id |
2) 맞춤 이벤트 트리거
트리거 → 새로 만들기 → 유형: 맞춤 이벤트 → 이벤트 이름: purchase → 저장
3) 전환 추적 태그 (Hard 버전)
태그 → 새로 만들기 → “Google Ads 전환 추적”
- 전환 ID·라벨: 미션 2와 동일
- 전환 가치:
{{dlv - value}} - 통화 코드:
{{dlv - currency}} - 주문 ID:
{{dlv - transaction_id}}← 중복 방지의 핵심 - 트리거: 방금 만든 맞춤 이벤트
purchase - 태그 이름:
GAds - 전환 - purchase (dataLayer)
미션 2의 태그는 일시 정지(Pause)하거나 트리거를 빼서 두 개가 동시에 발동하지 않게 합니다.
4) 검증
- 미리보기 →
/practice/complete/접속 - Tag Assistant 좌측 타임라인에서
Message: purchase이벤트 클릭 - 우측 “Tags Fired”에 새 태그가 “Fired”로 떠야 함
- 변수 / 데이터 영역 탭에서
value: 50000,currency: KRW,transaction_id: DEMO-...값이 잡혔는지 확인
5) Transaction ID 효과 실험 — 완료 페이지의 두 버튼
완료 페이지 하단에 A. 같은 transaction_id로 다시 / B. transaction_id 없이 두 버튼이 있습니다.
- A 버튼 클릭: 같은 ID로 push → GTM 미리보기엔 새 이벤트로 보임 → 하지만 Google Ads는 같은 ID를 자동 dedup해서 실제 광고 보고서엔 1회만 카운트
- B 버튼 클릭: ID 없이 push → Ads는 새 전환으로 카운트 → 실제 운영이라면 새로고침·뒤로가기 사용자 수만큼 매출 부풀려짐
이 실험으로 “왜 transaction_id가 dataLayer 핵심 필드인가”를 손으로 체감하게 됩니다.
흔한 트러블슈팅
| 증상 | 원인 | 해결 |
|---|---|---|
| Tag Assistant Connect 안 됨 | 쿠키 차단, 시크릿/VPN | 일반 모드 + 광고 차단 확장 끄기 |
| 태그가 모든 페이지에서 발동 | ”모든 페이지” 트리거를 잘못 적용 | 트리거 조건을 “Page Path contains” 같이 좁히기 |
| 데이터 영역 변수 값이 비어 있음 | 변수 이름·대소문자 불일치 | dataLayer push의 키와 변수 설정 정확히 일치 |
| 미리보기에선 떠도 광고 보고서엔 안 보임 | 반영 지연 또는 GA4-Ads 미연결 | 24~48h 대기, GA4 관리 → Google Ads 연결 확인 |
| 전환이 2배로 잡힘 | Ads 태그 + GA4 import 둘 다 기본 전환 | 하나만 기본, 나머지는 보조 전환으로 |
마치며
GTM 미리보기에서 “Fired”가 뜨는 순간을 직접 본 사람과 안 본 사람의 실무 차이가 큽니다. 막힐 땐 항상 다음 순서로 점검하세요:
- dataLayer.push가 실제로 일어났나? — 콘솔에서
dataLayer입력해 확인 - 트리거 조건이 맞나? — Tag Assistant의
Tags Not Fired에서 어떤 조건이 빗나갔는지 확인 - 변수 값이 정확히 들어왔나? —
변수 / 데이터 영역탭
다음 단계 → 실제 본인 사이트에 GTM 컨테이너 스니펫 설치 + 같은 패턴으로 전환 추적 시작.