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