광고 심사 앞두고 여러 사이트를 한꺼번에 정비한 오전
목차
오늘 오전은 작업 목록만 보면 산만해 보이지만, 실은 하나의 맥락이 거의 모든 커밋을 관통하고 있었다. 운영 중인 사이트 여러 곳이 동시에 광고 심사 큐에 올라가 있는 상황이었고, 공통 결함을 빠르게 일괄 처리하는 방식으로 진행했다.
심사 게이트가 요구하는 세 가지
광고 심사에서 자주 걸리는 항목은 경험상 거의 고정돼 있다.
| 항목 | 문제 | 이번에 한 대응 |
|---|---|---|
| 동의 관리(CMP) 미설치 | GDPR/CCPA 미준수로 광고 미게재 판정 | FundingChoices 스니펫을 레이아웃 상단에 일괄 삽입 |
| 필수 페이지 누락 | /contact, /about 없으면 정책 위반 | 사이트별 contact/about 페이지 신규 생성 |
| Core Web Vitals 미달 | LCP 7초대는 즉시 감점 요인 | 폰트 논블로킹 + 히어로 이미지 preload 처리 |
CMP부터 잡았다. 여러 사이트의 레이아웃 파일(Base.astro, Dex.astro)에 FundingChoices 스니펫을 AdSense 로더 바로 뒤에 추가했다. 퍼블리셔 ID는 공통이지만 삽입 파일이 사이트마다 달라서, 코드는 동일한데 커밋이 여러 개로 쪼개졌다. 같은 작업을 세 번 반복한 셈이다.
성능이 심사에 직결된다
/contact, /about을 찍어내면서 동시에 LCP를 봤더니 kfoodlab이 7.0초였다. 원인은 명확했다 — 렌더 블로킹 폰트와 히어로 이미지 lazy load. 픽스도 짧다.
<!-- 폰트 블로킹 제거 + 히어로 이미지 조기 로드 -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preload" as="image" href="/hero.webp" fetchpriority="high" />
같은 패턴을 vtuberprofile에도 똑같이 적용했다. 여기는 nav 아이템이 줄 바꿈하면서 CLS까지 터지고 있었는데 white-space: nowrap 한 줄로 정리됐다. 성능 작업은 이 순간이 제일 보람 있다 — 원인이 명확하고 픽스가 짧고 수치가 즉시 반응한다.
심사 맥락 밖에서 끼워 넣은 작업들
메인 흐름 사이사이에 다른 커밋들도 올라갔다.
- 포트폴리오 접근성: 날짜 텍스트 색상이 WCAG 명암비 기준에서 걸렸다.
#666→#9a9a9a로 올리고, 뮤트 텍스트도 같은 값으로 맞췄다. 히어로 섹션 아웃라인도 1px에서 2px로 키워 포커스 가시성을 확보했다. 그리고 소셜 카드용 og.png가 아예 없던 걸 이번에 추가했다. - blindboxdex 봇: DB에
official_image_url이 NULL인 피규어가 쌓여 있었다. 봇에--backfill-nulls플래그를 붙여 일괄 채울 수 있게 했고, 프론트 컴포넌트들에도 이 이미지를 실제로 노출하도록 연결했다. FigureCard, 피규어 상세, 시리즈 상세 세 곳 모두. - 정책 페이지 국제화: correction-request 페이지가 기본 언어에만 있었는데 8개 로케일 전체로 확장했다.
- 배포 버그: standalone 빌드에서
public/디렉터리가 복사 안 되는 문제가 있었다.ads.txt를 포함한 정적 자산들이 404를 뱉고 있었는데, 빌드 스크립트에 복사 명령 추가로 해결됐다. - 통계 파싱 버그: 로그 로테이트 환경에서 최신 조각 파일 하나만 읽어 PV가 초기화처럼 보이는 버그가 있었다. 조각 전부를 합산하도록 수정했다.
- 한 사이트 광고 제거: 반대로 법률 렌더러 쪽은 심사 대상이 아니라 AdSense 로더와 CMP 스니펫을 걷어냈다. 사이트 성격에 따라 광고를 다는 방향과 제거하는 방향이 동시에 진행된 셈.
문서로 마무리
작업 마지막에 신규 사이트 온보딩 문서에 광고 심사 통과 체크리스트를 새로 추가했다. 이번에 여러 사이트에서 반복한 패턴을 문서화해서 다음에 같은 절차를 처음부터 다시 떠올리지 않아도 되도록. 서버 인벤토리 IP 매핑 오류도 이 참에 수정했다 — 특정 사이트들이 어느 서버에서 서빙되는지 잘못 기록돼 있었다.
한 시간에 커밋이 많이 나온 건 사이트 여러 개를 동시에 건드려서다. 내용 자체는 복잡하지 않고, 광고 심사라는 하나의 데드라인이 분산된 작업들을 묶어 준 구조였다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.