캠페인 링크를 다시 보낼 때 UTM과 click_id가 어떤 신원을 함께 가져가나
물음표 뒤 문자열은 「주소가 길어진 것」이 아닙니다. 동료, 상담원, 고객이 캠페인 링크를 한 번 더 보낼 때 utm_source, fbclid, igshid는 채팅 기록, 티켓 아카이브, 접속 로그에 함께 들어갑니다. 아래에서는 파라미터 종류별로 「무엇이 따라가는지」를 가르고, 그 자리에서 확인할 수 있는 제거 경계를 적습니다. URL 클리너 폼의 조작 안내가 아닙니다.
먼저 따라가는 층을 가르세요
이 글은 「캠페인 링크를 다시 보낼 때 추적 파라미터가 무엇을 함께 가져가는가」만 답합니다. URL 클리너의 폼 설명도 아니고, 광고에 UTM을 붙이는 집행 매뉴얼도 아닙니다.
한 번 더 보내면 무엇이 따라가나
첫 클릭은 광고 플랫폼을 위한 것입니다. 두 번째 전달에는 그 추적 문자열이 더는 필요 없는 경우가 많은데, 쿼리 전체가 그대로 넘어갑니다.
운영이 랜딩 페이지를 고객 단톡에 넣고, 상담원이 「이벤트 페이지」를 티켓에 붙이며, 동료가 인스타 공유 링크를 슬랙에 다시 넣는 일. 이 세 단계에서 물음표 뒤를 먼저 보는 사람은 드뭅니다. 주소창의 긴 꼬리는 잡음처럼 보이지만 쿼리 파라미터입니다. 브라우저는 이를 요청의 일부로 보내고, 카카오톡·메일·티켓 시스템은 일반 텍스트로 통째 저장합니다.
이것은 「URL의 # 이후가 서버 로그에 안 남는 이유」와 다른 층입니다. 프래그먼트는 현재 탭에 남고 HTTP 요청 줄에 들어가지 않습니다. 쿼리 파라미터는 들어갑니다. 기존 글 URL의 # 프래그먼트가 서버 로그에 나타나지 않는 이유는 우물정자만 설명합니다. 이 글이 채우는 것은 물음표입니다. 다시 보낼 때 따라가는 것은 보통 경로가 아니라, 경로 뒤에서 검색되고 아카이브되며 다음 사이트가 다시 읽을 수 있는 필드입니다.
Google 애널리틱스의 URL 작성 도구 도움말은 분명합니다. 이용자가 UTM이 붙은 추천 링크를 클릭하면 그 파라미터가 보고서로 들어갑니다. 집행 팀에게는 기능입니다. 같은 주소를 다시 보내는 사람에게는 다른 일이 됩니다. 「이 클릭이 어느 캠페인에서 왔는지」라는 라벨과, 플랫폼이 스스로 붙인 click ID를 다음 채널에 넘기는 것입니다. 그 채널은 의도한 수신자에게만 한 번 보여 준다고 약속하지 않습니다.
다시 보낼 때 물을 것은 「이 링크가 열리는가」가 아닙니다. 「물음표 뒤에, 상대가 필요 없고 나도 남기고 싶지 않은 식별자가 있는가」입니다. 경로와 id, q 같은 업무 파라미터는 보통 남깁니다. utm_*와 click ID는 보통 다시 따라가게 두지 않습니다.
세 종류는 같은 정보가 아니다
같은 물음표 뒤에 있어도 가져가는 정보는 다릅니다. 「사람이 읽는 라벨 / 플랫폼이 발급한 클릭 번호 / 공유자 식별자」로 가르세요.
첫 번째는 UTM입니다. Google 문서의 흔한 필드는 utm_source, utm_medium, utm_campaign과, 선택 필드인 utm_term, utm_content, utm_id입니다. 값은 본인이나 집행 도구가 넣은 평문입니다. kakaotalk, email, sep-sale처럼요. 캠페인을 설명하지, 특정 이용자 계정을 가리키지는 않습니다. 다만 다시 보낸 뒤에는 수신자, 나중에 방에 들어온 사람, 채팅을 내보낼 수 있는 사람 모두가 「이 링크가 어느 캠페인·어느 채널용으로 만들어졌는지」를 봅니다. 분석 시스템은 대소문자를 다른 값으로 취급합니다. utm_source=google과 utm_source=Google은 두 줄로 갈립니다. 사람에게는 둘 다 읽히는 라벨입니다.
두 번째는 click ID입니다. 광고를 탭할 때 플랫폼이 자동으로 붙이며, 값은 사람이 읽으라고 만든 토큰이 아닙니다. gclid는 Google Ads 자동 태그가 만들고, 그 클릭을 전환에 다시 묶습니다. fbclid는 Meta가 붙이며 픽셀이나 전환 API가 다시 읽는 경우가 많습니다. 같은 가족에 ttclid, msclkid, twclid가 있습니다. 이 값은 고른 적이 없고, 문자열만 보고 캠페인 이름을 되살릴 수도 없습니다. 식별하는 것은 「이번 클릭」이지 「이번 캠페인」이 아닙니다. fbclid가 남은 주소를 동료에게 다시 보내는 것은, 그 광고 클릭의 조회 키를 함께 넘기는 일입니다.
세 번째는 공유자 식별자입니다. 영문 뉴스레터 도구가 가장 분명합니다. Mailchimp의 mc_cid는 캠페인을 가리키고, mc_eid는 목록 레코드로 다시 이을 수 있는 인코딩된 구독자 번호입니다. 인스타그램·Threads 공유 링크에는 오래전부터 igshid나 비슷한 비공개 필드가 붙었습니다. 국내 안내에서도 게시물 링크 뒤의 ?igsh=를 추적용 코드로 보고, 물음표 이후를 지워도 접속은 된다고 적습니다. 이 글은 파라미터를 계정으로 되돌리는 어떤 절차도 적지 않고 반복하지도 않습니다. 그 자리에서 볼 수 있는 사실만 남깁니다. 어떤 공유 링크의 쿼리에는 캠페인 라벨 말고 「누가 공유를 눌렀는지」가 들어 있습니다.
utm_source=newsletter는 채널을 말합니다. 다시 보낸 뒤 캠페인 이름은 방 전체에 보입니다.
fbclid, gclid는 그 클릭으로 다시 이어집니다. 원문 그대로 보내면 조회 키를 넘깁니다.
igshid, mc_eid, 플랫폼 비공개 필드. 물음표를 지워도 페이지는 자주 열립니다.
iOS 17부터 Safari의 고급 추적 및 지문 방지(Link Tracking Protection)는 메일, 메시지, 사생활 보호 브라우징에서 추적용으로 판단한 URL 파라미터를 뺍니다. Apple의 공개 표현은 식별 부분을 제거하고 나머지는 열리게 둔다는 것입니다. AppsFlyer의 LTP 테스트 공지는 gclid, fbclid는 빠지고 UTM은 보통 남는다고 적습니다. Apple은 전체 제거 목록을 공개하지 않으며, 커뮤니티 목록은 시스템 버전에 따라 바뀝니다. 그러므로 「이 아이폰이 click ID를 뗐다」를 「모든 채널이 안전하다」로 읽으면 안 됩니다. 카카오톡, 슬랙, 일반 Safari 창, 티켓에 직접 붙인 문자열은 그 일을 대신하지 않습니다.
잔여는 어느 채널에 남나
파라미터가 주소창을 떠나면 검색되는 텍스트, 아카이브되는 첨부, 또는 다음 요청의 Referer가 됩니다.
채팅 창은 「다시 찾을 수 있게」 설계됩니다. 완전한 캠페인 링크를 채널에 붙이면 본문, 클라이언트 캐시, 서버 검색 인덱스가 각각 한 부를 갖습니다. 석 달 뒤 utm_campaign이나 fbclid로 검색해도 그때 메시지가 올라올 수 있습니다. 전달 취소는 상대가 이미 읽은 푸시나 동기화된 이력을 보통 지우지 못합니다. 동료를 못 믿어서가 아닙니다. 동료에게 필요한 것은 랜딩 페이지이지, 그 광고 클릭의 토큰이 아닙니다.
티켓과 메일은 링크를 증거로 보관합니다. 이용자가 보낸 「안 열리는 이벤트 페이지」를 상담원이 그대로 붙이면, 상담원·상위 티켓·외주 조회 권한이 완전한 URL을 다시 엽니다. 앨범의 전체 화면 캡처, 회의 녹화 속 주소창은 또 다른 픽셀 채널입니다. 키를 채팅에 넣으면 안 되는 이유는 클라우드 환경변수가 유출된 뒤, 새 키를 채팅창에 다시 보내면 안 되는 이유에 적었습니다. 추적 파라미터의 위험은 더 가볍습니다. 잔여 형태는 같습니다. 채널이 저장하는 것은 붙여 넣은 문자열 전체입니다.
물음표 뒤 필드는 일반 텍스트로 남습니다. 나중에 들어온 사람도 검색할 수 있습니다.
상대 사이트나 내가 운영하는 리버스 프록시는 TLS가 끝난 뒤에도 전체 URL을 기록할 수 있습니다.
기본 정책은 예전보다 엄격합니다. 그래도 모든 하위 사이트가 호스트명만 받는다고 가정할 수는 없습니다.
접속 로그 층은 HTTPS 구호에 가려지기 쉽습니다. 전송 암호화가 막는 것은 중간자가 회선에서 평문을 읽는 일입니다. 원본 서버와 내가 제어하는 리버스 프록시는 TLS가 끝난 뒤에도 요청 줄을 봅니다. 이 층에서 쿼리 파라미터는 경로와 다르지 않습니다. 둘 다 HTTP 요청 안에 있습니다. 프래그먼트는 없습니다. 그러므로 「이미 HTTPS를 쓴다」는 ?fbclid=를 접속 로그에서 지우지 못합니다.
Referer는 세 번째입니다. 요즘 브라우저의 기본값은 Referrer-Policy: strict-origin-when-cross-origin입니다. 동일 출처 요청은 쿼리가 포함된 전체 URL을 보내고, 교차 출처는 보통 출처만 보냅니다. 더 옛 기본값 no-referrer-when-downgrade는 교차 사이트에서도 전체 주소를 보냈습니다. web.dev의 Referer 실무 안내는 「교차 사이트에서 경로와 query가 새는 일」을 분명한 위험으로 적습니다. 모든 하위 페이지에 엄격한 정책을 요구할 수는 없습니다. 다시 보내기 전에 추적 파라미터를 떼는 편이, 상대 사이트가 「출처를 안 남긴다」고 기대하는 것보다 확실합니다.
이 글이 다루는 것은 「추적 식별자를 새 채널에 한 부 더 복사하지 말라」입니다. 「채팅을 지우면 이미 나간 파라미터를 회수한다」가 아닙니다. 상대는 이미 열었거나, 캡처했거나, 즐겨찾기에 넣었을 수 있습니다.
남길 것, 뗄 것
물음표 뒤를 한꺼번에 지우면 상품 페이지, 검색 결과, 페이지네이션이 깨집니다. 업무와 추적을 나눠야 합니다.
남겨야 하는 것은 페이지를 올바른 자원으로 보내는 필드입니다. id=128은 상품을 가리키고, q=는 검색어이며, page=2는 페이지네이션이고, YouTube의 t=는 타임스탬프입니다. 집행 라벨이 아닙니다. 「물음표 이후를 전부 지운다」는 소셜 공유 링크에서는 자주 통합니다. 커머스와 관리자 딥링크에서는 홈으로 떨어지거나 오류가 납니다.
떼야 하는 것은 유입 출처를 설명하거나, 한 번의 클릭을 식별하거나, 공유자를 가리키는 필드입니다. utm_* 전체, 흔한 click ID, 그리고 커머스·콘텐츠 플랫폼의 기여 필드 — spm, mc_eid, igshid, refer_share_id — 가 여기 들어갑니다. 무엇을 열지는 정하지 않습니다. 이번 열림을 누구 공으로 적을지만 정합니다. 쿠팡·네이버·인스타 공유 링크에서 자주 보이는 긴 꼬리가 이 층입니다.
판단이 서지 않으면 좁은 규칙부터 갑니다. utm_*와 흔한 click ID만 빼고, 같은 자원이 열리는지 봅니다. 그다음에 분석 필드와 플랫폼 기여를 더 뗄지 정합니다. 구호가 아니라, 결과로 대조할 수 있는 두 단계입니다.
id, q, 페이지네이션, 타임스탬프는 보통 어느 자원을 열지를 정합니다.
spm, igshid, mc_eid, refer_share_id는 공유 경로나 공유자를 가리키는 경우가 많습니다.
UsePwd의 URL 클리너는 이 경계를 현재 탭에서 처리합니다. 기본은 utm_*, 흔한 Click ID, 커머스·콘텐츠 플랫폼 기여 필드 일부를 빼고, pathname과 id, q는 남깁니다. 잘못 지울까 걱정되면 보수 모드를 켭니다. UTM과 Click ID만 대상입니다. 한 줄에 하나, 최대 100개이며, 한 줄이 8 KB를 넘으면 건너뜁니다. 결과 옆에는 이번에 실제로 뺀 파라미터 이름이 나와, 「깨끗하다」는 말 대신 그 자리에서 확인할 수 있습니다. 파싱과 제거는 현재 탭에서 끝나며, 원문은 HTTP 요청 본문으로 나가지 않고 방문 분석에도 쓰이지 않습니다. 가입 없이 바로 사용합니다.
그 자리에서 제거를 확인하는 법
목표는 「세상 누구도 못 본다」를 증명하는 것이 아닙니다. 남은 것이 업무 파라미터이고, 빠진 것이 추적 필드이며, 이번 입력이 요청 본문에 들어가지 않았음을 보는 것입니다.
-
01
가짜 더러운 링크를 준비한다
실제 캠페인이나 이용자의 공유 링크는 쓰지 마세요. 예:
https://www.example.com/item?id=128&utm_source=kakaotalk&utm_medium=social&utm_campaign=sep-sale&fbclid=IwAR0example&igshid=YmMyMTA2M2Y.id=128은 남아야 한다는 것을 알아두면 됩니다. -
02
URL 클리너를 열고 입력을 비운다
URL 클리너로 들어가 「URL 클리너」 모드인지 확인합니다. 페이지는 열자마자 쓸 수 있습니다. 이전 붙여넣기와 섞이지 않게 필요하면 입력란을 먼저 지웁니다.
-
03
전체 정리를 돌린 뒤 목록을 본다
붙여 넣고 링크 정리를 누릅니다. 결과에는
id=128이 남아야 하고, 옆 제거 목록에는utm_source,utm_medium,utm_campaign,fbclid,igshid가 나와야 합니다. 업무 파라미터가 없거나 추적 필드가 남아 있으면 아직 보내면 안 됩니다. -
04
보수 모드를 한 번 더 대조한다
보수 모드는
utm_*와 흔한 Click ID만 뺍니다. 예시에 커머스 기여 필드가 더 있으면 전체 정리와 보수 모드의 목록 개수가 달라집니다. 두 모드 모두 경로와 필요한 업무 query는 남깁니다. 그 차집합으로 「좁은 규칙으로 충분한지」를 판단합니다. -
05
네트워크 패널에서 원문이 나가는지 본다
F12를 누르고 네트워크로 전환합니다. 정리하는 동안 더러운 링크 전체를 요청 본문으로 보내는 인터페이스는 보이지 않아야 합니다. 운영 환경에는
/tj/로 가는 방문 분석이 있을 수 있습니다. 페이로드는 페이지와 버튼 이름이며, 붙여 넣은 URL이 아닙니다. 로컬 미리보기는 분석을 보내지 않습니다.
이 단계는 보안 안내와 맞물립니다. 보안 안내는 평문이 브라우저를 떠나는지를 답하고, 이 글은 쿼리 파라미터만 갈라 다시 보낼 때 따라가는 층을 적습니다. 두 페이지 모두 클리너 폼을 대신하지 않습니다. 티켓 본문에 전화번호, 주민등록번호 형태, API Key가 흩어져 있으면 같은 페이지의 민감정보 마스킹으로 이 기기에서 가릴 수 있습니다. 흔한 형식을 인식하며 하나도 안 빠뜨린다고 약속하지 않습니다. 보내기 전에 한 번 더 보세요. UsePwd는 GDPR이나 개인정보 보호법 인증을 주장하지 않습니다.
정리가 막지 못하는 일
「추적 파라미터를 뗐다」를 「공유가 익명이다」로 읽으면, 똑같이 확인할 수 있는 경계를 놓칩니다.
먼저 정리한 뒤 보내기에 맞는 것은, 공개하거나 여러 사람에게 줄 페이지입니다. 캠페인 랜딩, 상품 링크, 소셜 공유, 티켓에 붙일 「이용자가 보낸 주소」입니다. 일회성 비밀 채널로 쓰면 안 됩니다. 비밀 전체, 교체한 API Key, 짧은 수명 비밀번호는 일회용 링크로 가세요. 평문은 이 기기에서 AES-256-GCM으로 암호화하고, 번호는 ?id=, 키는 # 뒤에 두며, 만들기와 읽기 모두 가입 없이 바로 사용합니다. 서버는 암호문만 잠시 보관합니다. 두 도구를 같은 보장으로 섞지 마세요.
파일 백업은 세 번째 경로입니다. 파일 하나 5 GB 이하의 로컬 암·복호화는 파일 암호화로 가며, 출력은 .lock / .enc이고 파일은 기본으로 업로드되지 않습니다. 비밀번호 자체 강도는 비밀번호 생성기에서 6–128자로 만든 뒤, 비밀번호 강도 검사로 이 기기에서 강도를 보고 페이지와 함께 제공되는 공개 유출 약한 비밀번호 목록과 대조합니다. 검사는 전역 조회가 아니며, 검사할 비밀번호는 업로드되지 않습니다. 이 페이지들도 이 글과 같이 가입 없이 바로 사용하며, 상단 오른쪽에는 언어 전환만 있습니다.
다시 보내기 전에, 물음표 뒤가 가져가는 것이 캠페인 라벨인지, 클릭 토큰인지, 공유자 식별자인지를 보세요. 이 셋을 가를 수 있어야 「정리했으니 익명이다」라는 보증으로 읽히지 않습니다.
다시 보낼 때 자주 묻는
아래 네 가지는 이 글의 경계만 답합니다. 클리너 페이지의 버튼 설명을 반복하지 않습니다.
id, q, 페이지네이션이 있는 업무 링크는 안 됩니다. 추적 필드만 떼세요.
읽고 나서 제거 목록을 확인하세요
글이 답하는 것은 「다시 보낼 때 추적 파라미터가 무엇을 함께 가져가는가」입니다. 실제로 빠진 파라미터 이름을 그 자리에서 보려면 URL 클리너를 열면 되고, 먼저 가입할 필요는 없습니다.