“GA4는 몇 년째 쓰고 있는데요. 이 이벤트들이 다 언제 찍히는 건지 아는 사람이 없어요.”
처음 GA4를 세팅한 담당자는 이미 회사를 떠났고 남아 있는 문서나 정보는 없습니다. 보고서에는 낯선 이벤트 이름이 줄지어 있습니다. 매출 보고는 해야 하니 purchase 숫자를 가져다 쓰지만 이 숫자가 정확한지는 누구도 장담하지 못합니다. 생각보다 많은 회사가 이런 상태로 GA4를 쓰고 있습니다.
지난 GA4 MCP 연결 전 확인할 4가지 글에서 저희는 AI에 GA4를 연결하기 전에 이벤트 정의서를 갖춰야 한다고 말씀드렸습니다. 그렇다면 정의서 없이 이미 몇 년 치 데이터가 쌓인 곳은 어디서부터 시작해야 할까요? 처음부터 완벽히 다시 설계한다면 가장 좋겠지만 현실적으로 쉽지 않은 경우가 많습니다. 그럴 경우 지금 수집되고 있는 것부터 정의서로 정리하고 하나씩 개선해 나가면 됩니다.
MCP(Model Context Protocol)는 AI가 외부 서비스의 데이터를 정해진 방식으로 주고받게 해 주는 연결 규격입니다. 이 글에서 말하는 GA4 MCP는 구글 애널리틱스 팀이 직접 공개한 오픈소스 MCP 서버입니다(공식 저장소에는 아직 실험적(Experimental) 버전으로 표기돼 있습니다). 연결하면 AI가 GA4 데이터를 직접 조회할 수 있습니다. 개념이 낯설다면 MCP란? Notion MCP로 이해하는 AI 도구 연결 방식을 먼저 읽어 보셔도 좋습니다.
이 글에서는 GA4 MCP를 연결해 수집 중인 이벤트로 정의서 초안을 만들고 구체화하는 과정을 순서대로 따라 해 볼 수 있게 정리했습니다.
목차
- 이벤트 정의서가 없다면 무엇부터 해야 할까?
- GA4 MCP 연결 방법
- 기본: GA4 MCP로 이벤트와 매개변수 정리하기
- 심화: 이벤트가 언제 발생하는지 확인하기
- 초안을 정의서로 완성하기
이벤트 정의서가 없다면 무엇부터 해야 할까?
이벤트 정의서는 우리 서비스에서 수집하는 이벤트와 매개변수를 한곳에 정리한 문서입니다. 어떤 행동을 어떤 이름으로 언제 수집하는지 적어 둔 일종의 사전입니다. 정의서가 있어야 GA4의 숫자를 모두가 같은 기준으로 읽을 수 있습니다.
그런데 정의서 없이 GA4를 쓰는 기업이 생각보다 많습니다. 담당자가 바뀌고 여러 팀이 필요한 이벤트를 그때그때 따로 추가하다 보면 문서로 관리하는 체계가 잡히지 않기 때문입니다. 그러면 어떤 데이터가 어떻게 수집되는지 누구도 정확히 모르고 팀 사이에 공유도 되지 않고 AI 활용도 어려워집니다. GA4 MCP 연결 전 확인할 4가지에서 살펴봤듯 기준이 없으면 AI는 숫자는 맞아도 틀린 결론을 내놓을 수 있기 때문입니다.
정의서는 GA4를 처음 설계할 때 만들면 가장 쉽습니다. 문서부터 만들고 그대로 세팅하면 되기 때문입니다. 처음 설계하는 방법은 이벤트 정의서와 작성 방법에서 다뤘습니다. 문제는 이미 GA4를 한참 쓰고 있는데 정의서가 없고 어떤 데이터가 수집되고 있는지 모르는 경우입니다. 이때는 무엇이 어떻게 쌓이고 있는지부터 거꾸로 파악해야 해서 정의서를 만들기가 까다롭습니다.
GA4 데이터를 빅쿼리로 내보내고 있다면 이 작업은 훨씬 쉽습니다. 빅쿼리에는 이벤트와 함께 보낸 매개변수가 맞춤 측정기준 등록 여부와 상관없이 남아 있어 SQL 쿼리로 수집 현황을 한 번에 뽑을 수 있습니다.
빅쿼리 없이 GA4 화면에서 직접 현황을 파악하려면 꽤 번거롭습니다. 이벤트 보고서에서 목록을 내려받고 맞춤 정의 화면을 열어 등록된 매개변수를 옮겨 적어야 합니다. 이벤트마다 어느 페이지에서 발생하는지 확인하려면 탐색 보고서를 만들어 하나씩 살펴봐야 합니다. 이벤트가 수십 개라면 작업 시간은 끝도 없이 늘어날 수 있습니다.
하지만 GA4 MCP를 연결해 두면 AI에게 질문하는 것만으로 이벤트 목록과 매개변수, 발생 페이지까지 간편하게 정리할 수 있습니다.
GA4 MCP 연결 방법
GA4 MCP는 자기 PC에서 실행하는 로컬 서버이고 조회만 가능한 읽기 전용입니다. AI가 속성 설정을 바꿀 수 없으니 현황 파악용으로 부담 없이 쓸 수 있습니다. (다만 조회한 이벤트 이름과 페이지 경로, 수치는 사용하는 AI 서비스로 전달됩니다. 회사의 데이터 반출 정책을 먼저 확인하고 페이지 경로에 이메일이나 주문번호 같은 개인정보가 섞여 있지 않은지도 살펴보세요.)
그럼 어떻게 설치할까요? 요즘은 이런 도구를 직접 설치하기보다 AI에게 맡기는 경우가 많습니다. 클로드 코드(Claude Code)나 Codex, 제미나이 CLI 같은 AI 도구에 저장소 링크와 함께 이렇게 요청해 보세요. (클로드 코드 같은 터미널형 AI 도구가 처음이라면 AI 채팅 앱, 터미널, IDE 비교 글을 먼저 참고하세요.)
“https://github.com/googleanalytics/google-analytics-mcp 의 README를 보고 analytics-mcp를 설치해서 클로드 코드에 등록해 줘. 내가 직접 해야 하는 단계가 있으면 알려 줘.”
이 요청 하나면 AI가 서버 실행 도구(pipx)와 Google Cloud CLI(gcloud) 설치, API 사용 설정, 서버 등록까지 대부분 터미널에서 처리합니다. 다만 2026년 10월 현재 GA4 MCP는 클릭 한 번으로 연결하는 커넥터가 없습니다. 구글이 Data API용 원격 MCP 엔드포인트도 운영하고 있지만 OAuth 설정이 필요해 바로 연결되는 방식은 아닙니다. 그래서 AI가 대신하기 어려운 두 단계는 사람이 직접 해야 합니다.
직접 해야 하는 일 1. OAuth 클라이언트 만들기
Google Cloud 콘솔의 Google 인증 플랫폼에서 앱 정보를 등록하고 데스크톱 앱 유형의 OAuth 클라이언트를 만들어 JSON 파일을 내려받습니다. 대상은 회사 조직에 속한 프로젝트라면 내부, 그렇지 않다면 외부를 고릅니다. 외부 대상으로 만든 앱은 처음에 테스트 상태라서 로그인할 계정을 테스트 사용자로 추가해야 합니다. JSON 파일은 생성 직후 나오는 창에서만 받을 수 있으니 바로 저장해 두고 그 경로를 AI에게 알려 주세요. 놓쳤다면 클라이언트 상세 화면에서 보안 비밀을 새로 추가하면 됩니다.
직접 해야 하는 일 2. 브라우저에서 로그인하고 동의하기
AI가 로그인 명령을 실행하면 브라우저 창이 열립니다(gcloud 로그인용과 MCP 서버가 쓸 인증 정보 발급용으로 두 번 열릴 수 있습니다). 조회할 GA4 속성에 권한이 있는 Google 계정으로 로그인하고 동의하세요. 외부 테스트 앱이라 Google에서 확인하지 않은 앱이라는 경고가 나와도 직접 만든 클라이언트라면 계속 진행하면 됩니다.
등록이 끝나면 클로드 코드를 다시 시작하고 “내가 접근할 수 있는 GA4 속성 목록을 보여 줘”라고 물어보세요. 속성 이름이 나오면 연결된 것입니다.
잠깐! ‘This app is blocked’나 ‘Access blocked’가 나오면 OAuth 클라이언트 JSON 파일을 사용했는지와 로그인한 계정이 테스트 사용자로 등록돼 있는지 확인하세요. 차단 화면은 미확인 앱 경고와 달리 그대로 진행할 수 없습니다. 외부 테스트 앱은 인증이 7일마다 만료되니 일주일 뒤 인증 오류가 나면 로그인만 다시 하면 됩니다.
MCP 대신 스킬로 연결하는 방법도 있습니다. 오픈소스마케팅에서 제작한 GA4 스킬(ga4-skill)은 GA4 MCP 서버를 거치지 않고 GA4 API를 직접 호출하는 에이전트 스킬입니다.
npx skills add ogaeng/ga4-skill로 설치한 뒤 “GA 연결해줘”라고 하면 로그인부터 속성 선택까지 대화로 안내합니다. gcloud 설치가 필요 없고 OAuth 클라이언트는 조직에서 한 번만 만들어 나눠 쓰면 됩니다. 수집 중인 이벤트로 정의서 초안을 만들어 주는 기능도 들어 있습니다.
기본: GA4 MCP로 이벤트와 매개변수 정리하기
이제 예시 쇼핑몰의 GA4 속성으로 정의서 초안을 만들어 보겠습니다. 생활용품을 파는 쇼핑몰이고 GA4를 쓴 지 3년이 넘었지만 정의서는 없습니다. 아래 프롬프트 하나면 AI가 네 단계를 차례로 진행합니다.
“연결된 GA4 MCP로 이 속성의 이벤트 정의서 초안을 만들어 줘. 아래 순서로 진행하고 단계마다 결과를 보여 줘.
- 최근 90일 동안 수집된 이벤트를 이벤트 수가 많은 순서로 정리
- 자동 수집, 향상된 측정, 권장, 직접 만든 맞춤 이벤트로 분류하고 키 이벤트 여부 표시
- 맞춤 이벤트와 키 이벤트가 주로 발생하는 페이지 확인
- 이벤트마다 그 이벤트를 해석하는 데 필요한 매개변수(권장 이벤트에 정해진 매개변수와 등록된 맞춤 측정기준)에 값이 들어오는지 확인. page_location 같은 공통 매개변수는 수집 여부만 확인하고 이벤트별로는 빼고, 조회할 수 없는 매개변수는 미확인으로 표시
마지막에 이벤트 이름, 분류, 주로 발생하는 페이지, 매개변수, 키 이벤트, 언제 발생하나 열로 표를 만들어 줘. 데이터로 확인할 수 없는 칸은 추측하지 말고 비워 둬.”
결과가 이상한 단계가 있으면 그 단계만 다시 요청하면 됩니다. 예를 들어 “3단계를 다시 해 줘. buy_complete만 페이지별로 보여 줘”처럼 범위를 좁혀 물어보세요.
1. 수집 중인 이벤트 목록 뽑기
AI는 GA4 MCP의 보고서 실행 도구로 이벤트 이름별 보고서를 만들어 돌려줍니다. 예시 쇼핑몰에서는 이벤트 14개가 나왔습니다. 기간을 90일로 넉넉하게 잡은 것은 회원가입처럼 드물게 발생하는 이벤트를 놓치지 않기 위해서입니다. 시즌 행사처럼 주기가 더 긴 이벤트가 있다면 기간을 늘려 조회해 보세요.

2. 직접 만든 이벤트만 골라내기
목록에는 GA4가 알아서 수집하는 이벤트와 누군가 직접 만든 이벤트가 섞여 있습니다. 이벤트 종류의 차이는 구글 애널리틱스 4 이벤트와 매개변수에서 자세히 다뤘습니다. 정의서에서 공들여 정리해야 하는 쪽은 직접 만든 이벤트입니다.
MCP 서버에 분류 도구가 따로 있는 것은 아닙니다. AI가 알고 있는 구글 공식 이벤트 목록과 이름을 대조해 추정하는 것입니다. 키 이벤트 여부는 보고서의 isKeyEvent 측정기준(한국어 화면에서는 ‘주요 이벤트임’)으로 확인하는데 지정한 날부터만 반영되니 최종 확인은 GA4 관리의 주요 이벤트(키 이벤트) 메뉴에서 하세요. 예시 쇼핑몰에서는 14개 이벤트 가운데 직접 만든 맞춤 이벤트가 buy_complete, click_btn_02, kakao_chat, popup_close 네 개였습니다.
벌써 눈에 띄는 것이 있습니다. purchase와 buy_complete가 함께 있고 두 이벤트의 발생 수가 거의 같습니다. 같은 구매를 두 번 수집하고 있을 가능성이 큽니다. click_btn_02는 이름만으로는 어떤 버튼인지 알 수 없습니다.
3. 이벤트가 발생하는 페이지 확인하기
이름만으로 의미를 알기 어려운 맞춤 이벤트는 발생 페이지에서 단서가 생깁니다. 예시 쇼핑몰에서 click_btn_02는 상품 상세 페이지에서 대부분 발생했고 buy_complete는 purchase와 마찬가지로 주문 완료 페이지에서만 발생했습니다. 구매 중복 의심이 한층 짙어집니다.
4. 매개변수 확인하기
GA4 MCP에는 맞춤 정의 목록을 조회하는 도구가 따로 있습니다. 예시 쇼핑몰에는 button_name, product_category 두 개가 등록돼 있었습니다. 이 도구는 관리 화면의 설명란 내용까지는 가져오지 않으니 전임자가 남긴 설명은 관리 화면의 맞춤 정의 메뉴에서 따로 확인하세요.
page_location 같은 공통 매개변수는 수집 여부만 확인하고 이벤트마다 반복해 적지 않아도 됩니다. 이벤트별로는 해석에 필요한 매개변수만 남기세요. purchase의 transaction_id처럼 기본 측정기준이 있는 권장 이벤트 매개변수는 맞춤 정의 없이 조회되니 구글 문서의 목록과 대조해 실제 값이 들어오는지 확인하면 됩니다. 다만 payment_type이나 양식 이벤트의 form_id처럼 기본 측정기준이 없는 매개변수는 맞춤 측정기준으로 등록해야 보입니다.
네 단계가 끝나면 AI가 결과를 모아 아래와 같은 초안을 만듭니다(맞춤 이벤트와 키 이벤트만 발췌).
| 이벤트 이름 | 분류 | 주로 발생하는 페이지 | 매개변수 | 키 이벤트 | 언제 발생하나 |
|---|---|---|---|---|---|
| purchase | 권장 | 주문 완료 | transaction_id, value, currency, product_category | 예 | (빈칸) |
| buy_complete | 맞춤 | 주문 완료 | (조회된 것 없음) | 아니요 | (빈칸) |
| click_btn_02 | 맞춤 | 상품 상세 | button_name | 아니요 | (빈칸) |
| kakao_chat | 맞춤 | 전체 | (조회된 것 없음) | 아니요 | (빈칸) |
| popup_close | 맞춤 | 메인 | (조회된 것 없음) | 아니요 | (빈칸) |
buy_complete의 매개변수가 조회되지 않는 것은 GA4 이벤트 만들기로 만들 때 소스 이벤트의 매개변수 복사를 끈 설정이라고 가정한 예시입니다. 복사가 켜져 있다면 purchase의 transaction_id, value, currency가 함께 조회됩니다.
GA4 화면을 오가며 하던 작업이 몇 분 만에 끝났습니다. 다만 AI가 만든 표는 초안이니 분류와 키 이벤트 여부는 GA4 화면과 한 번 대조해 보세요. 표의 마지막 칸은 아직 비어 있습니다.
심화: 이벤트가 언제 발생하는지 확인하기
GA4 MCP는 GA4에 쌓인 집계 데이터를 조회합니다. 그래서 GA4에 기록되지 않은 정보는 가져올 수 없습니다. 초안의 빈칸을 채우려면 GA4 밖을 봐야 합니다.

언제 발생하는지(트리거 조건)
GA4에는 이벤트가 발생한 페이지와 함께 보낸 매개변수 값은 남지만 어떤 조건에서 이벤트를 보내도록 설정했는지는 남지 않습니다. button_name 값으로 click_btn_02의 버튼 이름은 알 수 있어도 어떤 요소를 눌렀을 때 전송되는지는 알 수 없습니다. 이 조건은 이벤트를 설치한 곳에 있습니다.
등록하지 않은 매개변수
직접 만든 매개변수는 이벤트와 함께 보내더라도 맞춤 측정기준으로 등록하지 않았다면 보고서에서 조회되지 않습니다. 실제로는 매개변수 다섯 개를 보내는데 등록된 것이 두 개라면 AI 눈에는 두 개만 보입니다.
직접 눌러 보며 확인하기
설치 방식과 상관없이 쓸 수 있는 가장 직접적인 방법은 사이트를 직접 눌러 보는 것입니다. Tag Assistant에 사이트 주소를 넣고 연결하면 디버그 모드로 사이트가 열립니다. 이 상태에서 버튼을 누르면 그때 전송된 이벤트와 매개변수가 Tag Assistant와 GA4 관리의 DebugView에 나타나고 등록하지 않은 매개변수도 보입니다(분석 동의를 거부한 상태라면 DebugView에는 보이지 않을 수 있습니다).
설치 방식에 따른 확인 방법
이벤트가 많다면 설치한 곳의 설정을 읽는 편이 빠릅니다. 한 사이트 안에서도 여러 방식이 섞여 있는 경우가 흔하니 이벤트마다 확인해 보세요.
| 설치 방식 | 확인 방법 |
|---|---|
| GTM | 컨테이너 파일을 내보내 AI에게 정리를 맡깁니다(아래 참고) |
| 사이트 코드(gtag.js)에 직접 설치 | 개발 담당자에게 이벤트 이름으로 코드를 검색해 어떤 동작에서 호출되는지 정리해 달라고 요청합니다 |
| 쇼핑몰 플랫폼의 GA4 연동 기능 | 플랫폼의 GA4 연동 설정과 안내 문서에서 어떤 이벤트를 언제 보내는지 확인합니다 |
| GA4 관리의 이벤트 만들기나 이벤트 수정 | GA4 관리의 이벤트 메뉴에 조건이 남아 있습니다. GTM에서 찾을 수 없는데 특정 페이지에서만 발생하는 이벤트라면 여기부터 확인하세요 |
어디에서도 찾을 수 없다면 서버에서 측정 프로토콜로 보내는 이벤트일 수 있으니 개발 담당자에게 확인하세요.
GTM이라면 관리 메뉴의 [컨테이너 내보내기]에서 현재 게시된 버전을 골라 JSON 파일을 받아 AI에게 함께 주고 이렇게 물어보세요.
“이 GTM 컨테이너 파일에서 GA4 이벤트 태그마다 이벤트 이름, 트리거 조건, 보내는 매개변수를 정리해서 아까 만든 정의서 초안의 빈칸을 채워 줘.”

초안을 정의서로 완성하기
빈칸까지 채웠다면 이제 사람이 판단할 차례입니다. 이벤트가 왜 만들어졌고 무엇을 뜻하는지는 데이터 어디에도 없기 때문입니다. 초안을 놓고 네 가지를 확인해 보세요.
같은 행동을 두 번 수집하고 있지 않나요?
purchase와 buy_complete처럼 같은 행동이 다른 이름으로 이중 수집되면 숫자가 부풀거나 보고서마다 다른 숫자가 나옵니다. 하나를 공식 이벤트로 정하고 나머지는 중단할지 결정합니다.
이름만 보고 의미를 알 수 있나요?
click_btn_02 같은 이름은 정의서가 있어도 매번 문서를 찾아봐야 합니다. 당장 이름을 바꾸면 기존 데이터와 끊기니 정의서에 의미를 적어 두고 새로 만드는 이벤트부터 이름 규칙을 지키는 쪽이 현실적입니다.
지금도 쓰는 이벤트인가요?
popup_close처럼 수집은 계속되지만 보고서에서 아무도 보지 않는 이벤트가 있다면 계속 수집할지 따져 봐야 합니다.
키 이벤트 지정이 맞나요?
매출과 직결되는 이벤트가 키 이벤트로 지정돼 있는지, 반대로 중요하지 않은 이벤트가 지정돼 있지는 않은지 확인합니다.

이렇게 완성한 정의서는 사람만 보는 문서로 끝나지 않습니다. 다음에 AI에게 GA4 분석을 맡길 때 이 정의서를 함께 주면 AI가 buy_complete를 구매 건수에 잘못 더하는 일을 줄일 수 있습니다.
마치며
이벤트 정의서가 없다고 처음부터 다시 설계할 필요는 없습니다. GA4 MCP로 수집 중인 이벤트와 매개변수, 발생 페이지를 정리하고 발생 조건은 직접 눌러 보거나 설치한 곳에서 확인합니다. AI가 초안을 쓰면 사람이 각 이벤트의 의미를 확정합니다.
정리하다 보면 중복 수집이나 잘못된 키 이벤트처럼 바로 고쳐야 할 문제가 함께 드러나기 마련입니다. 설치 방식이 여러 갈래로 섞여 있어 이벤트가 언제 발생하는지 추적하기 어렵다면 진단부터 받아 보는 것도 방법입니다. 오픈소스마케팅은 기존 측정 환경을 진단하고 정의서부터 다시 세우는 작업을 함께합니다. GA 컨설팅에서 현재 측정 환경 진단부터 시작해 보세요.
자주 묻는 질문
Q1. GA4 MCP를 연결하면 AI가 GA4 설정을 바꿀 수도 있나요?
아닙니다. 구글이 공개한 GA4 MCP는 조회 도구만 제공하는 읽기 전용 서버입니다. 애널리틱스 권한은 읽기 전용 범위(analytics.readonly)로만 받도록 안내하고 있어 이벤트를 만들거나 설정을 바꿀 수 없습니다.
Q2. GA4 이벤트 매개변수가 실제로 수집되는지는 어디서 확인하나요?
직접 만든 매개변수와 payment_type, form_id처럼 기본 측정기준이 없는 매개변수는 맞춤 측정기준으로 등록해야 GA4 보고서와 Data API에서 조회되고 반영까지 24~48시간이 걸릴 수 있습니다. 해당 이벤트만 걸러 조회했는데도 값이 (not set)이나 빈칸으로만 나오면 전송되지 않았거나 빈 값으로 전송됐을 수 있습니다. 정확한 전송 내용은 Tag Assistant에서 확인하세요. 빅쿼리로 내보내고 있다면 원본 데이터에서도 볼 수 있습니다. 사용자 범위로 등록한 맞춤 측정기준은 조회는 되지만 사용자 단위 값이라 그 이벤트에 실려 온 값인지 구분할 수 없어 이벤트별 확인에는 맞지 않습니다.