직접 살펴보는 예제
기존 주소를 보존하는 캠페인 링크 만들기
주소와 캠페인 이름을 바꾸고 기존 쿼리·앵커가 남는지 확인하세요. 실제 개인정보는 입력하지 마세요.
아래 내용은 구조를 설명하기 위해 만든 예제입니다. 실제 상품·고객 성과 자료가 아닙니다.
기본 주소의 언어 쿼리와 앵커를 유지합니다.
https://example.com/guide?lang=ko&utm_source=newsletter&utm_medium=email&utm_campaign=autumn_notes_2026&utm_content=hero#pricing만든 주소를 자동으로 열지 않습니다. 입력과 결과는 저장·전송하지 않습니다.
UTM 이름과 배포 장부 예제에서 나눈 판단
예제 주소의 lang=ko와 #pricing을 보존하면서 네 캠페인 필드를 설정합니다. 같은 이름의 UTM이 있으면 하나의 값으로 바꾸며, 규칙에 맞지 않는 입력에는 결과 대신 수정 안내를 표시합니다. 링크 형식 확인은 실제 클릭·분석 수집 확인과 별개입니다.
같은 캠페인이 다른 행으로 갈라지는 작은 차이
한 사람이 캠페인 이름을 autumn_notes라고 쓰고 다른 사람이 Autumn-Notes라고 쓰면 독자는 같은 안내를 받더라도 분석 시스템에는 서로 다른 값이 들어갈 수 있습니다. 링크를 복사하는 동안 공백이나 날짜 표기가 바뀌는 일도 생깁니다. Google Analytics 안내는 UTM 값의 대소문자를 구분하므로 일관된 이름을 사용하라고 설명합니다. 먼저 배포할 이름을 정하고 링크마다 다시 타이핑하지 않는 편이 좋습니다.참고: Google Analytics Help · URL builders: Collect campaign data with custom URLs
이 글의 예제는 실제 캠페인이 아닌 가상 뉴스레터입니다. 도착 주소는 example.com의 안내 페이지, source는 newsletter, medium은 email, campaign은 autumn_notes_2026으로 정합니다. 상단 링크와 하단 링크를 나눌 때만 content를 바꿉니다. 이 이름이 모든 조직에 맞는 표준이라는 뜻은 아니며, 한 캠페인의 값을 흔들리지 않게 유지하는 과정을 보여 주기 위한 규칙입니다.
| 흩어진 표기 | 장부에서 정한 표기 | 정리할 이유 |
|---|---|---|
| Newsletter / newsletter | newsletter | 대소문자 분리 방지 |
| email / e-mail / mail | 매체 이름을 하나로 유지 | |
| Autumn Notes / autumn-notes | autumn_notes_2026 | 같은 캠페인 구분 |
| top / top-link / hero | hero | 같은 링크 위치를 같은 이름으로 기록 |
source·medium·campaign·content에 다른 역할을 줍니다
source에는 어디에서 온 링크인지, medium에는 어떤 전달 방식인지, campaign에는 어떤 묶음의 활동인지 담습니다. content는 같은 캠페인 안의 소재나 위치를 구별할 때 사용합니다. 네 칸에 같은 이름을 반복하면 값을 붙인 보람이 줄어듭니다. “9월 캠페인”이라는 말이 발송 매체와 버튼 위치를 모두 대신하지 않게 역할을 나눕니다.참고: Google Analytics Help · URL builders: Collect campaign data with custom URLs
| 필드 | 예제 값 | 예제에서 묻는 질문 |
|---|---|---|
| utm_source | newsletter | 어디에서 링크를 배포했는가 |
| utm_medium | 어떤 방식으로 전달했는가 | |
| utm_campaign | autumn_notes_2026 | 어느 캠페인 묶음인가 |
| utm_content | hero 또는 footer | 같은 메시지의 어느 링크인가 |
아래 도구는 source·medium·campaign을 필수 입력으로 두고 content는 선택으로 둡니다. 영문 소문자, 숫자, 밑줄과 하이픈만 허용하는 것은 이 예제의 이름 관리 규칙입니다. UTM 기술 전체가 한글이나 다른 문자를 처리할 수 없다는 뜻은 아닙니다. 조직에서 다른 규칙을 쓰더라도 허용 문자, 날짜 표기, 소재 이름을 먼저 문서화해야 사람이 바뀌어도 같은 결과를 만들 수 있습니다.
기존 쿼리와 #앵커를 망가뜨리지 않고 값을 붙입니다
도착 주소에 이미 ?lang=ko가 붙어 있는데 다시 물음표부터 UTM을 이어 쓰면 주소 구조가 달라질 수 있습니다. #pricing 같은 앵커 뒤에 매개변수를 붙이는 실수도 피해야 합니다. URL을 문자열로 추측해 이어 붙이기보다 URL 객체에서 쿼리를 다루면 기존 값과 앵커를 유지하면서 캠페인 필드를 설정할 수 있습니다.참고: MDN Web Docs · URLSearchParams: set() method
도착 주소: https://example.com/guide?lang=ko#pricing
쿼리: lang=ko + utm_source + utm_medium + utm_campaign
앵커: #pricing 유지
같은 utm_source가 이미 있는 주소에는 값을 여러 번 추가하지 않고 장부의 값으로 한 번 설정합니다. URLSearchParams의 set은 같은 이름의 여러 값이 있을 때 지정한 값 하나를 남기는 동작을 합니다. 다만 도구가 모든 쿼리를 지워도 된다는 뜻은 아닙니다. 상품 옵션이나 언어처럼 도착 화면에 필요한 값은 보존하고, 바꾸기로 한 캠페인 필드만 다룹니다.참고: MDN Web Docs · URLSearchParams: set() method
완성된 주소를 읽을 때는 도메인, 경로, 필요한 기존 쿼리, UTM 이름, 앵커를 순서대로 확인합니다. 값이 URL 인코딩으로 표시되는 것과 이름이 잘못 들어가는 것은 다릅니다. 배포 전에 원래 페이지의 목적지가 유지되는지 확인해야 하며, 이 페이지의 도구는 주소를 만들기만 하고 외부 사이트를 열거나 분석 요청을 보내지 않습니다.
링크 이름에는 사람을 식별하는 값을 넣지 않습니다
개인별 이메일, 전화번호, 이름을 campaign이나 content에 넣으면 링크를 공유하거나 복사하는 과정에서 함께 노출될 수 있습니다. 분석 도구에 전달되는 URL 자체에도 이런 정보가 없어야 합니다. Google Analytics는 식별 가능한 개인정보 전송을 피하기 위한 별도 안내를 제공합니다. 이 예제에서는 사람 대신 매체·캠페인·소재 위치만 기록합니다.참고: Google Analytics Help · Best practices to avoid sending Personally Identifiable Information
아래 입력 검사는 이메일처럼 보이는 @나 공백 등을 이름 규칙으로 걸러 내지만 개인정보 탐지기가 아닙니다. 고객 번호처럼 숫자로만 된 값이나 사람이 알아볼 수 있는 내부 식별자는 여전히 통과할 수 있습니다. 검사에 통과했다는 이유로 민감한 값을 넣지 말고, 캠페인 이름이 개인을 가리키지 않는지 사람이 확인해야 합니다.
링크를 보내기 전 이름보다 원문 주소를 보관합니다
캠페인 장부에는 최종 URL, 배포 위치, 소재 버전, 담당자, 배포 예정일, 도착 확인 여부를 남깁니다. 이름 규칙이 잘 정리돼 있어도 메일 본문에는 이전 주소가 들어갈 수 있습니다. 최종 발송 화면이나 광고 소재에서 링크를 다시 추출해 장부의 원문과 대조해야 실제 배포 상태를 알 수 있습니다.
| 장부 열 | 가상 뉴스레터의 기록 | 다음 확인 |
|---|---|---|
| 도착 주소 | example.com/guide?lang=ko#pricing | 언어와 앵커 유지 |
| 공통 캠페인 | autumn_notes_2026 | 모든 소재에서 동일 |
| 링크 위치 | hero / footer | 위치별 content 구분 |
| 배포 원문 | 도구가 만든 최종 URL | 최종 소재의 링크와 일치 |
| 확인 결과 | 주소 형식·도착 문서 확인 | 분석 수집은 별도 검사 |
사이트 안의 일반 메뉴 이동까지 외부 유입 캠페인처럼 태깅하기 전에 무엇을 구분하려는지 다시 생각합니다. 외부 캠페인 유입과 사이트 내부 버튼 사용은 다른 질문입니다. 내부 행동을 알고 싶은 상황에서 캠페인 이름을 덧붙이면 보고서 해석이 복잡해질 수 있으므로 목적에 맞는 이벤트 설계를 별도로 검토합니다. 이 글은 실제 분석 계정 설정을 변경하거나 내부 이벤트를 수집하지 않습니다.
정상 링크와 정상 수집은 서로 다른 확인입니다
주소에 UTM이 보이는 것은 링크 형식이 있다는 뜻입니다. 그것만으로 실제 클릭이 발생했거나 보고서에 제대로 집계됐다고 말할 수는 없습니다. 분석 태그, 동의 상태, 리디렉션, 앱 브라우저와 수집 설정에 따라 관측 결과가 달라질 수 있습니다. 링크 확인 기록과 분석 도구에서 관측한 기록을 나눠 두어야 누락이 생겼을 때 확인할 위치가 분명해집니다.
- 배포할 캠페인의 필드 역할과 표기 규칙을 먼저 고정합니다.
- 기존 쿼리와 앵커가 있는 주소로 도구의 결과를 확인합니다.
- 최종 소재에 들어간 실제 링크를 장부와 대조합니다.
- 분석 보고서에 수집됐는지는 별도 관측으로 남깁니다.
캠페인 이름을 통일하면 값을 비교하기 쉬워지지만 클릭이나 매출이 늘었다는 결론은 별도 데이터가 필요합니다. 이 글은 가상 링크를 생성하고 관리하는 절차에 한정됩니다. 도구에 입력한 값과 생성한 주소는 이 브라우저 안에서만 처리하며 저장·전송하지 않습니다.
UTM 이름과 배포 장부을 확인한 순서
- 기본 주소의 lang=ko와 #pricing을 둔 채 content를 hero에서 footer로 바꾸어 링크를 만듭니다.
- utm_source가 이미 있는 주소도 넣어 봅니다. 기존 쿼리·앵커가 남고 같은 UTM 이름은 중복되지 않아야 합니다.
- 이메일이나 개인 식별자는 입력하지 않습니다. 링크 생성 확인과 실제 클릭·분석 수집 확인을 구분해 기록합니다.
UTM 이름과 배포 장부 판단에서 제외한 범위
- 이 도구는 분석 태그나 실제 클릭을 수집하지 않습니다.
- 영문 소문자 중심 제한은 예제의 운영 규칙이며 UTM 전체의 기술적 문자 제한이 아닙니다.
- 개인정보를 자동 탐지하거나 적법한 수집을 인증하지 않습니다.
UTM 이름과 배포 장부에 사용한 원문
원문별 확인일과 참고 범위를 아래에 표시했습니다. 예제 입력값은 설명을 위한 설정이며 원문 기관의 제품 평가를 뜻하지 않습니다.
- URL builders: Collect campaign data with custom URLsGoogle Analytics Help · 확인 2026-09-03
UTM 필드 역할, 일관된 이름과 대소문자 구분을 참고했습니다.
- Best practices to avoid sending Personally Identifiable InformationGoogle Analytics Help · 확인 2026-09-03
분석 수집에 개인 식별정보를 보내지 않도록 주의할 범위를 참고했습니다.
- URLSearchParams: set() methodMDN Web Docs · 확인 2026-09-03
기존 쿼리에서 같은 이름의 값을 하나로 설정하는 동작을 참고했습니다.
UTM 이름과 배포 장부 운영 점검 결과
공개 상태에서 재현할 수 있는 것만 남기기 위해 2026년 9월 23일 서버 응답과 문서 구조를 대조했습니다. 소문자·공백·약어 규칙을 먼저 고정하고 배포 URL과 보고서 차원이 같은 값을 가리키는지 봅니다. 제작한 링크와 실제 게시한 링크를 따로 기록합니다.
| 확인 항목 | 2026.09.23 공개 응답 | 판단 범위 |
|---|---|---|
| 접속과 주소 | HTTP 200, H1 1개, canonical https://detailry.com/articles/marketing-utm-link-ledger/ | 공개 URL과 대표 주소 일치만 확인 |
| 본문 구조 | 공백 제외 5,090자, H2 10개, 이미지 2개 | 길이가 아니라 주제별 판단 과정과 한계를 재검수 |
| 링크 경로 | 내부 7개, 외부 8개, support.google.com, developer.mozilla.org | 출처 존재와 실제 접속 상태를 별도로 확인 |
이 기록은 해당 날짜의 공개 상태를 보여주며 사용자 성과, 고객 전환, 제품 성능을 증명하지 않습니다. 이후 본문·이미지·출처가 바뀌면 같은 URL을 다시 확인해야 합니다.
