AdSense 심사 통과율 높이려 제휴 스크립트를 헤드에서 제거했다
목차
AdSense 심사를 앞두고 index.html 에서 외부 헤드 스크립트 하나를 걷어냈다.
작업 자체는 아주 작은 변경이었다. 파일 하나, 몇 줄. 그런데 이 결정을 내리기까지 고민이 꽤 있었고, 그 고민을 정리해두는 게 나중에 비슷한 상황을 만날 때 도움이 될 것 같아서 남긴다.
왜 걷어냈나
AdSense 심사 과정에서 외부 광고/제휴 관련 스크립트가 <head> 에 함께 올라가 있으면 심사 자체가 막히는 경우가 있다. Google 입장에서는 자신들의 광고 시스템이 다른 광고·제휴 네트워크 코드와 동시에 노출되는 환경을 원하지 않기 때문이다. 정확히 말하면 정책 위반이라기보다는 "심사 단계에서는 깨끗한 상태로 들어오는 게 통과율이 높다"는 실전 경험에 가깝다.
해당 스크립트는 제휴 링크 추적 목적으로 <head> 상단에 삽입되어 있었다. 기능적으로는 문제가 없었고 실제 서비스 동작에도 영향이 없는 코드였지만, 심사관 입장에서 보면 "이 사이트, 다른 광고 네트워크 코드 달려 있네?" 로 읽힐 수 있다.
외부 스크립트와 심사의 관계
<head> 에 올라가는 외부 스크립트가 심사에 영향을 주는 이유를 정리하면 이렇다.
| 구분 | 심사 영향 | 비고 |
|---|---|---|
| 자체 JS (analytics, 기능) | 낮음 | 콘텐츠 품질 위주 심사 |
| 외부 광고 네트워크 스크립트 | 높음 | 중복 광고 정책 저촉 가능 |
| 제휴·트래킹 스크립트 | 중간~높음 | 심사관 재량, 케이스 바이 케이스 |
| SNS 임베드, 폰트 CDN | 낮음 | 일반적으로 무방 |
심사가 자동화되어 있다고 해도, 특정 도메인이나 스크립트 패턴을 필터링하는 로직이 있을 가능성이 높다. 그래서 "혹시 몰라서 걷어내는" 결정이 가장 리스크가 낮다.
실제 변경 패턴
<!-- Before: head 상단에 삽입되어 있던 형태 -->
<head>
<script src="https://[external-domain]/script.js" async></script>
<!-- 이하 메타, 타이틀 등 -->
</head>
<!-- After: 해당 라인 제거 -->
<head>
<!-- 메타, 타이틀 등 -->
</head>
변경은 단순하다. 심사가 끝나면 재삽입 여부를 다시 검토할 예정이고, 그때는 <head> 대신 <body> 최하단 혹은 특정 페이지에만 조건부로 넣는 방식을 고려하고 있다.
이런 결정을 내릴 때 팀 관점
혼자 운영하는 프로젝트라서 이번엔 내가 바로 결정하고 바로 머지했지만, 팀 프로젝트였다면 체크리스트가 필요한 변경이었다.
- 해당 스크립트가 수익·데이터 집계에 직접 연결되어 있는가
- 임시 제거 기간 동안 트래킹 공백이 생기는가
- 심사 완료 후 재삽입 일정과 담당자는 명확한가
- 제거 이후 배포 전에 실제 페이지 렌더링 확인했는가
작은 chore 커밋처럼 보여도, 수익과 연결된 외부 스크립트라면 "그냥 지웠다"가 아니라 "언제까지 왜 뺐고, 언제 다시 넣는다"는 맥락이 커밋 메시지나 PR 설명에 명시되어야 한다. 이번 커밋 메시지에 for AdSense review 를 붙인 것도 그 이유다. 나중에 히스토리를 볼 때 의도를 잃지 않기 위해서.
작은 변경일수록 의도를 기록하는 게 오히려 중요하다는 걸 이런 작업에서 다시 확인하게 됨.
끝.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.