UTM 파라미터 GA4 설정법, 내 링크 유입을 보고서에서 제대로 읽으려면

캠페인을 돌리고 나서 GA4를 열었는데 유입이 거의 다 (Unassigned)나 (direct) / (none)으로 찍혀 있었던 경험, 한 번쯤은 있으실 겁니다. 링크는 분명 넣었는데 보고서에서 제대로 안 잡히면 뭘 고쳐야 할지도 모르겠고, 답답하죠.
UTM 파라미터가 담긴 URL을 딱 보고 "이 링크가 GA4 어느 채널로 잡힐지" 바로 읽어낼 수 있으면 됩니다. 파라미터 5개 각각이 보고서 어느 측정기준으로 이어지는지, 그리고 값 하나가 어긋나면 왜 Unassigned가 뜨는지를 실제 URL 예시로 풀어볼게요.
URL 꼬리를 읽는 기본 문법
UTM 링크는 ? 뒤에 붙는 쿼리스트링입니다. 처음 보면 낯설지만 구조는 단순합니다.
https://example.com/event?utm_source=newsletter&utm_medium=email&utm_campaign=2025_summer
? 뒤부터 UTM 구간이고, 각 파라미터는 &로 이어집니다. 파라미터명=값 형태 그대로 GA4가 읽어서 보고서에 넣습니다. 모르는 URL을 만났을 때 ? 앞은 목적지 페이지, ? 뒤는 "어디서 어떻게 왔는지" 꼬리표라고 보면 됩니다.
5개 파라미터가 보고서 어느 칸에 들어가는지
파라미터 이름과 GA4 보고서 측정기준명은 1대1로 대응됩니다. 보고서 열 이름만 봐도 어느 파라미터 값인지 바로 읽힌다는 뜻이에요.
utm_source → 세션 소스
트래픽을 보낸 출처 이름입니다. google, naver, instagram, monthly_letter 같은 값이 있는 그대로 '세션 소스' 열에 표시됩니다. 값을 채워 넣는 규칙이 없어서 팀마다 제각각으로 쓰기 쉬운 항목입니다.
utm_medium → 세션 매체
채널의 성격, 즉 어떤 방식으로 유입됐는지입니다. email, cpc, social, display 같은 값이 들어가는데, 5개 중 가장 신경 써야 합니다. GA4가 이 값을 기준으로 기본 채널 그룹을 자동 분류하기 때문입니다. 잘못 쓰면 Unassigned로 빠집니다.
utm_campaign → 세션 캠페인
운영 중인 캠페인 이름입니다. 2025_summer_sale, 월간뉴스레터_8월 같은 값이 '세션 캠페인' 열에 표시됩니다.
utm_content → 세션 수동 콘텐츠
같은 캠페인 안에서 소재나 링크 위치를 구분할 때 씁니다. 이메일 안에 상단 버튼·본문 중간 링크·하단 CTA가 따로 있다면 cta_top, cta_middle, cta_bottom으로 넣으면 어느 위치 링크가 클릭됐는지 '세션 수동 콘텐츠' 열에서 볼 수 있습니다.
utm_term → 세션 수동 용어
유료 검색 광고에서 타겟 키워드를 기록할 때 씁니다. utm_term=운동화_추천처럼 넣으면 '세션 수동 용어' 열에서 확인됩니다. utm_source·utm_medium·utm_campaign 3개는 필수이고, utm_content와 utm_term은 필요할 때만 씁니다.
utm_medium 한 글자 틀리면 Unassigned가 뜨는 이유
GA4는 utm_medium 값을 정확히 문자열 매칭해서 채널 그룹을 분류합니다. 비슷한 단어가 아니라 정해진 값 목록에 없으면 전부 Unassigned입니다.
실무에서 자주 나오는 오류 몇 가지만 짚을게요.
utm_medium=newsletter — Email 채널로 안 잡힙니다. newsletter는 source에 쓰는 값이고, medium에는 email이어야 해요.
utm_medium=fb나 utm_medium=facebook — Organic Social로 안 잡힙니다. social이나 paid-social을 써야 합니다.
utm_medium=emails처럼 복수형도 인식 못 합니다. 정확히 email이어야 해요.
utm_medium=SNS처럼 GA4 채널 그룹 목록에 없는 값도 그냥 Unassigned로 빠집니다. 보고서에서 값이 쪼개지지 않으려면 소문자로 일관되게 쓰는 게 실무 관행입니다.
채널별로 GA4가 인식하는 값은 이렇습니다. Email은 email·e-mail·e_mail, Paid Search는 cpc·ppc, Organic Social은 social·social-network·sm, Paid Social은 paid-social·paid_social, Display는 display·banner·cpm.
팀 안에서 사람마다 값을 다르게 쓰면 같은 채널 유입이 보고서에서 여러 행으로 쪼개집니다. 일관성이 핵심입니다.
실제 URL을 보고 채널을 예측해보기
URL 한 줄을 보고 "이 링크는 GA4에서 어느 채널로 잡힐까"를 읽어내는 연습입니다. 구글 공식 도구 Campaign URL Builder에서 파라미터를 조합하면 완성된 링크가 자동으로 만들어집니다.
뉴스레터 링크
https://example.com/event?utm_source=monthly_letter&utm_medium=email&utm_campaign=2025_august&utm_content=cta_main
utm_medium=email이니 Email 채널입니다. utm_content=cta_main이 있어서 이메일 내 버튼 위치를 구분하고 있음을 알 수 있습니다. 버튼이 여러 개라면 cta_top·cta_bottom처럼 값을 달리 해두면 어느 위치 클릭률이 높은지 추적됩니다.
인스타그램 일반 게시물 링크
https://example.com/product?utm_source=instagram&utm_medium=social&utm_campaign=summer_collection&utm_content=feed_post_0801
utm_medium=social이니 Organic Social 채널입니다. 유료 광고였다면 paid-social로 바꿔야 보고서에서 Organic Social과 Paid Social이 구분됩니다. medium 값 하나로 채널 구분이 갈리는 전형적인 케이스입니다.
구글 검색 광고 링크
https://example.com/product?utm_source=google&utm_medium=cpc&utm_campaign=shoes_branded&utm_term=나이키운동화
utm_medium=cpc니 Paid Search 채널입니다. utm_term이 있으니 키워드 광고이고, '세션 수동 용어' 열에서 어떤 키워드가 방문으로 이어졌는지 볼 수 있습니다.
GA4 보고서에서 내 UTM 값 찾아 읽는 순서
링크를 뿌린 다음에는 값이 제대로 잡히는지 바로 확인해보는 게 좋습니다.
GA4 왼쪽 메뉴에서 보고서 → 획득 → 트래픽 획득으로 들어갑니다. 표 상단 드롭다운이 기본값 '세션 기본 채널 그룹'으로 되어 있는데, 이걸 '세션 소스/매체'로 바꿉니다. instagram / social, monthly_letter / email처럼 source와 medium이 합쳐진 형태로 행이 나열됩니다. 캠페인 단위로 더 보고 싶다면 + 보조 측정기준 추가에서 '세션 캠페인'을 선택하면 됩니다.
배포 직후 바로 확인하고 싶다면 보고서 → 실시간에서 해당 링크를 직접 클릭해봅니다. 수 초 안에 소스/매체 유입이 표시됩니다. Unassigned로 잡힌다면 utm_medium 값을 먼저 점검하세요.
링크가 보고서에서 제대로 읽힐 때와 Unassigned로 뭉개질 때의 차이는 거의 대부분 utm_medium 한 글자입니다. 많이 붙이는 것보다 일관되게 붙이는 게 훨씬 중요한 이유가 여기에 있습니다.
이 글이 도움이 됐나요?
여러분의 반응이 다음 글의 방향이 돼요


