애드센스 광고가 보일때만 호출하기
문의결과 정책위반의 소지가 다분하여 적용하지 않기를 바랍니다.
일반적으로 애드센스 컨텐츠형광고는 최대3개까지 개제할수 있고, 한번에3개가 호출됩니다.
하지만 대부분의 방문자는 얼마 스크롤하지 않고 페이지를 떠나게됩니다. 본문 아래에 있던 광고는 한번도 보지 못한 채 말이죠.
물론 광고 게시자(블로거)는 방문자가 보지 않더라도 호출한 광고에대해서 CPM등의 형태로 비용을 지불 받기도 하기 때문에, 방문자가 광고를 보든 말든 상관이 없습니다.
오히려 스크롤하지 않으면 보이지 않는 광고를 아예 호출하지 않으면 CPM 단가조차 적용받지 못하니 손해라고 생각할 수도 있습니다.
그런데 이렇게 방문자가 확인하지 않은 광고는 필연적으로 클릭율이 낮을 수 밖에 없습니다.
오늘 공개해드리는 코드는 광고가 노출되기 300px전까지 스크롤 했을 때 광고를 로딩하는 스크립트입니다.
화면에 보이는 광고만 호출하겠다는 뜻입니다.(로딩 시간이 있으니 300px정도 이전에..)
예를들면 빨간박스부분이 광고라 치면, 광고를 호출하지 않고있다가
스크롤이 저정도 위치까지 올라오면 광고를 호출한다는 말입니다.
저기까지 스크롤을 하지 않고 페이지를 떠난다면, 광고는 호출되지 않겠죠.
적용 방법
1. 먼저 skin.html에서 광고의 호출 스크립트를 찾아 모두 제거합니다.
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
2. </body>윗줄에 다음을 붙여넣습니다.
<script>window.jQuery || document.write('<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"><\/script>');</script>
<script>
var adsenseArr=$(".adsbygoogle");
function loadAdsense(){
if (adsenseArr.length!==0){
for (i=0;i<adsenseArr.length;i++){
if (($(window).scrollTop() + $(window).innerHeight() + 300) > $(adsenseArr[i]).offset().top) {
(adsbygoogle=window.adsbygoogle||[]).push({});
adsenseArr.splice(i,1);
}
}
}
}
loadAdsense();
$(window).scroll(function(){loadAdsense();});
</script>
광고 로딩이 방문자의 스크롤 속도를 따라오지 못한다 싶으면
파란색 300을 더 높은 숫자로 조정해서 더 미리 호출시키게 하면 됩니다.
회색 스크립트는 jQuery를 사용중인경우 제거해도 됩니다. (잘 모르면 그대로 두시면 됩니다.)
효용성은?
저도 이 아이디어를 생각하고 적용해본지 하루밖에 지나지 않았습니다. 현재까지 결과론 수익에 별 차이는 없네요. (당연히 클릭 수에는 영향이 없을겁니다)
주로 본문 하단 광고단위의 노출수가 낮아질텐데, 이부분의 클릭률과 단가의 변화를 지켜봐야겠습니다.