AnalyticScan
EN
← 글 목록

2026년 10월 22일·3분 읽기

URL에 이메일·전화번호가 들어갈 때 — GA4의 PII 문제

페이지 경로 보고서에 @가 섞인 주소가 보입니다. Google 정책이 보내지 말라고 정해 둔 데이터인데 GA4는 아무 경고도 하지 않습니다. 확인하는 법, 수집을 막는 법, 이미 들어온 것을 지우는 법을 순서대로 정리했습니다.

GA4데이터 품질설정점검 항목PR-04

증상

페이지 경로 보고서를 내리다 보면 이런 줄이 섞여 있습니다.

/password/reset?email=hong%40example.com
/order/lookup?phone=010-1234-5678
/signup/done?u=kim@example.com&ref=kakao

보고서는 이 줄을 다른 줄과 똑같이 취급합니다. 경고도, 배지도 없습니다. 방문자 한 명의 이메일 주소가 다른 페이지 경로와 나란히, 조회 권한이 있는 모든 사람에게 보이고 있을 뿐입니다.

왜 그냥 넘길 수 없나

Google은 자사가 개인 식별 정보(PII)로 인식할 수 있는 데이터를 애널리틱스로 보내지 말라고 정책으로 정해 두고 있고, 이메일 주소와 개인 휴대전화 번호를 그 예로 직접 들고 있습니다. 즉 데이터 품질 문제이기 전에 정책 위반 상태입니다.

Google 도움말은 위반 시 어떤 제재가 따르는지까지는 적지 않습니다. 그래서 "계정이 삭제된다"는 식으로 겁을 줄 생각은 없습니다. 다만 우리 점검에서 PR-04는 치명 항목 4개 중 하나입니다 — 다른 29개 항목이 아무리 좋아도 이 항목이 걸리면 등급 상한이 C가 됩니다. 되돌리는 비용이 가장 비싼 문제라서 그렇습니다. 잘못 수집된 매출은 다음 달부터 고치면 되지만, 한번 나간 개인정보는 나갔습니다.

어디서 새는가

거의 항상 사람이 아니라 구조가 흘립니다.

  1. GET으로 제출되는 폼. 검색·조회·로그인 폼이 method="get"이면 입력값이 그대로 쿼리스트링에 붙고, 그 URL이 page_view와 함께 전송됩니다. 가장 흔합니다.
  2. 인증 메일의 링크. 비밀번호 재설정·회원가입 확인 메일이 ?email=이나 토큰과 함께 이메일을 달고 옵니다.
  3. 비회원 주문 조회. 주문번호와 전화번호를 URL로 받는 페이지가 통째로 들어옵니다.
  4. 외부 서비스의 리다이렉트. 상담 예약·설문 도구가 돌려보내는 주소에 연락처가 실려 있는 경우입니다.

GA4에서 확인

1) 검색어를 두 번 넣는다. 보고서에서 '페이지 경로 및 쿼리 문자열' 측정기준을 열고 @로 검색하세요. 그리고 한 번 더 %40으로 검색하세요. URL에 인코딩돼 들어온 이메일은 @%40으로 바뀌어 있어서 첫 번째 검색을 그대로 빠져나갑니다. 실제로 놓치는 대부분이 이 쪽입니다.

2) 전화번호를 찾는다. 같은 측정기준에서 010으로 검색합니다. 해외 번호까지 보려면 +82·tel·phone 같은 파라미터 이름으로도 훑어 보세요.

3) 파라미터 이름으로 훑는다. 값이 아니라 키를 봅니다. email=, mail=, phone=, mobile=, name=, uid=가 붙은 경로가 있으면, 오늘 그 값이 비어 있었을 뿐 언제든 채워질 수 있는 자리입니다.

수집을 막는다

세 가지가 있고, 순서가 중요합니다.

① 사이트에서 안 보낸다(근본). 폼을 POST로 바꾸고, 메일 링크의 식별자를 일회용 토큰으로 바꾸고, 조회 페이지는 입력값을 주소에 남기지 않도록 고칩니다. 이것만 유일하게 GA4 밖의 다른 수집 도구·서버 로그·리퍼러까지 함께 막아 줍니다.

② 태그에서 지운다. GTM을 쓴다면 GA4 태그가 page_location을 보내기 전에 해당 쿼리 파라미터를 제거하도록 변수를 고칩니다. 사이트 수정이 며칠 걸릴 때 오늘 할 수 있는 조치입니다.

③ GA4에 지우게 한다. 웹 데이터 스트림에는 수집 전에 이메일 패턴과 지정한 쿼리 매개변수를 지우는 설정이 있습니다(관리자 > 데이터 수집 및 수정 > 데이터 스트림 > 웹 스트림 선택 > 이벤트 > 데이터 삭제). Google 문서 기준으로 이 기능은 이벤트를 수집하기 전에 평가하므로 지난 데이터에는 적용되지 않고, 웹 데이터 스트림에만 있습니다. 앱 스트림과 Measurement Protocol은 막아 주지 않습니다.

③만 켜고 ①을 미루는 선택이 제일 위험합니다. 개인정보는 여전히 사이트 주소에 실려 돌아다니고, GA4 한 곳에서만 안 보이게 된 것뿐입니다.

이미 들어온 데이터

관리자 > 데이터 수집 및 수정 > 데이터 삭제 요청에서 요청할 수 있습니다. Google 도움말에 따르면 처음 7일은 취소할 수 있는 유예 기간이고, 실제 처리에는 7~63일이 걸리며, 생성된 지 12일이 지난 데이터만 지울 수 있습니다. 오늘 들어온 줄을 오늘 지울 수는 없다는 뜻입니다.

그래서 순서는 언제나 수집을 먼저 막고, 그다음에 삭제를 요청하는 것입니다. 반대로 하면 삭제가 처리되는 동안 같은 데이터가 계속 쌓입니다.

그럼 진단 도구는요

이 글을 여기까지 읽었다면 당연히 물어야 할 질문입니다. AnalyticScan의 PR-04 검사는 GA4에서 페이지 경로 및 쿼리 문자열 행을 최대 5,000개까지 읽어 이메일·전화번호 패턴에 걸리는 행이 몇 개인지만 셉니다. 매칭된 값 — 실제 이메일 주소나 전화번호 — 은 어디에도 저장하지 않고, 진단 결과에도 남지 않습니다. 남는 것은 "5,000행 중 47행에서 이메일 패턴 발견" 같은 건수뿐입니다.

한 가지 한계도 같이 밝힙니다. 전화번호 패턴은 한국 번호(010·+82) 기준이라 해외 번호는 이 검사로 잡히지 않습니다. 건수가 0으로 나와도 위의 수동 확인 세 가지는 한 번 해 보시는 편이 좋습니다.

한 줄 요약

URL은 방문자가 채우는 칸이 아니라 우리가 설계하는 칸입니다. @%40을 둘 다 검색해 보고, 하나라도 나오면 사이트에서 안 보내게 고치는 것이 먼저입니다. GA4에서 지우는 것은 그다음이고, 이미 들어온 데이터는 지우는 데 시간이 걸립니다.

다음 글을 메일로 받아보세요

실제 진단에서 나온 GA4 문제와 고치는 순서를 월 1~2회 보냅니다. 한 번의 클릭으로 언제든 그만 받을 수 있습니다.

수집·이용 및 수신 동의

보내는 모든 메일에 수신거부 링크가 들어 있습니다. 로그인 없이 링크 한 번이면 끝납니다.

수집 항목·목적·보유 기간은 개인정보처리방침에 적어 두었습니다 — 개인정보처리방침

관련 글