광고 스크립트의 로딩을 의도적으로 지연시켜 웹페이지의 전반적인 성능을 개선하는 방법을 함께 구현해 보겠습니다. 특히 Google AdSense에서 제공하는 광고 스크립트는 기본적으로 페이지 초기 로딩 속도에 영향을 미칠 수 있기 때문에, 사용자 경험을 저해하지 않도록 이를 비동기 방식으로 지연 로드하는 것이 바람직합니다. 이렇게 하면 콘텐츠가 먼저 로드되고 광고는 그 이후에 불러와지므로, 페이지 속도와 사용자 만족도를 동시에 높일 수 있습니다.
Table of Contents | 목차

로딩지연 스크립트 소스
html
<!-- AdSense 지연 로드 구현 -->
<div id="adsense-container">
<!-- 광고가 이곳에 로드됩니다 -->
</div>
<script>
// 페이지 로드 완료 후 AdSense 스크립트 로드
document.addEventListener('DOMContentLoaded', function() {
// 약간의 지연 후 광고 로드 (2초)
setTimeout(function() {
loadAdSense();
}, 2000);
});
// Intersection Observer를 사용한 대안 (스크롤 시 보이는 영역에 들어올 때 로드)
/*
document.addEventListener('DOMContentLoaded', function() {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
loadAdSense();
observer.disconnect(); // 한 번 로드 후 관찰 중단
}
});
});
observer.observe(document.getElementById('adsense-container'));
});
*/
function loadAdSense() {
// 1. AdSense 스크립트 로드
const adsScript = document.createElement('script');
adsScript.src = 'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-83*****8963911';
adsScript.async = true;
adsScript.crossOrigin = 'anonymous';
adsScript.onload = function() {
// 2. 스크립트 로드 완료 후 광고 표시
const adsContainer = document.getElementById('adsense-container');
// 광고 요소 생성
const adIns = document.createElement('ins');
adIns.className = 'adsbygoogle';
adIns.style.display = 'block';
adIns.setAttribute('data-ad-client', 'ca-pub-83445*******63911');
adIns.setAttribute('data-ad-slot', '1490*****682');
adIns.setAttribute('data-ad-format', 'auto');
adIns.setAttribute('data-full-width-responsive', 'true');
// 컨테이너에 광고 요소 추가
adsContainer.appendChild(adIns);
// 광고 표시 요청
(adsbygoogle = window.adsbygoogle || []).push({});
};
document.head.appendChild(adsScript);
}
</script>
마무리
실제로 적용해 보니 페이지지 로딩시 광고가 늦게 뜨는것을 확인했습니다. 페이지 로딩속도를 높이는 많은 방법 중 1가지로 이 방법이 절대적일 수 없지만 그래도 조금 도움이 되지 않을까란 생각으로 준비 해 봤습니다.