정적 블로그에 Google Analytics를 붙이는 일은 기술적으로 어렵지 않습니다. 스크립트 한 줄을 head에 넣으면 끝납니다. 하지만 광고와 글로벌 트래픽까지 생각하면 질문이 달라집니다.
언제 스크립트를 로드할 것인가. 사용자가 거부하면 무엇을 하지 않을 것인가. 개인정보처리방침에 무엇을 설명할 것인가.
이 세 가지를 먼저 정하지 않으면 나중에 AdSense를 붙일 때 다시 고쳐야 합니다. 특히 유럽경제지역, 영국, 스위스 방문자를 대상으로 개인화 광고를 제공하려면 Google의 CMP 요구사항을 봐야 합니다.
결론
작은 정적 블로그라면 처음에는 보수적으로 시작하는 편이 낫습니다.
| 단계 | 권장 |
|---|---|
| GA4만 사용 | 분석 동의 후 로드 |
| AdSense 심사 전 | 개인정보처리방침에 분석/광고 예정과 처리 항목 설명 |
| AdSense 승인 후 | 광고 배치 정책과 동의 요구사항 재검토 |
| 글로벌 트래픽 확대 | Google 인증 CMP 도입 검토 |
핵심은 “쿠키 배너를 예쁘게 만든다”가 아닙니다. 사용자의 선택이 실제 스크립트 로딩과 연결되어야 합니다.
정적 사이트도 동의 상태가 필요하다
서버가 없다고 해서 개인정보 이슈가 사라지지는 않습니다. GA4는 브라우저에서 실행되는 스크립트이고, AdSense도 광고 요청을 위해 브라우저 환경에서 동작합니다.
정적 사이트에서 관리할 수 있는 최소 상태는 다음 정도입니다.
analytics_consent = granted | denied | unset
사용자가 동의하면 GA4 스크립트를 로드합니다. 거부하면 로드하지 않습니다. 이 선택은 브라우저 저장소에 저장할 수 있지만, 개인정보처리방침에는 “분석 동의 선택을 저장한다” 정도로 설명하면 충분합니다. 굳이 localStorage 같은 구현 단어를 전면에 내세울 필요는 없습니다.
Google Consent Mode는 무엇을 해결하나
Google Consent Mode는 사용자의 동의 상태를 Google 태그에 전달하는 방식입니다. 동의가 없을 때와 있을 때 태그 동작을 다르게 만들 수 있습니다.
정적 블로그에서 중요한 건 다음 두 가지입니다.
| 동의 상태 | 처리 방향 |
|---|---|
| 동의 전 | 분석/광고 저장소를 거부 상태로 초기화 |
| 동의 후 | 필요한 Google 태그를 허용 상태로 업데이트 |
예시는 이런 모양입니다.
<script>
gtag("consent", "default", {
analytics_storage: "denied",
ad_storage: "denied",
});
</script>
실제 구현은 사이트 구조에 맞춰야 합니다. 중요한 것은 사용자가 선택하기 전에 분석/광고 목적 저장이 먼저 시작되지 않게 하는 것입니다.
AdSense는 GA4보다 요구사항이 더 크다
GA4는 분석 도구입니다. AdSense는 광고 제품입니다. 광고는 개인화, 광고 기술 제공업체, 쿠키, 지역별 동의 요구사항과 연결됩니다.
Google AdSense Help는 EEA와 UK에서는 2024년 1월 16일부터, Switzerland에서는 2024년 7월 31일부터 개인화 광고를 제공할 때 Google 인증 CMP와 IAB TCF 통합이 필요하다고 설명합니다.
이 말은 작은 블로그에도 영향을 줍니다. 한국어 트래픽만 거의 있는 사이트라면 당장 체감이 작을 수 있습니다. 하지만 영어 글을 만들고 글로벌 트래픽을 받겠다면 AdSense 적용 시점에 CMP를 검토해야 합니다.
| 상황 | 처리 |
|---|---|
| 한국어 중심, GA4만 사용 | 자체 동의 배너로 시작 가능 |
| 영어 글 유입 확대 | AdSense 전 CMP 후보 확인 |
| EEA/UK/Switzerland 개인화 광고 | Google 인증 CMP 필요 |
| 동의 구현이 불확실 | 개인화 광고보다 제한적 설정부터 검토 |
법률 자문이 필요한 영역은 별도로 확인해야 합니다. 기술 구현만으로 모든 개인정보 법령 준수가 자동 보장되지는 않습니다.
개인정보처리방침에는 무엇을 써야 하나
작은 정적 블로그라면 과장된 법률 문장보다 실제 처리 내용을 쓰는 편이 낫습니다.
포함할 항목은 다음입니다.
[ ] 사이트가 직접 회원가입을 받지 않는지
[ ] 문의 시 이메일 등 사용자가 보낸 정보만 처리하는지
[ ] GA4 사용 여부와 처리될 수 있는 기술 정보
[ ] AdSense 사용 또는 예정 여부
[ ] 쿠키 또는 유사 기술 사용 가능성
[ ] 사용자가 동의를 거부하거나 변경할 수 있는 방법
[ ] 외부 서비스 제공자와 정책 링크
“개인정보를 전혀 수집하지 않습니다”라고 쓰는 것은 위험할 수 있습니다. GA4, AdSense, 호스팅 로그, 문의 이메일이 있으면 기술적 정보나 사용자가 보낸 정보가 처리될 수 있습니다.
광고 배치까지 같이 생각해야 한다
AdSense는 동의만 맞추면 끝나는 제품이 아닙니다. 광고 배치 정책도 중요합니다. Google은 광고가 콘텐츠나 메뉴처럼 오해되게 배치되는 것을 금지합니다. 광고 클릭을 유도하는 문구도 금지됩니다.
그래서 블로그 UI를 만들 때부터 광고 위치를 조심해야 합니다.
| 피해야 할 배치 | 이유 |
|---|---|
| 제목 바로 아래에 콘텐츠처럼 보이는 광고 | 광고와 본문 구분이 어려움 |
| 버튼/탭/목록 옆에 붙은 광고 | 실수 클릭 유도 가능 |
| “도움이 되었다면 광고 클릭” 문구 | 정책 위반 |
| 팝업/강제 이동형 광고 | 사용자 경험과 정책 리스크 |
작은 블로그는 승인 전에는 광고 UI를 넣지 않는 편이 낫습니다. 승인 후에도 본문 흐름을 깨지 않는 위치부터 테스트해야 합니다.
운영 체크리스트
[ ] GA4 스크립트는 동의 후 로드된다
[ ] 거부 시 분석 스크립트가 로드되지 않는다
[ ] 개인정보처리방침에 GA4와 AdSense 계획이 설명되어 있다
[ ] 동의 상태를 다시 바꿀 수 있는 방법이 있다
[ ] AdSense 승인 후 CMP 필요 지역을 확인한다
[ ] 광고 배치는 콘텐츠와 명확히 구분한다
정적 사이트는 단순합니다. 그래서 더 명확해야 합니다. 서버가 없다는 말은 책임이 없다는 뜻이 아니라, 브라우저에서 일어나는 일을 더 조심스럽게 설계해야 한다는 뜻입니다.