GTM (Google Tag Manager) 뜻과 구조
홍승협(준이아빠) / 데이터 분석, AI 실무 교육
GTM(Google Tag Manager)은 사이트에 심는 여러 추적 코드를 한 곳에서 넣고 고치고 빼도록 만든 관리 도구입니다. 컨테이너 코드 한 개만 심어 두면 그 뒤로는 관리 화면에서 태그를 더하거나 실행 조건을 바꿉니다.
🤔 픽셀 하나 넣으려고 매번 개발 일정을 기다릴 때
광고 매체를 하나 더 쓰기로 하면 사이트에 코드 조각을 하나 더 넣어야 합니다. 넣을 코드는 매체가 주지만 어디에 붙일지와 언제 반영될지는 개발 일정에 달려 있습니다. 분석 도구와 광고 매체와 상담 도구를 차례로 붙이고 나면 용도를 알기 어려운 코드가 여러 개 쌓입니다.
여기서 말하는 GTM은 구글 태그 매니저(Google Tag Manager)입니다. 같은 글자를 표준시나 게임 용어로 쓰는 곳도 있지만 이 글에서 다루는 GTM은 추적 코드를 관리하는 도구입니다.
코드가 많아서 생기는 문제가 아니라 코드를 넣고 빼는 창구가 페이지마다 흩어져 있어서 생기는 문제입니다. 그 창구를 하나로 모으는 도구가 GTM입니다.
🔑 GTM(Google Tag Manager)의 정의
GTM(Google Tag Manager)은 사이트에 심는 여러 추적 코드를 한 곳에서 넣고 고치고 빼도록 만든 관리 도구입니다.
이름의 두 토막과 그 조각을 담는 상자 하나에 구조가 그대로 들어 있습니다.
- 태그(Tag): 사이트에서 실행되는 작은 코드 조각. 분석 도구나 광고 매체로 기록을 보냅니다
- 매니저(Manager): 그 조각을 페이지에 붙이지 않고 목록으로 관리한다는 뜻입니다
- 컨테이너(Container): 태그를 담아 두는 상자. 사이트에는 이 상자를 여는 코드 한 개만 심습니다
GTM은 데이터를 저장하지도, 보고서를 그리지도 않습니다. 무엇을 언제 어디로 보낼지 정해 두고 그 시점에 코드를 실행시키는 쪽만 맡습니다.
📦 분류 벨트가 상자를 밀어내듯 실행되는 태그
택배 물류센터에서 상자를 지역별로 나누는 일을 손으로 하면, 지역이 하나 늘 때마다 인원 배치를 다시 짜야 합니다. 그래서 벨트를 한 줄 깔고 그 옆에 밀대를 붙여 둡니다. 벨트는 처음에 한 번 설치하고, 그 뒤로는 어떤 상자를 어느 쪽으로 밀지만 규칙표에서 바꿉니다.
GTM도 같은 구조입니다. 사이트에는 컨테이너 코드 한 개를 심어 두고, 필요한 태그는 관리 화면에서 더하거나 뺍니다. 벨트 위의 밀대가 상자 겉면 라벨을 읽고 움직이듯, GTM은 지금 열린 페이지가 어디이고 방문자가 무엇을 눌렀는지 확인한 뒤 해당 태그를 실행합니다. 규칙표를 고치는 일과 설비를 새로 놓는 일은 드는 시간이 다릅니다.
🧰 GTM이 없을 때 반복되는 순서
GTM을 쓰지 않으면 태그 하나를 넣을 때마다 사이트 코드를 고칩니다. 순서는 대체로 이렇습니다.
- 요청: 넣을 코드와 붙일 위치를 개발 담당자에게 전달합니다
- 작업: 개발 담당자가 그 페이지의 코드를 고칩니다
- 배포: 고친 코드가 실제 사이트에 반영되기를 기다립니다
문제는 이 순서가 태그 개수만큼 반복된다는 점입니다. 캠페인이 끝나 코드를 빼려고 해도 같은 순서를 다시 밟아야 하고, 급한 캠페인일수록 배포를 기다리는 며칠이 손해가 됩니다.
GTM은 이 순서를 처음 한 번으로 줄입니다. 컨테이너 코드를 심는 작업만 개발 담당자가 한 번 하고, 그 뒤의 태그 추가와 조건 변경은 관리 화면에서 처리합니다.
⚙️ 태그, 트리거, 변수 세 가지 구성 요소
GTM에서 하는 일은 세 가지 이름으로 나뉩니다. 무엇을(태그) 언제(트리거) 어떤 값으로(변수) 보낼지를 정하는 일이 GTM 작업의 대부분을 차지합니다.
| 구성 요소 | 정하는 것 | 분류 벨트로 보면 | 실제 예 |
|---|---|---|---|
| 태그(Tag) | 무엇을 실행할지 | 상자를 밀어내는 밀대 | GA4 이벤트 전송, 광고 매체 전환 픽셀 |
| 트리거(Trigger) | 언제 실행할지 | 밀대를 움직이는 인식 조건 | 페이지가 열렸을 때, 버튼을 눌렀을 때 |
| 변수(Variable) | 어떤 값을 실을지 | 상자 겉면 라벨에 적힌 내용 | 페이지 주소, 버튼 글자, 주문 금액 |
세 가지가 어떻게 맞물리는지는 결제 기록을 예로 따라가면 분명해집니다.
- 태그: GA4로
purchase이벤트를 보내는 태그를 만듭니다 - 트리거: 주문 완료 페이지가 열렸을 때만 그 태그가 실행되도록 조건을 겁니다
- 변수: 그 이벤트에 실을 주문 금액과 주문 번호를 지정합니다
태그만 만들고 트리거를 붙이지 않으면 그 태그는 한 번도 실행되지 않습니다. 변수를 빼먹으면 건수는 쌓이는데 금액이 빈 값으로 들어와서 주문 수는 맞고 매출만 0원으로 보입니다.
🔀 GA4와 GTM이 각각 맡는 일
가장 자주 헷갈리는 부분입니다. 둘은 같은 일을 하는 다른 제품이 아닙니다.
GTM은 코드를 내보내는 도구이고, GA4는 그 기록을 받아 쌓고 보여 주는 도구입니다.
GA4는 방문자 행동을 이벤트로 저장하고 보고서를 그리는 쪽입니다. GTM에는 저장 공간도 보고서도 없습니다.
GA4를 GTM 없이 직접 심는 방법도 있습니다. 구글이 안내하는 설치용 코드를 붙이면 되고, 어느 쪽이 나은지는 태그 수에 따라 달라집니다.
| 구분 | GA4 코드를 직접 설치 | GTM으로 설치 |
|---|---|---|
| 처음 설치 | 코드 한 개를 붙이면 끝납니다 | 컨테이너 코드를 붙이고 GA4 태그를 만듭니다 |
| 이벤트 추가 | 페이지 코드를 고치고 배포합니다 | 관리 화면에서 태그와 트리거를 더합니다 |
| 다른 매체 추가 | 매체마다 코드를 또 넣습니다 | 같은 컨테이너 안에 태그로 더합니다 |
| 되돌리기 | 코드를 다시 고쳐 배포합니다 | 이전 버전을 고릅니다 |
| 익히는 부담 | 거의 없습니다 | 태그, 트리거, 변수를 먼저 익혀야 합니다 |
당분간 태그를 늘릴 일이 없으면 직접 설치가 간단하고, 광고 매체를 함께 쓰거나 버튼 클릭을 이벤트로 남길 계획이면 GTM 쪽이 나중에 드는 시간을 줄여 줍니다.
🧾 데이터 영역(dataLayer)이 값을 넘겨 주는 방식
페이지 주소나 버튼 글자처럼 화면에 드러난 값은 GTM이 직접 읽습니다. 그런데 주문 금액이나 회원 등급처럼 화면에 없는 값은 사정이 다릅니다.
데이터 영역(dataLayer)은 사이트가 GTM에 값을 넘겨 주는 통로입니다. 상자를 벨트에 올리기 전에 겉면 라벨에 내용물과 금액을 적어 두듯, 사이트가 페이지를 그릴 때 필요한 값을 데이터 영역에 먼저 적어 둡니다. GTM은 그 값을 변수로 받아 태그에 싣습니다.
데이터 영역에 값을 적는 코드는 개발 담당자가 작성하고, GTM을 쓰는 사람은 그 값을 변수로 받아 쓰는 데까지만 알면 됩니다. 값을 적는 형식과, 화면이 바뀌어도 값이 유지되게 하는 방법은 React SPA에서 GTM 설치하기에 코드와 함께 적어 두었습니다.
👀 미리보기와 버전 관리
GTM에서 태그를 만들거나 고쳐도 사이트에 곧바로 반영되지 않습니다. 게시라는 동작을 해야 그 시점의 설정이 적용됩니다. 번거로워 보이지만 이 단계가 GTM을 쓰는 큰 이유입니다.
- 미리보기: 내 브라우저에서만 바뀐 설정을 적용해 봅니다. 어떤 트리거가 작동했고 어떤 태그가 실행됐는지, 변수에 무슨 값이 들어왔는지를 확인합니다
- 게시: 확인이 끝난 설정을 모든 방문자에게 적용합니다. 무엇을 왜 바꿨는지 적어 두면 나중에 찾기 편합니다
- 버전: 게시할 때마다 그 시점의 설정이 한 판으로 저장되고, 문제가 생기면 이전 판으로 되돌립니다
사이트 코드를 직접 고쳤다면 되돌리는 일에도 개발과 배포 순서가 다시 필요합니다. GTM에서는 이전 버전을 고르는 것으로 끝납니다.
다만 관리 화면의 메뉴 이름과 버튼 위치는 시점에 따라 달라지므로, 실제 클릭 경로는 지금 열려 있는 화면에서 확인하는 편이 맞습니다.
⚠️ 자주 하는 실수
- 미리보기를 건너뛰고 게시하기: 트리거 조건을 잘못 적어도 게시 전에는 드러나지 않습니다. 게시한 뒤부터 데이터가 어긋나고, 그 기간의 기록은 뒤늦게 되살릴 수 없습니다
- 같은 이벤트를 양쪽에서 보내기: GA4 코드를 직접 심어 둔 상태에서 GTM으로 같은 이벤트를 또 만들면 전환이 두 번 집계됩니다. 전환 수가 부풀려지면 그 숫자로 잡은 KPI와 광고 성과 판단이 함께 어긋납니다
- 트리거 조건을 너무 넓게 걸기: 모든 페이지, 모든 클릭처럼 넓은 조건을 걸면 엉뚱한 화면에서도 태그가 실행됩니다. 조건은 좁게 시작하는 편이 안전합니다
태그가 실행되지 않거나 GA4에 값이 들어오지 않을 때 확인할 순서는 GTM 디버깅 실전 가이드에 증상별로 적어 두었습니다.
❓ 자주 묻는 질문
GA4만 쓰면 안 되나요?
써도 됩니다. 기본 방문 기록만 필요하면 GA4 설치 코드를 직접 붙이는 것으로 충분합니다. 다만 광고 픽셀을 함께 넣거나 버튼 클릭을 이벤트로 남기기 시작하면 코드를 고칠 일이 늘어나고, GTM은 그 일을 관리 화면으로 옮겨 줍니다.
GTM을 쓰면 사이트가 느려지나요?
태그가 많아질수록 브라우저가 내려받고 실행할 코드가 늘어나는 것은 GTM을 쓰든 직접 심든 마찬가지입니다. GTM은 실행 시점을 트리거로 나누므로 필요 없는 페이지에서 실행되지 않게 막기가 오히려 쉬운 편입니다. 대신 쓰지 않는 태그를 쌓아 두면 그만큼 부담이 늘어납니다.
개발자 없이도 쓸 수 있나요?
컨테이너 코드를 처음 심는 작업과 데이터 영역에 값을 적어 넣는 작업은 코드를 고쳐야 해서 개발 담당자가 필요합니다. 그 두 가지가 끝난 뒤의 태그 추가와 조건 변경과 삭제는 관리 화면에서 처리합니다. GTM은 개발 담당자를 부르는 횟수를 줄이는 도구입니다.
태그를 몇 개까지 넣어도 되나요?
개수보다 각 태그의 용도가 적혀 있는지가 중요합니다. 담당자가 바뀌면 이름만 보고는 용도를 알기 어려운 태그가 남고, 지워도 되는지 판단하지 못해 그대로 쌓입니다. 태그 이름에 어떤 도구의 어떤 이벤트인지 적어 두는 규칙이 있으면 정리가 쉬워집니다.
📋 3줄 요약
-
GTM(Google Tag Manager)은 사이트에 심는 여러 추적 코드를 한 곳에서 넣고 고치고 빼도록 만든 관리 도구입니다.
-
GTM은 무엇을 보낼지 정하는 태그와 언제 보낼지 정하는 트리거, 어떤 값을 실을지 정하는 변수 세 가지가 맞물려 움직입니다.
-
GTM은 코드를 내보내는 도구이고 GA4는 그 기록을 받아 쌓고 보여 주는 도구라서 둘은 대체 관계가 아닙니다.
이 글이 도움이 되셨다면 공유해 주세요
메신저로 바로 보내거나 링크를 복사할 수 있습니다.
장바구니 담기 버튼을 눌렀을 때만 GA4로 이벤트를 보내려면 GTM에서 무엇을 만들어야 할까요?
이어서 배우면 좋은 개념
GA4 (Google Analytics 4) 뜻과 데이터 구조
GA4(Google Analytics 4)는 웹사이트와 앱에서 일어나는 사용자 행동을 이벤트 단위로 모아 보여 주는 구글의 무료 분석 도구입니다. 페이지를 연 것부터 결제를 마친 것까지 모든 행동이 같은 모양의 기록 한 건으로 남고, 그 기록을 묶어 세션과 사용자 수가 만들어집니다.
전환 (Conversion) 뜻과 전환 이벤트 설정 기준
마케팅에서 전환(Conversion)은 사용자가 광고주나 운영자가 미리 정해 둔 행동을 끝내는 것입니다. 무엇을 전환으로 볼지는 정해져 있지 않고 캠페인을 맡은 담당자가 직접 정하며, 그 정의에 따라 보고서의 숫자와 광고 알고리즘이 찾는 사람이 달라집니다.
KPI (핵심성과지표) 뜻과 설정 방법
KPI(Key Performance Indicator)는 목표에 얼마나 가까워졌는지를 하나의 숫자로 재는 핵심성과지표입니다. 팀이 보는 수많은 숫자 가운데 판단을 바꾸는 것만 골라 목표값과 기간을 붙인 것입니다.
SQL 기초 문법과 마케터가 쓰는 쿼리 예시
SQL은 표 형태로 쌓인 데이터에 어떤 줄을 어떻게 묶어서 보여 달라고 요청하는 말입니다. 프로그래밍 언어라기보다 빈칸을 채워 건네는 요청 문장에 가까워서, 문장 틀 여섯 조각만 익히면 마케터가 자주 묻는 것은 대부분 직접 뽑을 수 있습니다.
관련 인사이트
- 마케터를 위한 통계 기초: 평균, 중앙값, 표준편차를 광고 데이터로광고 소재 두 개의 14일치 전환율로 통계 개념을 차례로 확인합니다. 평균이 같은 두 소재가 중앙값과 표준편차에서 달라지는 과정을 계산으로 보여 주고, 흩어짐이 클 때 무엇을 해야 하는지와 차이를 언제 믿어도 되는지까지 정리했습니다.
- 마케팅 전략 프레임워크 총정리: SWOT, STP, 4P를 사례 하나로 잇기마케팅 전략 프레임워크는 각각 따로 쓰는 도구가 아니라 앞의 결과가 뒤의 입력이 되는 사슬입니다. 가상의 소상공인 예약 서비스 하나를 SWOT에서 STP, 4P, 포지셔닝 문장까지 연속으로 통과시키며 각 단계에서 무엇이 정해지고 무엇이 다음으로 넘어가는지 정리했습니다.
- 마케팅 KPI 설정 총정리: 채널별 예시 30개와 목표값 정하는 법마케팅 KPI는 목표에 얼마나 가까워졌는지를 하나의 숫자로 재는 지표입니다. 퍼널 단계와 채널별로 무엇을 KPI로 잡는지 예시 30개로 정리하고, 목표값을 정하는 세 가지 방법과 허영 지표를 거르는 기준, 숫자가 어긋났을 때 점검하는 순서를 담았습니다.
- 비개발자를 위한 네이버 데이터랩 API 가이드: 검색어 트렌드와 쇼핑인사이트네이버 데이터랩 API는 네이버에서 어떤 검색어가 언제 얼마나 검색됐는지를 비율로 돌려주는 오픈 API입니다. 광고 계정이 없어도 쓸 수 있고 발급도 5분이면 끝나는데, 실제 검색 횟수 대신 상대 비율만 준다는 점을 모르면 숫자를 잘못 읽게 됩니다. 통합 검색어 트렌드와 쇼핑인사이트 두 API의 요청 방법, 비율을 실제 검색량으로 바꾸는 방법, 자주 걸리는 오류를 정리했습니다.
- ChatGPT Data agent 정리: 회사 데이터를 붙이기 전에 정할 것ChatGPT Data agent는 회사가 쓰는 데이터 웨어하우스에 직접 연결해 질문에 답하고 대시보드까지 만드는 ChatGPT Work의 기능입니다. 같은 날 공개된 금융 서비스와 음성 모델 발표까지 함께 놓고, 연결보다 먼저 정해야 하는 것을 정리했습니다.
- 클로드 커머스 에이전트 정리: 쇼핑 에이전트와 판매자 에이전트가 하는 일과 GA4 측정클로드 커머스 에이전트(Claude Commerce Agents)는 앤트로픽이 2026년 9월 2일 공개한, 쇼핑 에이전트와 판매자 에이전트를 만드는 공개 청사진입니다. 두 에이전트가 무엇을 하고 무엇을 하지 않는지, 결제를 뺀 설계가 챗GPT와 구글의 접근과 어떻게 다른지, 장바구니 35%와 구매 완료 60%라는 수치를 어떻게 읽을지, 에이전트가 만든 방문과 주문이 GA4에서 어디로 잡히는지 정리했습니다.
