광고비는 분명 썼는데 GA4 리포트를 열면 채널이 스무 개로 쪼개져 있어요. facebook, Facebook, FB, fb_ad... 다 같은 페북 광고인데 말이죠. 저도 이걸 반년 넘게 방치했다가 결국 데이터를 통째로 못 믿게 됐어요. UTM은 붙이는 게 중요한 게 아니라, 처음부터 규칙을 정하고 붙이는 게 전부더라고요.
처음엔 다들 이래요. 인스타 스토리에 링크 하나 걸면서 "아 UTM 붙여야지" 하고 ?utm_source=insta&utm_medium=story 이렇게 뚝딱 만들어 붙여요. 다음 날엔 utm_source=instagram, 그 다음 주엔 팀원이 utm_source=IG. 각자 편한 대로 붙이는 거죠. 문제는 이게 몇 달 쌓이면 리포트에서 같은 채널이 대여섯 개로 갈라진다는 거예요.
저는 이걸 봄에 발견했어요. 광고 성과 정리하려고 GA4 채널 리포트를 열었는데, 소스/매체 항목이 스크롤을 한참 내려야 할 만큼 많더라고요. 하나하나 세어보니 결국 실제 채널은 다섯 개 정도인데, 표기만 스무 가지가 넘었어요. 반년치 데이터를 놓고 "그래서 인스타가 얼마 벌어줬는데?"라는 질문에 답을 못 하겠는 거예요... 그때 정신이 번쩍 들었어요.
UTM 파라미터는 링크 뒤에 붙이는 꼬리표예요. 이 링크로 들어온 사람이 어디서, 어떤 경로로, 무슨 캠페인 때문에 왔는지 GA4 같은 분석 도구에 알려주는 표식이죠. 다섯 개가 있어요.
여기서 함정이 있어요. GA4는 이 값들을 대소문자까지 그대로, 글자 하나 안 틀리게 구분해요. Facebook과 facebook은 사람 눈엔 같지만 GA4한테는 완전히 다른 두 채널이에요. 띄어쓰기, 오타, 약자... 전부 별개로 잡혀요. 그래서 규칙 없이 그때그때 붙이면 데이터가 안 쌓이고 흩어지는 거죠.
제 실수를 그대로 보여드릴게요. 아래가 제가 실제로 반년간 뿌린 링크들의 소스/매체 표기예요. 같은 채널인데 이렇게 갈라졌어요.
| 실제 채널 | 제가 뿌린 표기들 | GA4에 잡힌 개수 |
|---|---|---|
| 인스타 유료광고 | instagram / Instagram / insta / IG / ig_ad | 5개로 분리 |
| 네이버 검색광고 | naver / Naver / naver_cpc / 네이버 | 4개로 분리 |
| 카카오 채널 메시지 | kakao / kakaotalk / kko | 3개로 분리 |
| 이메일 뉴스레터 | email / newsletter / mail / edm | 4개로 분리 |
이게 왜 치명적이냐면요. 인스타 광고가 한 달에 500만 원어치 매출을 만들었다고 쳐요. 근데 그게 5개 표기로 쪼개지면 각 항목엔 100만 원씩만 찍혀요. 리포트만 보면 "인스타 별로네?" 싶어서 예산을 줄이게 돼요. 실제론 제일 잘 버는 채널인데 말이죠. 데이터가 틀린 게 아니라, 데이터를 못 합치는 상태가 되는 거예요.
더 무서운 건 이걸 소급해서 못 고친다는 점이에요. GA4에 한번 IG로 들어간 과거 데이터는 나중에 instagram으로 바꿔서 합칠 수가 없어요. 오늘부터 규칙을 지켜도 지나간 반년은 그냥 흐릿한 채로 남아요. 그래서 UTM은 '처음에 정하고 시작하는 것'이 진짜 중요한 거죠. 광고비 태우기 전에 규칙부터...
제가 그 사태 이후로 정한 규칙이에요. 거창한 거 없어요. 딱 이 네 개만 지키면 채널이 안 갈라져요.
1. 무조건 소문자로만. 대문자 섞는 순간 갈라질 씨앗이 생겨요. Facebook 말고 facebook, 예외 없이 전부 소문자. 이 규칙 하나가 절반은 막아줘요.
2. 띄어쓰기는 언더스코어(_)로. 공백은 링크에서 %20 같은 걸로 깨져서 지저분해져요. summer sale 말고 summer_sale. 하이픈도 괜찮지만, 팀 안에서 둘 중 하나로 통일만 하면 돼요.
3. source와 medium은 후보를 미리 고정. 아무 단어나 못 쓰게 미리 정해둬요. source는 naver / instagram / kakao / google / email 이런 식으로, medium은 cpc / social / email / display / referral 정도로 딱 정해놓고 그 안에서만 골라요. 특히 medium은 GA4가 기본 채널 그룹을 잡는 기준이라 cpc, social 같은 표준값을 쓰는 게 좋아요.
4. 한글은 되도록 피하기. utm_source=네이버도 작동은 하는데, 링크가 인코딩되면서 깨져 보이고 나중에 필터 걸 때 골치 아파요. 영문 소문자로 통일하는 게 마음 편해요.
utm_medium=summer_sale 이런 식으로요. medium은 '방식'(cpc/social/email)이고, campaign이 '무슨 행사'예요. 이 둘을 섞으면 GA4 기본 채널 리포트가 통째로 이상해져요. 역할을 헷갈리지 마세요.규칙을 머릿속에만 두면 또 사람마다 다르게 붙여요. 그래서 저는 구글 시트에 UTM 빌더를 하나 만들어뒀어요. 드롭다운으로 source·medium을 고르게 하고, campaign만 직접 입력하게 해서 링크를 자동 생성하게요. 팀원이 링크를 새로 만들 때 무조건 이 시트를 거치게 하면, 오타나 대문자가 낄 틈이 없어요.
실제 완성된 링크는 이런 모양이에요.
https://oversized.kr/product/123?utm_source=instagram&utm_medium=social&utm_campaign=2026_summer_sale&utm_content=story_a
보면 규칙이 다 들어가 있죠. 소문자, 언더스코어, medium은 표준값 social, campaign엔 연도를 붙여서 나중에 시즌별로 구분되게. utm_content로 스토리 A안·B안까지 나눠뒀고요. 이렇게 쌓이면 "2026 여름세일에서 인스타 스토리 A안이 얼마 벌었나"까지 깔끔하게 뽑혀요.
2026_처럼 연도나 0717_처럼 날짜를 붙여두면 나중에 정렬하고 찾을 때 편해요. 반복되는 행사(여름세일, 블프)일수록 시점 표시가 생명이에요. 1년 뒤에 "그때 그 세일이 언제였더라" 안 뒤지게요.그리고 하나 더. UTM으로 유입은 채널별로 잘 나눴어도, 거기서 끝이 아니에요. 유입 뒤에 '그래서 그 채널이 실제로 남긴 돈'까지 봐야 판단이 서요. 매출만 보면 인스타가 1등인데, 광고비·원가·수수료·부가세까지 빼면 순위가 뒤집히는 경우가 진짜 많거든요. 저는 ROAS만 보다가 이걸 여러 번 놓쳤어요. 채널별 유입은 GA4로 나누되, 실제 순수익은 별도로 챙겨보는 게 맞아요. 대시부스터를 쓰면 원가·수수료·세금 다 뺀 진짜 남는 돈이 실시간으로 찍혀서, UTM 리포트랑 같이 보면 판단이 훨씬 빨라져요.
이미 데이터가 엉켜 있다면, 과거는 어쩔 수 없지만 오늘부터는 이렇게 시작하면 돼요.
완벽하게 하려고 미루지 마세요. 오늘 규칙 하나 정하고 시트 하나 만드는 게, 반년 뒤에 또 흐릿한 리포트 보면서 한숨 쉬는 것보다 백 배 나아요...
GA4 원본에서 소급 병합은 안 돼요. 다만 Looker Studio 같은 리포트 도구에서 '계산된 필드'나 정규식으로 IG|instagram|insta를 하나로 묶어서 보는 편법은 있어요. 보기용으로는 되는데, 근본은 오늘부터 규칙을 지켜서 새 데이터를 깨끗하게 쌓는 거예요.
필수는 아니에요. source·medium·campaign 세 개만 제대로 지켜도 90%는 해결돼요. content는 A/B 소재 나눌 때, term은 검색광고 키워드 볼 때만 쓰면 되고, 안 쓸 거면 아예 비워두는 게 깔끔해요. 억지로 채우다 규칙이 흐트러지는 게 더 나빠요.
SNS 프로필이나 QR로 뿌릴 땐 단축 URL(비틀리 등)로 감싸면 돼요. 단축돼도 UTM 값은 그대로 전달되니까 데이터엔 영향 없어요. 링크 길이보다 값이 정확한 게 훨씬 중요해요.
UTM으로 유입은 나눴는데 채널별로 진짜 남는 돈까지는 안 보이죠. 원가·수수료·세금 뺀 실제 순수익을 실시간으로 확인해 보세요.
7일 무료로 시작하기 →