UTM, QR, 파트너 트래픽을 위한 브랜드 캠페인 링크
캠페인 링크는 신뢰감을 주고, UTM attribution을 보존하며, 카카오·QR·광고·파트너 배포 이후에도 목적지를 바꿀 수 있어야 합니다.

캠페인 링크는 마지막에 확인되는 경우가 많습니다. 하지만 그 링크는 카카오톡 공유, QR 코드, 이메일 버튼, 인스타그램 bio, 네이버/메타 광고, 파트너 배너, 제휴 링크 뒤에 있습니다.
UTM이 사라지거나, 오래된 랜딩으로 가거나, preview 이미지가 깨지거나, 인쇄된 QR의 목적지를 바꿀 수 없다면 캠페인은 멀쩡해 보여도 리포트는 이미 망가진 상태입니다.
브랜드 캠페인 링크는 세 가지를 해야 합니다.
- 클릭할 만큼 신뢰감을 줄 것
- analytics로 깨끗한 attribution을 보낼 것
- 배포 후에도 수정 가능할 것
UrlEdge는 단순 short link가 아니라 캠페인 routing layer로 맞습니다. tracking destination을 만들고, 브랜드 public URL로 감싸고, redirect에서 파라미터를 보존하고, 실제 채널에서 테스트하고, fallback을 준비합니다.
캠페인 링크 스택
약한 방식은 랜딩 URL을 복사하고, UTM을 붙이고, 줄여서 모든 채널에 붙이는 것입니다.
문제는 바로 생깁니다. 대행사는 Instagram, CRM은 instagram을 씁니다. QR은 이미 인쇄됐습니다. 파트너는 sub ID를 원합니다. redirect가 query를 떨어뜨려 GA4에서 direct로 보입니다.

| Layer | 결정할 것 |
|---|---|
| Destination | 방문자가 최종적으로 볼 페이지 |
| Tracking | UTM, click ID, coupon, partner ID 보존 여부 |
| Public URL | 광고, QR, 카카오, bio, 이메일에 보일 브랜드 링크 |
| Redirect | query 보존, allowlist, default 추가, 제거 정책 |
| Channel QA | 앱, QR scanner, inbox, ad preview에서 실제 동작 확인 |
| Recovery | 배포 후 destination이나 fallback 수정 가능 여부 |
Attribution은 랜딩 페이지가 열리기 전에 깨질 수 있습니다.
UTM은 이름 규칙입니다
Google Analytics는 utm_source, utm_medium, utm_campaign을 캠페인 파라미터로 사용합니다. 이름 규칙이 없으면 같은 유입이 여러 값으로 나뉩니다.
| Parameter | 용도 | 좋은 예 | 약한 예 |
|---|---|---|---|
utm_source | 유입 출처나 파트너 | kakao, instagram, newsletter, qr-store-12 | social, campaign, homepage |
utm_medium | 채널 타입 | paid-social, email, offline, affiliate, sms | spring-sale, instagram |
utm_campaign | 캠페인명 | spring-launch, black-friday, app-install-q2 | may, test, promo |
utm_content | 소재나 위치 | bio-link, creator-a-story, qr-window, hero-button | version1, link, blue |
Kakao, kakao, kakaotalk이 섞이면 리포트가 분리됩니다.
Public URL은 브랜드 링크로 깨끗하게
Tracking URL:
https://www.brand.example/offer?utm_source=kakao&utm_medium=social&utm_campaign=spring-launch&utm_content=vip-listPublic URL:
https://go.brand.example/spring사용자는 짧은 URL을 보고, analytics는 redirect 뒤에서 파라미터를 받습니다.
분리할 링크:
| Public link | 이유 |
|---|---|
/spring-kakao | 카카오 메시지 유입을 따로 보기 |
/spring-qr-store-12 | 매장, 이벤트, 포스터별 측정 |
/spring-creator-a | 크리에이터 또는 제휴 attribution |
/spring-bio | bio traffic과 paid social 분리 |
QR과 파트너 링크는 운영 정책이 필요합니다
QR은 포스터, 패키지, 영수증, 매장 POP에 들어갑니다. 긴 tracking URL이 아니라 나중에 바꿀 수 있는 브랜드 redirect를 써야 합니다.

런칭 전에 정할 것:
- 매장, 이벤트, 출력물마다 링크를 나눌지
- 국가, 기기, 언어가 destination을 바꾸는지
- redirect rule이 어떤 UTM을 붙이거나 보존하는지
- 캠페인 종료 후 어디로 보낼지
- fallback owner가 누구인지
파트너와 affiliate 링크는 partner, affiliate, sub_id, 합의된 UTM 보존이 중요합니다. Link Firewall은 기본 보호에 사용할 수 있지만, 실제 데이터 없이 fraud recovery를 과장하면 안 됩니다.
Social preview도 클릭의 일부입니다
카카오톡, LinkedIn, Slack, iMessage, Facebook, X에서 preview가 깨지면 링크가 의심스러워 보입니다.
제목, 설명, 이미지, crop, cache, redirect 후 crawler가 보는 값을 확인하세요. Social Preview Customizer는 배포 전 카드 점검에 맞습니다.
런칭 QA

| Check | 흔한 실패 |
|---|---|
| Final destination | 404, staging, 추가 redirect |
| Status code | 임시 캠페인에 301 사용 |
| Query | UTM, click ID, partner ID 유실 |
| Channel | 카카오, Instagram, email, in-app browser 동작 차이 |
| QR | staging으로 연결되거나 수정 불가 |
| Preview | 이미지, 제목, 설명 오류 |
| Fallback | 캠페인 종료 후 목적지 없음 |
캠페인은 보통 302 또는 307이 맞습니다. 301과 308은 영구 이동에 사용하세요.
UrlEdge가 맞는 지점
- UTM Builder
- Redirect Management
- Temporary 302 Redirects
- Social Preview Customizer
- Redirect Checker
- Link Firewall
- Broken Link Monitor
마케팅은 깨끗한 링크를 배포하고, analytics는 일관된 UTM을 읽고, 파트너는 attribution을 받고, 개발팀은 랜딩 변경마다 deploy하지 않아도 됩니다.
FAQ
브랜드 캠페인 링크란?
go.brand.example/spring처럼 자기 도메인의 public URL로 캠페인 destination에 routing하면서 tracking을 보존하는 링크입니다.
UTM을 public URL에 보여야 하나요?
대부분 아닙니다. public URL은 짧게 유지하고 UTM은 redirect 뒤에서 추가하거나 보존합니다.
QR마다 링크를 나눠야 하나요?
매장, 이벤트, 포스터, 지역, 소재별 비교가 필요할 때 나눕니다.
캠페인은 301인가요 302인가요?
대부분 302 또는 307입니다. 301과 308은 영구 이동에 사용합니다.
참고 자료
관련 글
전체 보기
리디렉션 API와 Rules as Code: URL 변경을 CI/CD로 안전하게 운영하기
리디렉션 규칙은 운영 트래픽 설정입니다. 리뷰, 검증, 스테이징, 배포, 모니터링, 롤백까지 포함해서 다뤄야 합니다.

이커머스 Geo Redirect: 국가별 스토어, 통화, 언어, SEO-safe fallback
Geo redirect는 고객을 올바른 지역 스토어로 보낼 수 있지만, 너무 강제하면 로컬 페이지를 사용자와 검색엔진에서 숨길 수 있습니다.