AdSense 도메인 심사 통과를 자동으로 감지해 알림 발송
목차
AdSense 사이트의 상태를 주기적으로 체크해서, READY 상태로 변할 때 자동으로 알려주는 시스템을 만들었다. 단순해 보이지만 운영 입장에서는 꽤 필요한 자동화였다.
수동 확인에서 자동화로
AdSense 계정 관리는 보통 어두운 터널을 헤매는 느낌이다. 도메인을 등록한 후 심사를 기다리는 동안, 대시보드에 몇 번씩 들어가서 상태를 확인해야 한다. "아직도 pending일까", "혹시 rejection됐나" 하면서. 특히 여러 도메인을 동시에 관리하거나, 동료들이 등록한 사이트들의 상태를 추적해야 할 때는 더 번거롭다.
이번 작업은 그 수동 확인을 없애는 게 목표였다. hedvion.com 같은 도메인이 READY 상태(즉, AdSense 심사를 통과하고 운영 가능한 상태)로 변경되면, 누군가 대시보드를 열어볼 필요 없이 자동으로 알림을 받는 방식이다.
설계와 구현
구현 방식은 꽤 전형적인 ops 패턴이다:
| 구성 요소 | 역할 |
|---|---|
_lib/adsense-status-check.py |
AdSense API 호출 → 도메인 상태 확인 → 변화 감지 → 알림 발송 |
_lib/cron-adsense-status-check |
정해진 시간마다 위 Python 스크립트 실행 |
Python으로 AdSense API와 상호작용하고, cron으로 주기적 실행을 관리하는 구조. 이 조합은 간단하지만 매우 견고하다. 특별한 CI/CD 인프라가 필요 없고, 기존 서버 환경에서 곧바로 구동할 수 있기 때문이다.
핵심 로직은 대략 이렇다:
- 마지막으로 저장한 상태(이전 상태)와 현재 API에서 가져온 상태를 비교
- 변화가 있으면 → 알림 (예: pending → READY)
- 상태 저장 (다음 체크 때 비교할 기준점으로 사용)
# 의사 코드 (실제 구현 아님)
previous_state = load_last_known_state('hedvion.com')
current_state = adsense_api.get_site_status('hedvion.com')
if previous_state != current_state:
notify(f"hedvion.com status changed: {previous_state} → {current_state}")
save_state(current_state)
상태 머신과 알림 타이밍
이 설계에서 주의할 점은, "어떤 상태 변화에 알림을 보낼 것인가"를 명확히 하는 것이다. AdSense의 site state는 보통 여러 단계가 있다:
- UNDER_REVIEW (심사 중)
- READY (준비 완료, 수익 창출 가능)
- SUSPENDED (정지)
- 기타
우리는 READY 상태로의 변화에만 집중했다. 즉, 누군가가 이 도메인을 등록해서 READY 상태를 기다리고 있다면, 그 순간을 놓치지 않겠다는 의도다. 이렇게 선택적으로 알림 조건을 정의하는 게, 노이즈 없이 중요한 사건만 캐치하는 방법이다.
만약 나중에 SUSPENDED 같은 중요한 상태 변화도 추적해야 한다면, 이 스크립트는 충분히 확장 가능한 구조를 가지고 있을 거다.
Cron 스케줄링의 현실성
cron으로 "30분마다" 또는 "매시간" 실행하는 방식은, 실시간은 아니지만 충분히 실용적이다. AdSense 상태 변화는 수초 단위로 일어나지 않으니까. 서버 부하도 최소한이고, 실패해도 다음 주기에 다시 시도된다.
다만 운영 입장에서 고민할 부분이 있다:
- 스케줄 간격: 너무 촘촘하면 API 할당량 낭비, 너무 길면 발견 지연
- 재시도 로직: API 일시 오류 시 어떻게 할 것인가
- 로깅: 상태 변화 이력을 어디에 남길 것인가
- 확장성: 도메인이 10개, 100개로 늘어나면 어떻게 관리할 것인가
이 커밋만으로는 모든 부분을 다룬 건 아니겠지만, 기초는 잘 다져진 것 같다.
배운 점과 다음 단계
이런 종류의 모니터링 시스템을 처음 만들 때는, "우리가 지금 놓치고 있는 게 뭐지?"를 먼저 파악하는 게 중요하다. 이 경우엔 "도메인 상태 변화를 발견하지 못하고 있다"는 문제였고, 그걸 자동화로 해결했다.
다음으로 고려할 수 있는 것들:
- 여러 도메인을 한 번에 관리하는 설정 파일
- 알림 채널 다양화 (Slack, 이메일, 대시보드 등)
- 알림 실패 시 재시도 메커니즘
- 모니터링 대시보드 (언제 마지막으로 체크했는지, 오류는 없었는지 등)
팀이 커지거나 운영 도메인이 많아질수록, 이런 자동화의 가치가 명확해진다. 사람이 놓칠 수 없도록, 시스템이 대신 보는 방식이다.
🛒 이 글과 어울리는 추천 상품
*위 링크는 쿠팡파트너스 활동의 일환이며, 일정액의 수수료를 제공받을 수 있습니다.
댓글 0
첫 댓글 달아줘.