자바스크립트로 구글 애드센스 빈광고 확인 방법

 

구글 애드센스의 경우 광고가 설치된 페이지의 콘텐츠가 부족하거나 하는 등의 이유로 광고를 표시하지 않는 경우가 있습니다. 예전에는 이런 경우 기본 광고를 표시하는 옵션을 제공했으나 지금은 이 옵션이 사라진 상태입니다. 그래서, 자바스크립트로 광고가 표시되지 않은 경우를 확인해 빈광고 처리를 하고싶어 검색을 해보았으나 설정오류나 정책위반과 같은 경우에 대한 글들만 있고 원하는 답변을 찾을 수 없었습니다. 방법이 없나하고 애드센스가 처리되는 화면을 지켜보다가 애드센스 스크립트가 광고 표시작업이 완료되면 광고가 표시되는 태그(구글에서 제공하는 소스에는 ins 태그)에 data-ad-status 라는 속성을 추가한다라는 것을 알게되었습니다. 이 속성값이 ‘filled’이면 광고가 표시된 것이고 ‘unfilled’이면 빈광고입니다.

여기까지 알게되면 나머지는 간단합니다. 아래의 jQuery를 사용한 간단한 예처럼 광고가 표시되는 태그의 속성값을 확인해 원하는 작업을 하면 됩니다.

if ($("#adsense").length > 0) { // 아이디가 adsense인 광고 태그가 있는지 확인.
	var adStatus = setInterval(function() {
    	if ($("#adsense").attr("data-ad-status") == "unfilled") { // 빈광고.
        	$("#adsense").hide(); // 광고 태그 감추기.
            clearInterval(adStatus); // 확인 종료.
        } else if ($("#adsense").attr("data-ad-status") == "filled") {
            clearInterval(adStatus);
        }
    }, 1000); // 1초에 한번 확인.
}