알짜게시판

애드센스 충돌 문제 해결하기

블로그 운영자라면 한 번쯤은 경험하는 문제가 있습니다. 바로 애드센스 광고가 정상적으로 뜨지 않거나, 콘솔에 에러가 발생하는 경우입니다. 특히 postMessage와 관련된 오류는 자바스크립트 코드와 애드센스 광고 스크립트가 충돌해서 발생할 수 있습니다. 이 글에서는 그 원인과 해결 방법을 정리했습니다.


애드센스 광고가 뜨지 않는 이유

애드센스 광고가 표시되지 않는 원인은 크게 두 가지로 나눌 수 있습니다.

  • 애드센스 계정, 정책, 광고 재고 문제로 인해 광고가 차단된 경우
  • 자바스크립트 코드에서 애드센스가 보내는 메시지를 잘못 처리해 충돌이 생기는 경우

첫 번째는 구글의 정책이나 계정 상태를 점검해야 하고, 두 번째는 우리가 직접 수정할 수 있습니다.


postMessage와 애드센스

애드센스는 광고를 iframe으로 불러옵니다. 이때 광고 스크립트는 postMessage API를 통해 브라우저와 통신합니다. 문제는 페이지에 등록된 message 이벤트 리스너가 이 메시지를 무조건 처리하려고 하면, 비JSON 데이터JSON.parse 하면서 에러가 발생한다는 점입니다. 이 때문에 광고가 중단되거나 화면에 노출되지 않는 현상이 생깁니다.


최종 코드

이 문제를 피하기 위해 메시지 수신 코드를 간단하게 작성할 수 있습니다. 출처(origin)를 체크해서 내 사이트가 보낸 메시지만 처리하도록 하는 방식입니다.

function recvApp(e)
{
    if (e.origin && e.origin !== window.location.origin) {
        return;
    }

    var json = JSON.parse(e.data);

    ...
}

window.addEventListener('message', recvApp);

코드 설명

  • if (e.origin && e.origin !== window.location.origin)
    현재 페이지의 출처와 다른 곳에서 보낸 메시지는 모두 무시합니다.
  • JSON.parse(e.data)
    메시지를 JSON 객체로 변환합니다. 내 사이트에서 보낸 메시지만 처리하도록 제한했기 때문에 충돌을 줄일 수 있습니다.

정리

애드센스와 같은 광고 스크립트는 기본적으로 postMessage를 사용합니다. 따라서 메시지 처리 코드를 작성할 때는 반드시 출처를 확인하고, 내 사이트에서 보낸 메시지만 다루는 것이 안전합니다. 위와 같이 코드를 수정하면 애드센스와의 충돌로 인한 오류를 막고 광고 노출 문제도 예방할 수 있습니다.

로그인 후 댓글내용을 입력해주세요

제목 글쓴이 조회 날짜
기타 RustDesk 자체 서버 구축으로 공용 서버 로그인 문제 해결 15 1시간 전
리눅스 Dante SOCKS5 프록시 서버 구축 및 설정 187 26-04-10
윈도우 윈도우 실행파일(exe) 서비스 등록 자동화 쉽게 하는 방법 - NSSM 297 26-04-05
기타 CLIProxyAPI Windows 설치 가이드 423 26-04-04
워드프레스 그누보드7 데이터를 WordPress WXR로 변환하기 317 26-04-01
기타 Ollama 설치 경로 C드라이브 고정 문제 해결 및 드라이브 변경 방법 319 26-03-31
개발팁 Apache Access Log 기반 도메인별 방문자 카운터 구현 248 26-03-31
윈도우 ZImage AI 이미지 생성 환경 구축 방법 413 26-03-26
윈도우 파일 복사 후 실행 배치파일 - 에러 감지 포함 429 26-03-10
개발팁 네이버 검색 Open API 727 26-02-10
개발팁 네이버 검색광고 키워드 도구 API 검색 857 26-02-10
개발팁 MariaDB column_stats 테이블 오류 해결 방법 910 25-12-06
개발팁 PHP-FPM 에러 로그 실시간 모니터링 842 25-12-03
윈도우 윈도우11 업데이트 후 네트워크 드라이브 접근 불가 문제 해결 방법 1,581 25-11-24
개발팁 다국어 번역 함수 구현 방법 3,248 25-11-08
워드프레스 "치명적인 오류가 발생했습니다" 디버깅 가이드 14,054 25-10-31
리눅스 Apache 웹 로그 분석하기 – awk와 GoAccess 활용 18,635 25-10-28
길호넷 칼무리 - 외부 명령으로 캡처 자동화하기 1 40,328 25-10-14
윈도우 윈도11 강제업데이트 피하고 윈도10 계속 쓰기 41,799 25-10-12
리눅스 PHP 파일 업로드 용량 늘리기 56,705 25-10-03
개발팁 애드센스 충돌 문제 해결하기 74,688 25-09-20
파이썬 Python Playwright로 Edge 브라우저 제어하기 76,767 25-09-12
델파이 TDirectory.Delete 대신 CMD 으로 폴더 삭제 75,069 25-09-10
윈도우 Chrome 및 Edge를 TLS 1.2 모드로 실행 74,453 25-08-30
개발팁 애드센스 자동 광고 사용 시 빈 화면이 출력된다면? 159,333 25-06-20
윈도우 브라우저 환경설정 추출 145,938 25-06-18
워드프레스 xmlrpc.php 차단으로 보안 강화하기 137,063 25-06-05
델파이 폼이 모니터 한 가운데 있는 경우 자연스럽게 왼쪽으로 이동시키기 134,624 25-05-26
윈도우 WSH script registration is not valid. 134,847 25-05-23
워드프레스 제목 블록 기본값을 H5로 변경하는 방법 116,127 25-05-22
파이썬 동영상 특정 영역 모자이크(흐리게) 하기 47,844 25-04-30
파트너시스템회생의길결혼의정석바투어심리톡톡