UTM 링크 설계 가이드: 감이 아니라 데이터로 채널 운영하기
- UTM은 “어디서 왔는지”를 맞추는 도구가 아니라, “다음에 어디에 더 밀지”를 결정하는 도구입니다
utm_source,utm_medium,utm_campaign3개만 일관되게 써도 채널 의사결정 품질이 크게 올라갑니다- 전용 도구 없이 네이밍 규칙 시트 하나로 시작할 수 있고, 수집은 PostHog 같은 분석 도구가 자동으로 해줍니다
Threads에 올렸더니 반응이 좋았습니다. 카톡 오픈채팅에도 올렸습니다. 블로그에도 링크를 넣었습니다.
그리고 다음 날, 대시보드를 봅니다.
“방문은 늘었는데 어디서 온 거지?” “어디가 먹힌 건지 모르겠네.”
이 상태에서 흔히 하는 실수가 있습니다.
반응이 커 보였던 채널에 다시 시간을 더 쓰는 것.
문제는, 반응이 커 보였다는 느낌과 실제 유입/전환 데이터가 다를 수 있다는 점입니다.
UTM은 이 간격을 줄여주는 최소 장치입니다.
UTM은 분석 도구가 아니라 운영 도구다
UTM을 어렵게 생각하면 바로 멈춥니다.
utm_source, utm_medium, utm_campaign 같은 이름이 부담스럽기 때문입니다.
하지만 실무 기준으로 보면 단순합니다.
utm_source: 어디서 왔나 (threads, twitter, blog)utm_medium: 어떤 성격의 유입인가 (social, community, messaging, content)utm_campaign: 어떤 실험/캠페인인가 (day2, launch_week1, pricing_test)
핵심은 정답을 맞추는 게 아닙니다.
한 번 정한 규칙으로 계속 쓰는 것입니다.
먼저 정할 것: 네이밍 규칙 5개
UTM이 망가지는 이유는 보통 툴이 아니라 네이밍입니다.
아래 5개만 정하면 대부분 해결됩니다.
- 전부 소문자 사용 (
Threads대신threads) - 띄어쓰기 대신 하이픈 사용 (
open chat대신open-chat) utm_source는 플랫폼/채널 고유명으로 고정utm_medium은 트래픽 타입으로 고정 (social,community,messaging,content,email)utm_campaign은 기간+실험명 패턴으로 고정 (day2,week1-launch,2026-03-pricing-a)
이름을 예쁘게 짓는 것보다 중요한 건 나중에 보고 “이 링크가 어떤 실험이었는지” 3초 안에 떠올릴 수 있는지입니다.
UTM 링크 만들기: 규칙 시트 하나면 충분하다
전용 도구부터 찾을 필요 없습니다. 스프레드시트 한 장이면 시작할 수 있습니다.
1) 규칙 시트를 만든다
채널별로 utm_source/utm_medium을 미리 고정해두고, 새 실험마다 utm_campaign만 추가하는 시트를 만듭니다.
| 채널 | utm_source |
utm_medium |
|---|---|---|
| Threads | threads |
social |
| 카톡 오픈채팅 | kakaotalk |
messaging |
| 디스콰이엇 | disquiet |
community |
| 블로그 글 | blog |
content |
링크는 이 시트를 보고 조립합니다. 손으로 붙여도 되고, Google Campaign URL Builder 같은 무료 조립 도구를 써도 됩니다.
https://example.com/?utm_source=threads&utm_medium=social&utm_campaign=week1-launch
2) 수집은 분석 도구가 자동으로 한다
utm_source, utm_medium, utm_campaign, utm_term, utm_content는 표준 파라미터라서 대부분의 분석 도구가 자동 수집합니다. PostHog는 이 5종을 이벤트 속성으로 자동 기록하고, 첫 유입 UTM은 유저 속성으로도 남겨 “이 유저가 처음 어디서 왔는지”를 나중에 조회할 수 있습니다. 도구 셋업이 처음이라면 PostHog 완전 가이드를 참고하세요.
운영 방식 추천: 링크 생성은 규칙 시트로, 수집·집계는 분석 도구로 분리하면 나중에 도구를 바꿔도 규칙이 살아남습니다.
필드별로 언제 쓰는가
| 필드 | 필수 여부 | 언제 쓰나 | 예시 |
|---|---|---|---|
utm_source |
사실상 필수 | 유입 출처 식별 | threads, kakaotalk, blog |
utm_medium |
사실상 필수 | 트래픽 유형 분류 | social, community, messaging |
utm_campaign |
사실상 필수 | 실험/기간 묶음 | day2, week1-launch |
utm_term |
선택 | 키워드/세그먼트 구분 | founder, saas |
utm_content |
선택 | 같은 캠페인 내부 A/B 구분 | post-a, post-b, hero-btn |
utm_term과 utm_content는 선택이지만, 실험 회고를 자주 한다면 큰 차이를 만듭니다.
10분 셋업: 바로 쓰는 실전 절차
-
링크 목표를 한 줄로 적습니다
예: Day2 공유 채널별 클릭 도달 비교 -
utm_campaign이름을 먼저 고정합니다예: day2 -
채널별 링크를 각각 분리합니다
threads,kakaotalk,blog를 한 링크로 합치지 않습니다 -
같은 채널에서 카피를 나눌 거면
utm_content로 분리합니다예: threads-post-a,threads-post-b -
UTM이 붙은 최종 링크만 실제 메시지에 붙입니다 UTM 없는 원본 URL과 섞어 쓰면 데이터가 끊깁니다
데이터 읽는 법: 클릭 수를 액션으로 바꾸기
링크 운영에서 중요한 건 숫자 자체보다 해석 패턴입니다. 클릭 수는 채널 플랫폼 통계나 단축 링크 도구에서, 방문 이후 행동은 UTM을 수집한 분석 도구에서 봅니다.
아래 4가지 패턴만 알아도 다음 액션이 선명해집니다.
| 관측 패턴 | 해석 | 다음 액션 |
|---|---|---|
| 클릭 높음, 방문 낮음 | 링크 노출은 됐지만 이동 품질 문제 가능성 | 링크 깨짐/앱 인앱 브라우저 이슈/리다이렉트 점검 |
| 방문 높음, 폼 전환 낮음 | 랜딩 메시지-유입 기대 불일치 | 헤드라인/CTA/첫 화면 재정렬 |
특정 source만 지속적으로 높음 |
채널 적합도 신호 | 해당 채널에 메시지 변주 A/B 집중 |
| 전 채널 저조 | 메시지 자체 문제 가능성 | 문제정의 문장과 오퍼 다시 점검 |
흔한 실패 6가지
- 같은 링크를 모든 채널에 재사용한다
utm_source표기가 매번 달라진다 (thread,threads,Threads)- 캠페인명이 날짜/실험 단위로 끊기지 않는다
- 채널 게시글 본문에는 링크를 안 넣고 프로필 링크만 사용한다
- 원본 URL과 단축 URL을 혼용한다
- 클릭 데이터만 보고 “성과 좋다”라고 결론낸다
특히 6번이 치명적입니다.
클릭은 도달 신호일 뿐, 가치 신호는 아닙니다.
가치 신호는 방문 이후 행동(체류, 폼 제출, 결제)에서 나옵니다.
주 1회 운영 루프 (20분)
매주 20분만 투자해 아래 루프를 돌리면 채널 운영이 안정됩니다.
- 분석 도구에서
utm_source별 방문 수 편차를 확인합니다 - 방문 대비 핵심 행동(폼 제출, 가입)의 전환 갭을 확인합니다
- 성과 좋은 채널 1개만 확장하고, 낮은 채널 1개만 보수합니다
- 다음 주
utm_campaign이름으로 새 링크 배치를 만듭니다 - 지난 배치의 링크와 결과를 규칙 시트에 한 줄로 기록합니다
“모든 채널을 조금씩”보다
“먹히는 채널을 더 깊게”가 누적 성과를 만듭니다.
결론
UTM은 마케터만의 도구가 아닙니다.
혼자 만드는 개발자에게는 실행 우선순위를 정하는 도구입니다.
어제보다 링크를 더 많이 뿌리는 것보다,
오늘 뿌린 링크를 내일 제대로 해석하는 쪽이 더 중요합니다.
UTM을 잘 쓰면 “열심히 했다”가 아니라
“어디가 먹혔고, 그래서 뭘 바꿨다”를 말할 수 있습니다.
그 순간부터 채널 운영은 감이 아니라 시스템이 됩니다.