imhamburger 님의 블로그
UTM 파라미터 본문
그로스 마케터 시절, 다양한 채널에서의 광고 성과 측정을 위해 UTM 파라미터를 적극 활용했다. 특히 퍼포먼스 마케팅 캠페인, 리타겟팅 광고, A/B 테스트 등에서 파라미터 기반 유입 분석을 통해 예산 효율성과 유입 품질을 모니터링하고 최적화하는 데 기여했다.
데이터 엔지니어로 커리어를 전환한 이후에는 UTM 파라미터가 데이터 흐름의 핵심 포인트로 작용함을 더욱 실감하게 되었다. 로그 데이터의 품질 관리, 분석 가능한 테이블 구성, 파이프라인 설계 측면에서 정확하게 치환된 UTM 값의 중요성을 뼈저리게 느끼고 있다.
UTM 파라미터란?
UTM(Urchin Tracking Module) 파라미터는 마케팅 캠페인 또는 외부 유입 경로 분석을 위해 URL에 붙이는 추적 정보이다. GA(Google Analytics) 또는 BigQuery 등 분석 도구에서는 이 정보를 기반으로 유입 데이터를 분류하고 분석할 수 있다.
예시 URL:
https:/abc.com/page?utm_source=instagram&utm_medium=display&utm_campaign=spring2024&utm_content=banner1
파라미터 | 의미 |
utm_source | 유입 매체(예: google, instagram) |
utm_medium | 유입 유형(예: display, cpc) |
utm_campaign | 캠페인 이름 |
utm_content | 광고 콘텐츠 식별자 (A/B 테스트 등) |
Meta 광고에서의 템플릿 변수 치환
Meta(Facebook, Instagram) 광고 플랫폼에서는 아래와 같이 템플릿 변수를 설정하여 자동으로 광고/캠페인별 UTM 파라미터를 동적으로 생성할 수 있다.
예시 템플릿 설정:
utm_source={{site_source_name}}&utm_medium=display&utm_campaign={{adset.name}}&utm_content={{ad.name}}
변수명 | 설명 |
{{site_source_name}} | 유입 플랫폼 이름 (facebook, instagram 등) |
{{adset.name}} | 광고 세트 이름 |
{{ad.name}} | 광고 이름 |
그런데 간혹 데이터가 {{adset.name}} 변수명 그대로 찍히는 경우가 있다.
치환 실패 원인 및 문제 사례
정상 작동 조건
- 템플릿은 "링크 클릭 광고" 설정의 URL 파라미터 항목에 삽입해야 한다.
- "웹사이트 URL" 필드에는 템플릿을 삽입해도 치환되지 않는다.
치환 실패하는 주요 사례
원인 | 설명 | 결과 |
템플릿을 "웹사이트 URL"에 삽입 | Meta 정책상 이 필드는 치환 대상아님 | {{ad.name}} 등이 그대로 노출됨 |
사용자가 링크를 복사해 공유함 | 복사된 URL에 템플릿 그대로 포함 | 치환 안 된 파라미터가 유입됨 |
앱 인앱 브라우저 경유 | Instagram, Messenger 등에서 공유 또는 열람 | 리디렉션 시 치환 누락 가능 |
Meta 측 치환 실패 | 일시적 버그, 로딩 지연 등 | 간헐적 치환 실패 발생 |
유입 데이터를 나는 빅쿼리에서 확인했지만, 굳이 빅쿼리가 아니여도 확인할 수 있다.
브라우저에서 광고 클릭 후 실제 유입된 URL을 확인하여 템플릿 치환 여부를 검증할 수 있다.
확인 방법 (Chrome 기준):
- 페이지 우클릭 → "검사" 또는 F12
- 상단 메뉴에서 "Network" 탭 클릭
- 페이지 로드 후 Doc 항목 클릭
- 오른쪽 "Headers" 탭에서 Request URL 확인 → utm 값 확인 가능
위처럼 Request URL을 확인해보았을 때 source={{site_source_name}} 변수명이 그대로 들어간 것을 알 수 있다.
그리고 드는 무서운...생각...
UTM 파라미터는 URL에 포함되어 전달되기 때문에, 누구나 마음대로 수정이 가능하다. (장난치지 말자...)
악용 사례:
- 경쟁사가 utm_campaign에 부정적인 단어 삽입
- 봇이 무작위 파라미터로 접근 → 분석값 오염
- 사용자 장난으로 부정확한 데이터 생성
그래서...
대응방안으로는 뭐가 있는지 찾아보았다.
전략 | 설명 |
화이트리스트 필터링 | BigQuery/ETL 파이프라인에서 허용된 utm 값만 수집 |
URL 리디렉션 관리 | 직접 utm 포함 URL 노출 대신 내부 링크 또는 short URL 사용 |
비정상값 탐지 로직 구성 | 정기적으로 '{{' 또는 미등록된 캠페인명 탐지 |
유입 referrer 확인 | Instagram, Kakao 등 앱에서의 유입 여부 파악 |
GA 세그먼트 설정 | utm_campaign에 이상값 포함 시 별도 세그먼트로 분리 |
Shortener 를 사용할 때 주의사항이 있다.
일부 Shortener나 리디렉션 서버가 ? 이후의 파라미터를 제거하는 경우, UTM이 유실될 수 있으며,
카카오톡 공유 링크, 인앱 브라우저 등은 중간에 리디렉션을 여러 번 거치면서 파라미터가 잘리는 경우도 존재한다.
결론
- UTM 파라미터는 마케팅 분석에 매우 유용하지만, 유입 방식에 따라 치환 실패나 조작 가능성이 존재한다.
- 정기적인 로그 검수와 파라미터 관리 정책 수립이 중요하며, 이상값 필터링 로직은 꼭 포함하는 것이 권장된다.
'데이터 엔지니어링' 카테고리의 다른 글
데이터 엔지니어링 - 삭제된 데이터를 어떻게 DW에 반영할까? (0) | 2025.03.05 |
---|---|
데이터 엔지니어링 - 초당 수천만개의 로그데이터가 생긴다면? (0) | 2025.03.03 |
데이터 엔지니어링 - DBT 연습해보기 (Feat.Bigquery) (0) | 2025.02.28 |
6개월간의 데이터엔지니어 부트캠프를 마치며 (3) | 2025.01.03 |
데이터엔지니어 부트캠프 - 파이널 프로젝트 (12월의 기록) (1) | 2024.12.28 |