GA4 리포트와 UTM: 퍼포먼스 지표 제대로 이해하기
UTM은 붙였는데 GA4 표가 안 읽히는 사람을 위해 쓴 글이다. UTM 5개가 어떤 열이 되는지, 소스 열은 왜 세 가지인지, "수동" 열과 구글 광고 자동 태깅이 부딪히면 누가 이기는지. 어떤 차원과 측정항목을 같이 놓아야 합계가 맞는지까지, 가상의 사이트 하나(사람 8명, 방문 11번)로 끝까지 따라가며 풀었다.
처음엔 GA4가 이상하게 세는 줄 알았는데, 알고 보니 GA4는 정직하게 세고 있었고 표를 잘못 짜고 있던 건 나였다. UTM은 광고 링크마다 꼬박꼬박 붙였는데 막상 GA4를 열면 표가 안 읽힌다는 얘기를 수강생들한테 정말 많이 듣는다. 소스/매체 열은 세 종류나 있고, 사용자 수를 더하면 실제보다 많고, 주요 이벤트는 세션의 서너 배가 나온다는 거다...
이 글은 그 막힘을 네 단계로 푼다.
- UTM이 GA4에서 어떤 열로 보이는지
- 왜 같은 UTM인데 소스 열이 세 가지인지
- "수동"이 붙은 열은 뭐고, 구글 광고의 자동 태그와 부딪히면 누가 이기는지
- 어떤 차원과 측정항목을 같이 놓아야 합계가 맞는지
앞의 세 단계는 일부러 숫자 없이 "나누는 기준"만 다룬다. 숫자는 마지막 단계에서 붙인다. 예시는 전부 가상의 사이트 하나로 통일했다. 사람 A부터 H까지 8명, 방문 11번.
UTM 5개는 GA4 표에서 차원 5개가 된다
UTM은 링크 뒤에 붙이는 꼬리표 다섯 개다. 어디서 왔는지(utm_source), 어떤 성격의 경로인지(utm_medium), 무슨 캠페인인지(utm_campaign), 어떤 소재인지(utm_content), 어떤 검색어를 샀는지(utm_term). 이 다섯 개가 GA4에 들어가면 각각 표의 열 하나가 된다.
| UTM 꼬리표 | 뜻 | GA4 열 이름 | 값 예시 |
|---|---|---|---|
| utm_source | 어디서 왔나 | 소스 | google, instagram, naver |
| utm_medium | 어떤 성격의 경로인가 | 매체 | cpc, social, organic |
| utm_campaign | 무슨 캠페인인가 | 캠페인 | 2026_10_autumn_sale |
| utm_content | 어떤 소재(배너·문구)인가 | 수동 광고 콘텐츠 | video_a, banner_blue |
| utm_term | 어떤 검색어를 샀나 | 수동 검색어 | ga4_lecture |
뒤의 두 개에만 "수동"이 붙어 있는 게 눈에 걸릴 거다. 이유는 세 번째 단계에서 풀리니까, 지금은 짝만 외워 두면 된다.
여기서 용어 하나를 정하고 간다. GA4 표에서 왼쪽에 오는 열, 그러니까 소스·매체·캠페인처럼 "무엇으로 나눌까"를 정하는 기준을 차원이라고 부른다. 오른쪽에 오는 숫자, 사용자·세션·조회수처럼 "무엇을 셀까"에 해당하는 건 측정항목이라고 부른다. 차원은 나누는 기준. 측정항목은 세는 것. 이 글은 끝까지 이 두 단어로만 이야기한다.
그럼 이 열들은 어디서 보나. 보고서 메뉴의 획득 안에 표가 두 개 있다. "트래픽 획득"은 방문(세션)을 기준으로 센 표. "사용자 획득"은 사람이 처음 들어온 경로를 기준으로 센 표다. 둘의 차이가 바로 다음 단계 내용이다. 지금은 "표가 두 개 있고 세는 기준이 다르다"까지만 알면 충분. 이 두 표에 없는 조합을 보고 싶을 때도 있다. 그땐 탐색 메뉴의 자유 형식에서 차원과 측정항목을 직접 골라 표를 짠다. 이 글 마지막 단계의 표들은 전부 거기서 만든 모양이다.
표를 보기 전에 이름 짓기부터 잡아야 하는 이유가 있다. GA4에서 Google과 google은 다른 소스로 잡힌다고 보고 쓰는 게 안전하다. 그래서 전부 소문자로, 띄어쓰기 대신 언더스코어로 쓴다. 그리고 한 번 정한 이름은 매체·캠페인·콘텐츠 전부에서 끝까지 똑같이 쓴다. "instagram / social"로 쓰다가 다음 달에 "Instagram / sns"로 바꿨다고 치자. GA4 표에는 그냥 다른 줄 두 개가 생길 뿐이다. GA4가 알아서 합쳐 주지 않는다... UTM은 붙이는 것보다 똑같이 붙이는 게 어렵다. 진짜로.
같은 UTM인데 소스 열이 세 개인 이유, GA4는 세 층으로 센다
차원 목록을 열어 보면 "첫 사용자 소스", "세션 소스", 그리고 아무것도 안 붙은 "소스"가 따로 있다. 같은 utm_source 하나에서 나온 값인데 열이 셋이다. 셋이나. 여기서 다들 한 번 멈춘다. GA4가 괜히 세 개를 만든 건 아니고, GA4는 세상을 세 층으로 센다. 한 사람이 우리 사이트에 여러 번 방문하고, 한 번 방문할 때마다 여러 행동을 한다. GA4 말로 사람은 "사용자", 방문은 "세션", 행동은 "이벤트"다. 행동 중에서 구매나 가입처럼 전환으로 세겠다고 별표를 켜 둔 이벤트가 있다. 이건 "주요 이벤트"라고 부른다. 사람 한 명 안에 방문이 여러 개 들어 있고, 방문 하나 안에 행동이 여러 개 들어 있는 구조다.
| 층 | 크기 | GA4 말 | 소스 차원의 이름 |
|---|---|---|---|
| 사람 | 가장 큰 단위 | 사용자 | 첫 사용자 소스 |
| 방문 | 사람 한 명 안에 여러 개 | 세션 | 세션 소스 |
| 행동 | 방문 한 번 안에 여러 개 | 이벤트, 조회수, 주요 이벤트 | 소스 (앞에 아무것도 없음) |
소스 열이 세 개인 건 이 세 층마다 "어디서 왔나"를 따로 적어 두기 때문이다. "첫 사용자 소스"는 그 사람을 처음 데려온 경로다. 구글 도움말 표현을 빌리면, 사용자 범위 차원은 신규 사용자가 어디서 왔는지 보여 주고 그 값은 사용자가 다시 돌아와도 그대로 남는다. A라는 사람이 처음에 구글 광고로 들어왔다면, 다음 주에 즐겨찾기로 다시 들어와도 A의 첫 사용자 소스는 계속 google / cpc다. 재방문해도 안 바뀐다!
"세션 소스"는 이번 방문을 연 경로다. 같은 도움말에는 세션 범위 차원은 사용자가 돌아올 때마다 새 값을 받는다고 되어 있다. 그래서 A의 두 번째 방문은 세션 소스가 (direct) / (none)이 된다. 사람은 하나인데 방문마다 꼬리표가 새로 붙는 셈. 첫 사용자 소스는 "누가 데려왔나"의 답이다. 세션 소스는 "이번엔 누가 데려왔나"의 답이고.
앞에 아무것도 안 붙은 "소스"는 행동 층에 붙는다. 이건 앞의 둘과 성격이 좀 다르다. 모든 행동에 붙는 게 아니라, 별표를 켜 둔 주요 이벤트에만 값이 붙는다. 나머지 행동은 (not set)으로 나온다. 그리고 그 값을 어느 경로에 줄지는 기여 모델이 정한다. 기여 모델은 구매 한 건의 공을 그 사람이 거쳐 온 경로들에 어떻게 나눠 줄지 정하는 규칙이다. 이 글의 가상 사이트에서 C는 인스타그램으로 처음 왔다가 네이버로 다시 와서 샀다. 기본값은 데이터 기반 모델이다. 여기서는 그 구매 1건이 instagram 0.4, naver 0.6처럼 소수점으로 나뉠 수 있다. 비율은 모델이 정하고, 모델을 바꾸면 값도 바뀐다. 들쭉날쭉이다. 그래서 이 글에서 접두어 없는 소스는 "있다는 것만 알고 안 쓴다"로 둔다. 퍼포먼스 표를 짤 때는 "첫 사용자" 가족과 "세션" 가족, 이 둘이면 충분하다.
여튼 UTM은 하나다. GA4가 그 값을 사람 층, 방문 층, 행동 층에 각각 적어 두니까 열이 셋인 것. 어느 열을 고르느냐는 "내가 지금 사람을 묻는가, 방문을 묻는가"를 정하는 일이다. 그리고 이 선택이 마지막 단계에서 숫자가 맞고 틀리고를 가른다. 여기까지 일부러 숫자를 안 붙였다. 나누는 기준부터 몸에 붙어야, 세는 것을 올렸을 때 안 헷갈린다.
"세션 수동 소스/매체"는 UTM만 담는 열이다
차원 목록을 더 내려 보면 "수동"이 붙은 짝이 또 있다. "세션 수동 소스", "세션 수동 매체", "세션 수동 캠페인 이름" 같은 것들. 첫 사용자 가족에도 "첫 사용자 수동 소스"가 있다. 앞 단계의 세 가족마다 수동 짝이 하나씩 있는 셈이다. 이 "수동"은 내가 손으로 붙인 UTM 값만 담는 열이라는 뜻이다. GA4 데이터 API 문서를 보면 세션 수동 소스는 "utm_source URL 파라미터로 채워진다"라고 적혀 있다. 수동이 안 붙은 세션 캠페인은 "Google Ads 캠페인, 수동 캠페인, 그 밖의 캠페인을 포함한다"라고 적혀 있다. 그러니까 수동이 없는 쪽은 UTM에 구글 광고의 자동 태그, 연동한 광고 계정의 데이터까지 한데 합친 통합판이고, 수동판은 내가 링크에 써 넣은 UTM 글자 그대로다.
첫 단계에서 광고 콘텐츠와 검색어에만 "수동"이 붙어 있던 이유가 여기서 풀린다. 소스·매체·캠페인은 통합판과 수동판이 둘 다 있다. 그런데 utm_content와 utm_term은 통합판 없이 수동판으로만 들어온다. 구글 광고의 키워드는 아예 다른 "Google Ads 키워드 텍스트" 열로 따로 간다. 내가 utm_term에 쓴 값은 수동 검색어 열에만 담긴다.
구글 광고 자동 태깅(gclid)과 UTM이 부딪히면 GA4는 자동 태깅을 고른다
문제는 둘이 한 클릭에 같이 들어왔을 때다. 구글 광고는 자동 태깅을 켜면 링크 뒤에 값을 하나 붙여서 내보낸다. gclid라는 긴 암호 같은 값. 거기에 내가 UTM까지 붙여 놓으면 GA4는 어느 쪽을 믿을까. 구글 도움말 원문에는 "수동 태깅과 자동 태깅을 함께 쓰면 소스, 매체, 그 밖의 트래픽 분류 차원은 자동 태깅 값을 쓴다. utm_content와 utm_term의 수동 값은 수동 광고 콘텐츠와 수동 검색어 차원에 쓰인다."라고 적혀 있다. 구글 광고 도움말은 더 직접적이다. GA4에는 덮어쓰기 옵션이 없어서 자동 태깅이 수동 태깅보다 우선한다고 적어 놨다. 옛날 유니버설 애널리틱스에는 "수동 태깅이 자동 태깅을 덮어쓰게 허용"이라는 체크박스가 있었다. GA4에는 그게 없다.
광고 계정을 GA4에 연결해 뒀다면, 내가 utm_campaign에 "2026_10_autumn_sale"이라고 정성껏 써도 통합판 캠페인 열에는 구글 광고 계정에 적힌 캠페인 이름이 들어간다. 메타·네이버·카카오는 내 이름 체계로 찍히는데 구글만 광고 계정 이름으로 찍히니까, 한 표에서 네 플랫폼을 나란히 놓고 비교하는 게 안 된다. 구글만 따로 논다. 소재 비교는 더하다. 통합판에는 광고 콘텐츠 열 자체가 없다. 아예 없다. utm_content로 소재 이름을 넣었다면 어차피 수동 열에서만 볼 수 있다.
소재와 캠페인을 플랫폼 넘나들며 비교하는 게 일이라면, 기본 화면은 "세션 수동 소스/매체 + 세션 수동 캠페인 이름 + 세션 수동 광고 콘텐츠 + 세션 수동 검색어"로 잡는다. 수동 가족은 UTM 한 가족이다. 메타든 네이버든 카카오든 구글이든, 내가 정한 이름 체계 하나로 한 표에 들어온다. 대신 구글 광고의 최종 URL 접미사에도 UTM 5개를 빠짐없이 넣어야 한다. 자동 태깅만 믿고 UTM을 빼면, 그 클릭은 수동 열에서 빠지거나 (not set)으로 몰린다고 보는 게 안전하다. 통합판은 버리는 게 아니다. 월 1회 자연검색·추천·직접 유입을 점검할 때 쓴다. UTM이 안 붙는 유입은 통합판에만 제대로 잡히니까.
차원과 측정항목을 붙이면 합계가 맞는 조합과 틀리는 조합이 갈린다
두 번째 단계에서 미뤄 둔 측정항목을 이제 붙인다. 정답지부터. 가상의 사이트에서 일주일 동안 일어난 일을 전부 적은 원본 기록이다. 이게 실제로 일어난 일이다. 아래 모든 표는 이 기록을 다른 기준으로 나눠 본 것뿐이고.
| 사람 | 처음 들어온 경로 | 방문 | 이 방문의 소스 / 매체 | 페이지 조회 | 구매 | 이벤트 수 |
|---|---|---|---|---|---|---|
| A | google / cpc | 1번째 | google / cpc | 3 | 0 | 5 |
| A | google / cpc | 2번째 | (direct) / (none) | 2 | 1 | 4 |
| B | instagram / social | 1번째 | instagram / social | 2 | 0 | 4 |
| C | instagram / social | 1번째 | instagram / social | 1 | 0 | 3 |
| C | instagram / social | 2번째 | naver / organic | 4 | 1 | 6 |
| D | naver / organic | 1번째 | naver / organic | 2 | 0 | 4 |
| E | google / cpc | 1번째 | google / cpc | 1 | 0 | 3 |
| F | youtube / video | 1번째 | youtube / video | 2 | 0 | 4 |
| F | youtube / video | 2번째 | youtube / video | 3 | 0 | 4 |
| G | naver / organic | 1번째 | naver / organic | 3 | 1 | 6 |
| H | (direct) / (none) | 1번째 | (direct) / (none) | 1 | 0 | 3 |
합계는 사람 8명, 방문 11번, 페이지 조회 24, 구매 3, 이벤트 46. 이벤트 수는 방문 시작 1개와 첫 방문 1개(첫 방문에만)를 센 것. 거기에 페이지 조회와 구매를 더했다. 아래 모든 표의 합계는 이 다섯 숫자와 같아야 한다. 다르면 그 표가 틀린 거다.
규칙은 한 줄이다. 차원(바구니)이 측정항목(구슬)보다 크거나 같으면 구슬이 한 바구니에만 들어간다. 사람 ≥ 방문 ≥ 행동. 바구니는 나누는 기준인 차원이고, 구슬은 세는 것인 측정항목이다. 사람 바구니로 나누면 방문도 행동도 각자 자기 사람의 바구니 한 곳에만 들어간다. 방문 바구니로 나누면 행동은 자기 방문 한 곳에만 들어간다. 그런데 사람은 방문보다 크니까 바구니 여러 개에 걸친다. 틀리는 조합은 결국 이거 하나에서 나온다.
맞는 표: 첫 사용자 소스/매체에는 사용자·세션·이벤트가 전부 붙는다
| 첫 사용자 소스 / 매체 | 총 사용자 | 신규 사용자 | 세션수 | 이벤트 수 | 주요 이벤트: purchase |
|---|---|---|---|---|---|
| google / cpc | 2 | 2 | 3 | 12 | 1 |
| instagram / social | 2 | 2 | 3 | 13 | 1 |
| naver / organic | 2 | 2 | 2 | 10 | 1 |
| youtube / video | 1 | 1 | 2 | 8 | 0 |
| (direct) / (none) | 1 | 1 | 1 | 3 | 0 |
| 합계 | 8 | 8 | 11 | 46 | 3 |
사람 기준이라 가장 큰 바구니다. A의 두 번째 방문(direct)과 그때 한 구매도 여기선 google / cpc 줄에 들어간다. A를 처음 데려온 경로니까. C가 naver로 재방문한 것이 instagram 줄에 있는 것도 같은 이유다. 뜻은 "처음 데려온 경로별로 그 뒤에 방문과 행동이 얼마나 쌓였나"이다. 보고서의 "사용자 획득"이 바로 이 모양. 여기서 사용자 열을 빼고 세션수와 이벤트 수만 남겨 봐도 된다. 합계는 11과 46으로 그대로 맞는다. 딱 맞는다. 방문과 행동은 사람보다 작으니까, 사람 바구니에 한 줄씩만 들어가서 그렇다.
맞는 표: 세션 소스/매체에는 세션·조회수·이벤트를 붙인다
| 세션 소스 / 매체 | 세션수 | 조회수 | 이벤트 수 |
|---|---|---|---|
| google / cpc | 2 | 4 | 8 |
| instagram / social | 2 | 3 | 7 |
| naver / organic | 3 | 9 | 16 |
| youtube / video | 2 | 5 | 8 |
| (direct) / (none) | 2 | 3 | 7 |
| 합계 | 11 | 24 | 46 |
이번엔 방문 기준이다. 방문과 행동은 자기 방문의 소스 줄에 한 번만 들어간다. 뜻이 "이번 방문을 만든 경로"로 바뀌었다. 그래서 C의 두 번째 방문은 naver 줄로, A의 두 번째 방문은 (direct) 줄로 간다. 앞 표에서 2였던 naver의 세션수가 여기서 3이 된다. 숫자가 겹쳐서 늘어난 게 아니라, 묻는 질문이 달라져서 바뀐 거다. 세 번째 단계의 "세션 수동 소스/매체"도 마찬가지. UTM 값만 쓴다는 점만 다르고, 표의 모양과 규칙은 이것과 똑같다.
틀리는 표: 세션 소스/매체에 총 사용자를 붙이면 합계가 10이 된다
| 세션 소스 / 매체 | 총 사용자 | 세션수 | 이벤트 수 |
|---|---|---|---|
| google / cpc | 2 (A, E) | 2 | 8 |
| instagram / social | 2 (B, C) | 2 | 7 |
| naver / organic | 3 (C, D, G) | 3 | 16 |
| youtube / video | 1 (F) | 2 | 8 |
| (direct) / (none) | 2 (A, H) | 2 | 7 |
| 합계 | 10 ← 실제 8명 | 11 | 46 |
사람이라는 큰 것을 방문이라는 작은 바구니로 나눴다. A는 google 줄과 (direct) 줄에, C는 instagram 줄과 naver 줄에 각각 1명으로 들어가서 두 번 세어졌다. 두 번 센 거다. 줄 하나하나는 "그 소스로 방문한 사람 수"라서 틀린 말이 아니다. 그런데 더하면 실제 인원보다 많아진다. 보고서의 "트래픽 획득"에 있는 사용자 열이 정확히 이 모양이다. 그 표에서 사용자 열을 더하면 실제 인원과 같거나 크다. 작아질 일은 없다. 여러 경로를 거친 사람이 많을수록 더 커지는 이유가 이거다. 세션수와 이벤트 수는 같은 표에서도 합계 11과 46으로 멀쩡하다. 표 전체가 틀린 게 아니라, 사용자 열 하나가 틀린 것이다.
틀리는 표: 주요 이벤트(전체)는 전환이 아니라 방문을 세고 있다
| 세션 소스 / 매체 | 세션수 | 주요 이벤트 (전체) | 주요 이벤트: purchase |
|---|---|---|---|
| google / cpc | 2 | 8 | 0 |
| instagram / social | 2 | 7 | 0 |
| naver / organic | 3 | 16 | 2 |
| youtube / video | 2 | 8 | 0 |
| (direct) / (none) | 2 | 7 | 1 |
| 합계 | 11 | 46 ← 구매는 3 | 3 |
이건 바구니 문제가 아니라 "별표를 뭐에 켰나"의 문제다. GA4에서 주요 이벤트는 내가 별표를 켠 이벤트를 전부 더한 숫자다. 그런데 자동으로 생기는 방문 시작·첫 방문·페이지 조회에까지 별표가 켜져 있으면, 구매까지 합쳐서 방문 한 번마다 세 개에서 여섯 개씩 쌓인다. 그래서 "주요 이벤트(전체)" 열은 이벤트 수와 같은 46이 된다. 세션 11의 네 배쯤! 이벤트가 겹쳐서 그런 게 아니라, 전환이 아닌 이벤트까지 세고 있어서 그렇다. 오른쪽에 purchase 하나만 고른 열은 합계 3으로 원본과 맞는다.
고치는 길은 두 가지다. 첫 번째는 표준 보고서의 주요 이벤트 드롭다운에서 구매나 가입 같은 이벤트 하나만 고르는 것. 위 표의 오른쪽 열이 그것이다. 두 번째는 관리 메뉴의 데이터 표시 안에 있는 이벤트에서 주요 이벤트 탭을 열고, 주요 이벤트 하나하나의 집계 방법을 "세션당 1회"로 바꾸는 것. 하지만 이 방법이 막아 주는 건 하나뿐이다. 한 방문에서 페이지 조회가 다섯 번 일어난 걸 다섯으로 쌓는 것. 별표가 세 이벤트에 켜져 있으면 여전히 방문마다 두세 개가 쌓이고, 구매가 있는 방문은 거기에 하나가 더 붙어서 서너 개가 된다. 바꾼 집계 방법은 앞으로 쌓이는 데이터에만 적용되고, 지난 숫자는 그대로다. 이것도 알아 둬야 한다. 근본은 전환이 아닌 이벤트의 별표를 끄는 거다. 그리고 탐색에서 "이벤트 이름" 필터로 purchase만 남기는 방식은 쓰지 않는다. 그러면 사용자와 세션도 구매가 있던 사람과 방문만 남는다. 전체 유입 대비 비교가 안 된다...
앞에 아무것도 안 붙은 "소스/매체"에 세션수를 붙인 표도 모양만 말해 둔다. 주요 이벤트에만 소스가 붙고, 나머지 행동은 (not set) 줄로 간다. 그래서 세션 합계가 11보다 부푼다. 구매 열은 기여 모델이 나눈 소수점으로 나온다. 두 번째 단계에서 "안 쓴다"로 정리한 그 차원이다. 값은 모델마다 달라지니 표로 외울 것도 없다.
마무리 레시피, 표 두 개와 세 질문
위 표들을 보고 나면, 퍼포먼스 보고에 필요한 표는 결국 두 장으로 정리된다. 하나는 사람 표, 하나는 방문 표.
| 획득 표 (누가 새로 왔나) | 세션 성과 표 (어느 광고가 방문을 만들었나) | |
|---|---|---|
| 나누는 기준(차원) | 첫 사용자 소스, 첫 사용자 매체, 첫 사용자 캠페인, 첫 사용자 수동 광고 콘텐츠, 첫 사용자 수동 검색어 | 세션 수동 소스, 세션 수동 매체, 세션 수동 캠페인 이름, 세션 수동 광고 콘텐츠, 세션 수동 검색어 |
| 세는 것(측정항목) | 총 사용자, 신규 사용자, 활성 사용자 | 세션수, 참여 세션수, 조회수, 주요 이벤트(이벤트 1개 지정) |
| 넣지 않는 것 | 없음 (세션수를 붙여도 합계는 맞지만, 이 표가 묻는 건 사람) | 총 사용자, 활성 사용자 |
측정항목 세 개만 짚고 간다. 신규 사용자는 우리 사이트에 생애 처음 들어온 사람 가운데 그 첫 방문이 이 기간에 있었던 사람 수다. 활성 사용자는 그 기간에 사이트와 실제로 상호작용한 사람 수. 참여 세션수는 10초 넘게 머물렀거나(기본값이고 관리에서 바꿀 수 있다) 두 페이지 이상 봤거나 주요 이벤트가 있었던 방문 수다. 셋 다 GA4 도움말의 정의를 줄인 것이다.
획득 표가 첫 사용자 가족인 건 "새 손님을 누가 데려왔나"가 사람 질문이라서다. 세션 성과 표가 세션 수동 가족인 건 세 번째 단계에서 말한 그 이유. 플랫폼을 넘나들며 같은 이름 체계로 비교해야 해서다. 두 표 어디에도 세션 차원에 사용자 숫자를 올린 칸은 없다. 획득 표의 소스·매체·캠페인은 통합판이다. 구글 광고를 연결해 뒀으면 캠페인 칸에 광고 계정 이름이 찍힌다. 그게 거슬리면 여기도 수동 짝으로 바꾸면 된다.
그리고 표를 만들기 전에 딱 세 가지만 묻는다.
- 알고 싶은 게 사람인가, 방문인가, 행동인가. "어느 광고가 새 손님을 데려왔나"는 사람이다. "어느 광고가 방문을 많이 만들었나"는 방문이다.
- 나누는 기준이 그 층과 같거나 더 큰가. 사람을 물으면 "첫 사용자" 차원, 방문과 행동을 물으면 "세션" 차원이다.
- 주요 이벤트는 하나만 골랐나. 전체 합계를 쓰면 방문을 서너 번 센 숫자가 섞인다.
GA4는 틀리게 센 적이 없다. 내가 바구니를 잘못 골랐을 뿐... 다음에 표가 안 맞으면 숫자를 의심하기 전에 왼쪽 열부터 봐야지.
이 글이 도움됐다면 공유해주세요
블로그 추천
AI 에이전트, 하나에 다 맡길까 여러 개로 나눌까: 1인 기업이 슬랙에서 AI와 일하는 방법
SNS에서 "슬랙으로 AI 직원 100명을 채용했다"는 1인 기업 이야기를 심심찮게 본다. 다 잘하는 에이전트 하나에 다 맡길지, 전체를 보는 에이전트 하나에 담당이 정해진 에이전트 몇 개를 붙일지, 논리 하나씩 떼어서 풀어 봤다. 에이전트가 스스로 고치게 둘 때 필요한 안전장치, 결과를 다른 회사 모델에 따로 점검받는 방법까지 적었다.
Claude Code vs Cursor 실전 비교
Claude Code와 Cursor를 직접 써보고 비교한 실전 리뷰. 1인 창업자 관점에서 어떤 AI 코딩 도구가 더 나은지 정리했다.
분석 툴 통합 전략 — 전환율 2.3배 만든 법
Amplitude-Statsig 인수 사례로 본 분석 툴 통합 전략. 마테크 스택을 줄여 전환율 2.3배를 만든 실전 과정과 재현법을 정리했다.