GTM 설치 방법: 컨테이너 코드부터 게시까지 4단계 기준
GTM 설치에서 어려운 건 코드 두 줄을 붙여넣는 일이 아닙니다. 그 코드가 사이트의 모든 페이지에서, 다른 추적 코드와 겹치지 않고, 의도한 순서대로 실행되게 만드는 일입니다.
GTM을 제대로 설치하려면 코드를 붙이기 전에 사이트에 이미 심어진 추적 코드부터 확인해야 합니다. 그다음 설치하고, 미리보기로 검증하고, 게시까지 끝내야 설치가 끝난 것입니다. 실무에서 나오는 오류는 대부분 붙여넣기 단계가 아니라 그 앞뒤 단계에서 생깁니다.
아래에서는 설치 전 점검, 코드 삽입 위치, 플랫폼별 설치 방식, 검증과 게시 순서를 단계별로 설명합니다.
1. GTM 설치 전에 확인할 것: 기존 추적 코드와 컨테이너 구조
GTM(Google Tag Manager)은 광고 픽셀, 분석 태그, 전환 스크립트를 한곳에서 관리하는 '태그 보관함'입니다.
여기서 많은 분들이 놓치는 점이 있습니다. GTM을 설치한다고 해서 기존에 사이트 코드에 직접 박혀 있던 태그가 사라지지는 않습니다. 기존 코드를 그대로 둔 채 같은 태그를 GTM에도 넣으면 같은 이벤트가 두 번 잡힙니다.
1-1. 사이트에 이미 심어진 코드부터 목록으로 만들기
설치 전에 먼저 할 일은 현재 사이트에서 실행되고 있는 추적 코드를 정리하는 것입니다.
실무에서는 보통 아래 순서로 확인합니다.
① 사이트 페이지 소스(Ctrl+U)에서 gtag(, fbq(, wcs_do, kakaoPixel, GTM- 같은 문자열 검색
② 쇼핑몰 솔루션 관리자 화면의 '외부 서비스 연동', '마케팅 연동' 메뉴 확인
③ 브라우저 개발자 도구 네트워크 탭에서 collect, tr?id= 같은 요청이 어디로 나가는지 확인
특히 ②번을 놓치는 경우가 많습니다. 쇼핑몰 솔루션의 연동 메뉴에서 GA4나 메타 픽셀 ID만 입력해 둔 경우, 소스 코드를 봐서는 한눈에 보이지 않기 때문입니다.
-> 핵심: GTM 설치는 '추가'가 아니라 '이관'입니다. 기존 코드 목록이 없으면 이관도 할 수 없습니다.
1-2. 이미 다른 GTM 컨테이너가 있는지 확인하기
이전 대행사나 개발사가 만든 GTM 컨테이너가 이미 설치된 사이트도 생각보다 많습니다.
이 상태에서 새 컨테이너를 또 설치하면 두 컨테이너가 동시에 돌아갑니다. 각 컨테이너에 GA4 태그가 하나씩 들어 있으면 페이지뷰가 두 배로 잡힙니다.
소스에서 GTM-으로 시작하는 ID가 이미 보인다면, 새로 만들기 전에 그 컨테이너의 접근 권한부터 확보하는 편이 맞습니다. 권한을 받을 수 없을 때만 새 컨테이너로 옮기고, 이때는 기존 컨테이너 코드를 반드시 같이 제거해야 합니다.
1-3. 계정과 컨테이너는 어떻게 나눌까
GTM은 '계정 > 컨테이너 > 작업공간' 구조입니다. 판단 기준은 단순합니다.
구분 | 기준 | 예시 |
|---|---|---|
계정 | 회사(사업자) 단위로 1개 | 브랜드 운영사 1곳 = 계정 1개 |
컨테이너 | 도메인(사이트) 단위로 1개 | 자사몰, 브랜드 소개 사이트 각각 1개 |
컨테이너 유형 | 웹사이트는 '웹' 선택 | 앱은 iOS·Android, 서버 측 태깅은 '서버' |
작업공간 | 동시에 작업하는 사람·작업 단위로 분리 | 광고 태그 작업 / 분석 태그 작업 |
하나의 컨테이너에 여러 도메인을 묶는 것도 기술적으로는 가능합니다. 하지만 트리거마다 도메인 조건을 걸어야 해서 관리가 금방 복잡해집니다. 사이트가 완전히 다르면 컨테이너도 나누는 편이 운영하기 편합니다.
계정 소유자는 대행사나 프리랜서가 아니라 반드시 브랜드 쪽 계정으로 두세요. 외부 담당자에게는 사용자 권한만 주는 구조여야 담당자가 바뀌어도 측정 자산이 그대로 남습니다.
2. GTM 설치 코드 넣는 위치: head와 body 두 조각의 역할
컨테이너를 만들면 코드 두 조각이 나옵니다. 각 조각에는 정해진 위치가 있습니다.
2-1. 첫 번째 조각: <head> 안, 가능한 한 위쪽
첫 번째 조각은 <script> 태그로 된 코드입니다. 이 코드가 실제로 GTM을 불러와 태그를 실행합니다.
위치는 <head> 안에서 가능한 한 위쪽입니다. 아래에 있을수록 GTM이 늦게 로드되고, 그사이에 페이지를 떠난 방문자는 기록되지 않습니다. 랜딩 직후 바로 이탈하는 비율이 높은 광고 트래픽에서는 이 차이가 클릭 대비 세션 수 차이로 그대로 드러납니다.
예외가 하나 있습니다. 개발팀이 dataLayer에 상품 정보나 회원 정보를 넣는 경우, 그 dataLayer 선언 코드는 GTM 코드보다 위에 있어야 합니다. 순서가 바뀌면 GTM이 로드되는 시점에 값을 읽지 못해 전환 값이 비어서 전송됩니다.
2-2. 두 번째 조각: <body> 여는 태그 바로 뒤
두 번째 조각은 <noscript> 안에 iframe이 들어 있는 코드입니다. 자바스크립트가 꺼진 브라우저를 위한 보조 코드입니다.
위치는 <body> 여는 태그 바로 다음입니다. 실제 광고 성과 측정에는 거의 영향이 없지만, 구글이 권장하는 표준 설치 방식이고 일부 검증 도구가 이 코드 유무를 함께 확인하므로 같이 넣는 편이 좋습니다.
-> 핵심: 측정을 책임지는 건 head 쪽 코드입니다. 이 코드가 늦게 실행되거나 일부 페이지에서 빠지는 것이 가장 흔한 실패 원인입니다.
2-3. 모든 페이지에 들어갔는지가 가장 중요합니다
GTM 코드는 사이트의 모든 페이지에 들어가야 합니다. 그런데 실무에서는 아래 페이지에서 자주 빠집니다.
주문서·결제 완료 페이지가 별도 템플릿으로 분리된 경우
이벤트 기획전처럼 별도 HTML로 따로 만든 랜딩페이지
모바일 전용 스킨이 따로 있는 쇼핑몰
외부 결제창을 거쳐 돌아오는 주문 완료 페이지
한 쇼핑몰의 경우 PC 스킨에만 GTM을 넣고 모바일 스킨에는 넣지 않은 채 몇 주를 운영한 사례가 있습니다. 광고 매체에서는 클릭이 정상으로 쌓이는데 분석 도구에는 모바일 유입이 거의 잡히지 않았습니다. 모바일 비중이 대부분인 업종이라, 결과적으로 그 기간의 광고 데이터를 판단에 쓸 수 없었습니다.
설치가 끝나면 메인, 상품 상세, 장바구니, 주문서, 주문 완료까지 최소 5개 유형의 페이지를 PC와 모바일에서 각각 확인해야 합니다.
3. 플랫폼별 GTM 설치 방식: 직접 삽입과 연동 메뉴 차이
사이트 구축 방식에 따라 코드를 넣는 위치가 다릅니다. 핵심은 '공통 레이아웃 파일' 또는 '전체 페이지 공통 코드 입력란'을 찾는 것입니다.
3-1. 플랫폼별 삽입 위치 정리
구축 방식 | 삽입 위치 | 주의할 점 |
|---|---|---|
직접 개발한 사이트 | 공통 레이아웃(헤더·푸터 템플릿) 파일 | 별도 템플릿을 쓰는 결제 페이지 누락 확인 |
카페24 | 디자인 편집에서 공통 레이아웃 파일 편집 | PC·모바일 스킨 각각 삽입, 스킨 교체 시 재삽입 |
아임웹 | 사이트 설정의 헤더 코드·바디 코드 입력란 | 솔루션 자체 GA4·픽셀 연동과의 중복 확인 |
워드프레스 | 테마 헤더 파일 또는 GTM 전용 플러그인 | 테마 업데이트 시 코드 삭제 여부 확인 |
쇼피파이 | 테마 레이아웃 파일 + 고객 이벤트(맞춤 픽셀) | 결제 단계는 테마 코드가 적용되지 않는 구조 |
네이버 스마트스토어 | 설치 불가 | 외부 스크립트 삽입이 허용되지 않음 |
3-2. 쇼핑몰 솔루션에서 가장 많이 생기는 문제: 스킨 교체
카페24처럼 스킨(디자인)을 직접 수정해 설치하는 방식은 스킨을 바꾸는 순간 코드도 같이 사라집니다.
시즌 리뉴얼로 새 스킨을 적용한 다음 날부터 전환이 0건으로 떨어졌다면, 광고 성과를 의심하기 전에 GTM 코드부터 확인해야 합니다. 디자인 작업 일정이 잡히면 '스킨 적용 후 GTM 코드 재삽입'을 작업 체크리스트에 넣어두는 것이 가장 확실한 예방책입니다.
3-3. 솔루션 연동 메뉴와 GTM, 하나만 써야 합니다
아임웹이나 카페24에는 GA4 측정 ID나 메타 픽셀 ID를 입력하는 연동 메뉴가 있습니다. 이 메뉴로 이미 태그를 넣었다면, GTM에서 같은 태그를 또 만들면 안 됩니다.
판단 기준은 이렇습니다.
구매·장바구니 같은 기본 이벤트만 필요하고, 수정할 일이 거의 없다 → 솔루션 연동 메뉴 유지
이벤트를 직접 정의하거나, 여러 매체 태그를 한곳에서 관리해야 한다 → GTM으로 이관하고 연동 메뉴의 ID는 삭제
둘을 섞어 쓰면 어떤 태그가 어디서 발생하는지 추적하기 어려워집니다. 나중에 전환 수가 맞지 않을 때 원인을 찾는 시간도 그만큼 길어집니다.
메타 픽셀을 GTM으로 옮기는 구체적인 태그·트리거 구성은 아래 글에서 따로 다뤘습니다.
GTM 메타 픽셀 설치 기준: 태그·트리거·중복 방지 3단계
4. GTM 설치 확인과 게시: 미리보기로 검증하는 순서
코드를 붙여넣었다고 끝이 아닙니다. GTM은 '게시'를 해야 실제 사이트에 반영되고, 게시 전에 미리보기로 검증해야 합니다.
4-1. 미리보기(Tag Assistant)로 연결 확인
GTM 작업공간 오른쪽 위의 '미리보기'를 누르고 사이트 주소를 입력하면, 새 창에서 사이트가 열리고 Tag Assistant 화면에 연결 상태가 표시됩니다.
여기서 확인할 것은 세 가지입니다.
① 'Connected' 상태로 연결되는가 → 연결이 안 되면 head 코드가 없거나 컨테이너 ID가 틀린 것
② 페이지 이동 시 Container Loaded, DOM Ready, Window Loaded 이벤트가 순서대로 찍히는가
③ 넣어둔 태그가 'Tags Fired' 영역에 뜨는가, 아니면 'Tags Not Fired'에 머무는가
③에서 태그가 실행되지 않는다면 대부분 트리거 조건 문제입니다. 페이지 URL 조건을 '같음'으로 걸어두었는데 실제 URL에 파라미터가 붙어 조건과 달라지는 경우가 대표적입니다. 이럴 때는 '포함' 조건으로 바꾸는 것만으로 해결되는 경우가 많습니다.
4-2. 버전 이름을 남기고 게시하기
검증이 끝나면 '제출'을 눌러 게시합니다. 이때 버전 이름과 설명을 꼭 적어두세요.
"GA4 구성 태그 추가, 기존 하드코딩 gtag 제거와 동시 반영"처럼 무엇을 왜 바꿨는지 남겨두면, 문제가 생겼을 때 이전 버전으로 되돌리는 판단이 빨라집니다. 버전 이름 없이 '버전 12', '버전 13'만 남아 있으면 어느 시점에 무엇이 바뀌었는지 아무도 기억하지 못합니다.
-> 핵심: 게시 기록은 나중에 전환 수치가 튀었을 때 원인을 찾는 가장 빠른 단서입니다.
4-3. 게시 후 24~48시간은 숫자를 나란히 놓고 보기
게시 직후에는 기존 수치와 새 수치를 함께 비교해야 합니다. 비교할 항목은 아래와 같습니다.
비교 항목 | 정상 신호 | 의심 신호 |
|---|---|---|
페이지뷰·세션 | 설치 전과 비슷한 수준 | 갑자기 약 2배 → 중복 실행 |
구매 전환 수 | 쇼핑몰 실제 주문 수와 비슷한 흐름 | 주문은 있는데 0건 → 완료 페이지 누락 |
광고 매체 전환 | 이관 전과 비슷한 수준 | 급감 → 트리거 조건 오류 |
모바일 비중 | 평소 비율 유지 | 급감 → 모바일 스킨 누락 |
실무에서 가장 흔한 실패는 '기존 하드코딩 코드 제거'와 'GTM 게시'의 시점이 어긋나는 경우입니다.
예를 들어 개발팀이 기존 gtag 코드를 월요일에 지웠는데 GTM 게시는 수요일에 했다면, 그 이틀간의 데이터는 비어 있습니다. 반대로 GTM을 먼저 게시하고 기존 코드 제거가 늦어지면 그 기간은 중복으로 잡힙니다. 두 작업은 같은 날, 가능하면 같은 시간대에 반영하는 것이 원칙입니다.
4-4. 페이지 이동이 새로고침 없이 일어나는 사이트라면
React나 Vue로 만든 사이트처럼 화면이 바뀌어도 페이지 전체가 새로 로드되지 않는 구조(SPA)는 별도 설정이 필요합니다.
이런 사이트는 기본 '페이지뷰' 트리거가 첫 진입 때 한 번만 실행됩니다. 이후 상품 상세로 이동해도 페이지뷰가 잡히지 않아, 분석 도구에는 방문자가 메인만 보고 나간 것처럼 기록됩니다.
이때는 '방문 기록 변경(History Change)' 트리거를 추가하거나, 개발팀에 화면 전환 시점마다 dataLayer.push로 이벤트를 보내달라고 요청해야 합니다. 둘 중에서는 개발팀이 이벤트를 직접 보내는 방식이 더 안정적입니다.
GTM 설치가 끝났다면 그다음은 그 위에 광고 매체의 전환 태그를 정확하게 얹는 단계입니다. 구글 광고 쪽 전환 설정 순서는 아래 글에서 이어서 확인할 수 있습니다.
자주 묻는 질문
GTM 설치하면 기존 GA4 코드는 지워야 하나요?
GTM 안에 GA4 태그를 새로 만들어 이관한다면 지워야 합니다. 둘 다 남겨두면 페이지뷰와 이벤트가 두 번 잡힙니다. 기존 코드 제거와 GTM 게시는 같은 날 반영해야 데이터 공백이나 중복 기간이 생기지 않습니다.
GTM 설치 확인은 어떻게 하나요?
GTM 작업공간의 '미리보기'를 눌러 사이트 주소를 입력했을 때 Tag Assistant에서 'Connected'가 뜨면 코드는 정상 설치된 것입니다. 이후 메인, 상품 상세, 장바구니, 주문 완료 페이지를 PC와 모바일에서 각각 이동하며 태그가 실행되는지 확인하면 됩니다.
GTM 코드를 body 쪽에만 넣어도 되나요?
권장하지 않습니다. 실제로 태그를 실행하는 코드는 head 쪽 <script> 조각이며, head 상단에 있어야 빠르게 로드됩니다. body 쪽 <noscript> 조각은 자바스크립트가 꺼진 환경을 위한 보조 코드라 단독으로는 광고 측정 역할을 하지 못합니다.
스마트스토어에도 GTM을 설치할 수 있나요?
설치할 수 없습니다. 스마트스토어는 외부 스크립트 삽입이 허용되지 않는 구조라 GTM 컨테이너 코드를 넣을 위치가 없습니다. 스마트스토어 성과는 네이버가 제공하는 자체 연동 기능과 통계 데이터로 확인해야 합니다.
GTM 게시했는데 사이트에 반영이 안 되는 이유는?
대부분은 게시한 컨테이너 ID와 사이트에 설치된 컨테이너 ID가 다른 경우입니다. 이전 담당자가 만든 다른 컨테이너가 사이트에 설치돼 있는지 페이지 소스에서 GTM- 문자열로 먼저 확인해 보세요. 브라우저 캐시나 광고 차단 확장 프로그램 때문에 미리보기 연결이 막히는 경우도 있습니다.
마무리
GTM 설치 방법을 정리하면 네 단계입니다.
기존 추적 코드를 목록으로 만들고, head 상단과 body 시작 지점에 코드를 넣고, 사이트 구축 방식에 맞는 위치에 모든 페이지 누락 없이 적용하고, 미리보기로 검증한 뒤 기록을 남겨 게시하는 것입니다.
설치 자체는 몇 분이면 끝납니다. 하지만 기존 코드와의 중복, 스킨 교체로 인한 누락, 코드 제거와 게시 시점의 어긋남은 몇 주 치 광고 데이터를 한꺼번에 무의미하게 만듭니다.
광고 예산을 판단하는 모든 숫자는 결국 이 컨테이너를 거쳐 나옵니다. 처음 설치할 때 점검 순서를 지켜두면, 이후 매체 태그를 추가하거나 측정 방식을 바꿀 때도 같은 기준으로 빠르게 검증할 수 있습니다.
GTM이 아닌 구글 태그(gtag)를 직접 설치하는 방식과 비교해 보고 싶다면 아래 글을 함께 참고하세요.