๋ชฉ๋ก์ ์๋์ผ๋ก ๋ ธ์ถ๋๋ ์ ๋์ผ์ค ์ฝ๋ ์ค์ ๋ฐฉ๋ฒ
๊ตฌ๊ธ ์ ๋์ผ์ค๋ฅผ ํตํด ๋ธ๋ก๊ทธ ์์ต์ ๊ทน๋ํํ๊ณ ์ถ๋ค๋ฉด, ๊ด๊ณ ์ ๋ ธ์ถ ์์น์ ๋น๋๋ฅผ ์ ๋ต์ ์ผ๋ก ์ค๊ณํ๋ ๊ฒ์ ์ ํ์ด ์๋ ํ์์ ๋๋ค. ํนํ ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์ฒ๋ผ ๊ธ ๋ชฉ๋ก(๋ฆฌ์คํธ ๋ทฐ)์ด ์ค์ํ ํ๋ซํผ์์๋, ๋ชฉ๋ก ๋ด ๊ด๊ณ ์๋ ์ฝ์ ๊ธฐ๋ฅ์ด ๊ด๊ณ ํด๋ฆญ๋ฅ (CTR)๊ณผ ์ ์ฒด ์์ต ํฅ์์ ํฐ ์ญํ ์ ํฉ๋๋ค. ๋ง์ ๋ธ๋ก๊ฑฐ๊ฐ ์ ๋์ผ์ค ๊ด๊ณ ๋ฅผ ๋ณธ๋ฌธ์ด๋ ๋๊ธ ํ๋จ์๋ง ์ ํ์ ์ผ๋ก ๋ ธ์ถํ์ง๋ง, ๊ธ ๋ชฉ๋ก๋ง๋ค ์ ์ ํ ๋ฐฐ์น๋ ๊ด๊ณ ๋ ๋ฐฉ๋ฌธ์ ๊ฒฝํ์ ํด์น์ง ์์ผ๋ฉด์๋ ์ถ๊ฐ์ ์ธ ์์ต ๊ธฐํ๋ฅผ ๋ง๋ค์ด ์ค๋๋ค.
์ ๋์ผ์ค ๊ด๊ณ ์์ต ๊ทน๋ํ! ํฐ์คํ ๋ฆฌ ๋ชฉ๋กํ ๊ด๊ณ ์ค์ ๋ฒ ๊ณต๊ฐ
์ด๋ฒ ๊ธ์์๋ ์์ ์๊ฐํ ๋๊ธ ๋ณธ๋ฌธ ์๋ ๊ด๊ณ ์ฝ์ ์ฝ๋์ ์ด์ด, ํฐ์คํ ๋ฆฌ ๊ธ ๋ชฉ๋ก ์ํ๋จ ๊ด๊ณ ๋ ธ์ถ ์ ํ์ ๋์ด์๋ ๊ณ ๊ธ ์ค์ ๋ฒ์ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํฐ์คํ ๋ฆฌ์์๋ ๋ชฉ๋ก ์,ํ๋จ 2๊ฐ ๊ด๊ณ ๋ง ์ฝ์ ํ ์ ์๋๋ก ์ ํ๋์ง๋ง, ์ด์์๊ฐ ์ํ๋ ๊ฐ๊ฒฉ๊ณผ ๊ฐ์๋ก ์์ ๋กญ๊ฒ ์ ๋์ผ์ค ๊ด๊ณ ๋ฅผ ๋ชฉ๋ก ๋ด์ ์๋์ผ๋ก ์ฝ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด ๋ฐฉ๋ฒ์ ํ์ฉํ๋ฉด ๋ด ๋ธ๋ก๊ทธ์ ๊ธ ๋ชฉ๋ก์ด ๋จ์ํ ํฌ์คํธ ๋์ด ๊ณต๊ฐ์ ๋์ด, ํจ์จ์ ์ธ ๊ด๊ณ ๋ ธ์ถ ์ง๋ฉด์ผ๋ก ํ๋ฐ๊ฟํฉ๋๋ค.
๊ธ ์์์๋ ์ค์ ํ์ฉ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์ ๊ณตํ๋, ์ง์ ๋ฐ๋ผ ํ์๋ฉด์ ๋ด ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์ ์ฆ์ ์ ์ฉํด ๋ณด์ธ์. ๊ด๊ณ ์ต์ ํ๋ ๋ธ๋ก๊ทธ ์์ตํ์ ํต์ฌ ์ ๋ต์ ๋๋ค. ์ง๊ธ๋ถํฐ ์๊ฐํ๋ ๋ด์ฉ์ ํตํด ๋ ๋์ ์ ๋์ผ์ค ์์ต์ ๊ธฐ๋ํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
์ ๋์ผ์ค ๊ด๊ณ ๋ ธ์ถ์ ์ค์์ฑ
๊ตฌ๊ธ ์ ๋์ผ์ค ๊ด๊ณ ์์ต์ ๋ ธ์ถ์(์ํ๋ ์ )์ ํด๋ฆญ๋ฅ (CTR)์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฐ์ต๋๋ค. ๋ธ๋ก๊ทธ ๋ฐฉ๋ฌธ์๊ฐ ๋ง๋๋ผ๋ ๊ด๊ณ ๊ฐ ์ ์ ํ ๋ ธ์ถ๋์ง ์์ผ๋ฉด ์์ต์ด ๋ฎ์์ง ์๋ฐ์ ์์ต๋๋ค. ํนํ ๊ธ ๋ชฉ๋ก ํ์ด์ง์์๋ ๋ฐฉ๋ฌธ์ ์ดํ๋ฅ ์ด ๋๊ธฐ ๋๋ฌธ์, ์ฝํ ์ธ ์ฌ์ด์ฌ์ด์ ์์ฐ์ค๋ฝ๊ฒ ๊ด๊ณ ๊ฐ ๋ฐฐ์น๋๋ฉด ๊ด๊ณ ๋ ธ์ถ ๋น๋ ์ฆ๊ฐ์ ์์ต ๊ทน๋ํ๋ผ๋ ๋ ๋ง๋ฆฌ ํ ๋ผ๋ฅผ ์ก์ ์ ์์ต๋๋ค.
ํฐ์คํ ๋ฆฌ ๊ธฐ๋ณธ ๊ด๊ณ ๋ ธ์ถ์ ํ๊ณ
ํฐ์คํ ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชฉ๋ก ์๋จ 1๊ฐ, ํ๋จ 1๊ฐ์ ๊ด๊ณ ๋ง ์ค์ ํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๊ธด ๋ชฉ๋ก ํ์ด์ง์์๋ ๊ด๊ณ ๊ฐ ๋๋ฌด ์ ์ด ์์ต์ฑ์ด ๋จ์ด์ง ์ ์์ต๋๋ค. ๋ํ ๊ด๋ฆฌ์๋ ๊ด๊ณ ์์น์ ๊ฐ๊ฒฉ์ ์์ ๋กญ๊ฒ ์กฐ์ ํ ์ ์์ด ์ต์ ํ๋ ๊ด๊ณ ๋ฐฐ์น๊ฐ ์ด๋ ต์ต๋๋ค.
๋ชฉ๋ก ๋ด ์ ๋์ผ์ค ๊ด๊ณ ์๋ ์ฝ์ ์ฝ๋ ์๊ฐ
์๋๋ ๋ชฉ๋ก ๋ด ๊ธ(post-item) ์ฌ์ด์ฌ์ด์ ๊ด๊ณ ๋ฅผ ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ์๋ ์ฝ์ ํ ์ ์๋ ์์ ์ฝ๋์ ๋๋ค.
โป ์ฃผ์: ์ฝ๋ ๋ด clientId์ slotIds๋ ๋ชจ๋ ์์์ฉ ์ฝ๋๋ก, ์ค์ ์ฌ์ฉ ์ ๋ณธ์ธ ์ ๋์ผ์ค ๊ณ์ ์ ์ฝ๋๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
<script>
(function(){
const config = {
clientId: 'ca-pub-0000000000000000', // ๋ณธ์ธ ์ ๋์ผ์ค ID๋ก ๋ณ๊ฒฝ
slotIds: ['1111111111', '2222222222', '3333333333'], // ๊ด๊ณ ์ฌ๋กฏ ID 3๊ฐ
minHeight: '300px',
adInterval: 3,
maxWaitTime: 10000
};
const createAdPlaceholder = (slotId) => {
const wrapper = document.createElement('div');
wrapper.className = 'secure-ad-unit';
wrapper.style.cssText = `margin:25px 0;min-height:${config.minHeight} !important;height:auto;position:relative;`;
const ins = document.createElement('ins');
ins.className = 'adsbygoogle';
ins.style.cssText = `display:block;width:100%;min-height:${config.minHeight}`;
ins.setAttribute('data-ad-client', config.clientId);
ins.setAttribute('data-ad-slot', slotId);
ins.setAttribute('data-ad-format', 'auto');
ins.setAttribute('data-full-width-responsive', 'true');
wrapper.appendChild(ins);
return wrapper;
};
const checkAndInsertAd = (isTimeout = false) => {
const posts = document.querySelectorAll('.post-item');
if (posts.length >= config.adInterval) {
let slotIndex = 0;
posts.forEach((post, index) => {
if ((index + 1) % config.adInterval === 0 && slotIndex < config.slotIds.length) {
const next = post.nextElementSibling;
if (!(next && next.classList.contains('secure-ad-unit'))) {
post.insertAdjacentElement('afterend', createAdPlaceholder(config.slotIds[slotIndex]));
slotIndex++;
}
}
});
return true;
}
return false;
};
const observeDOM = () => {
let timer;
const observer = new MutationObserver(() => {
clearTimeout(timer);
timer = setTimeout(() => {
checkAndInsertAd();
loadAds();
}, 1000);
});
observer.observe(document.body, { childList: true, subtree: true });
setTimeout(() => {
observer.disconnect();
if (checkAndInsertAd(true)) loadAds();
}, config.maxWaitTime);
};
const loadAds = () => {
let attempts = 0;
const timer = setInterval(() => {
if (window.adsbygoogle && document.querySelectorAll('.adsbygoogle').length) {
try {
document.querySelectorAll('.adsbygoogle').forEach(() => {
(adsbygoogle = window.adsbygoogle || []).push({});
});
clearInterval(timer);
} catch (e) {}
}
if (++attempts >= 5) clearInterval(timer);
}, 1000);
};
const init = () => {
if (!checkAndInsertAd()) {
observeDOM();
} else {
loadAds();
}
};
if (document.readyState === 'complete') {
init();
} else {
window.addEventListener('load', init);
document.addEventListener('DOMContentLoaded', init);
}
['popstate', 'scroll'].forEach(evt => {
window.addEventListener(evt, () => {
setTimeout(() => {
checkAndInsertAd();
loadAds();
}, 1000);
});
});
const script = document.createElement('script');
script.async = true;
script.src = `https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=${config.clientId}`;
script.crossOrigin = 'anonymous';
document.head.appendChild(script);
})();
</script>
์ฝ๋ ์ฃผ์ ๊ธฐ๋ฅ ์ค๋ช
clientId | ๋ณธ์ธ์ ์ ๋์ผ์ค ํผ๋ธ๋ฆฌ์ ID ์ค์ |
slotIds | ๊ด๊ณ ์ฌ๋กฏ ID ๋ฆฌ์คํธ (์ต๋ 3๊ฐ ์ฌ์ฉ ์์) |
adInterval | ๋ช ๋ฒ์งธ ๊ธ๋ง๋ค ๊ด๊ณ ์ฝ์ ํ ์ง ์ค์ (3 = 3๋ฒ์งธ๋ง๋ค ๊ด๊ณ ์ฝ์ ) |
minHeight | ๊ด๊ณ ์ ์ต์ ๋์ด ์ค์ (300px) |
maxWaitTime | ๊ด๊ณ ์ฝ์ ์ ์ํ DOM ๊ฐ์ง ์ต๋ ๋๊ธฐ ์๊ฐ (10์ด) |
MutationObserver | ๊ธ ๋ชฉ๋ก ๋ณํ ๊ฐ์ง ํ ์๋์ผ๋ก ๊ด๊ณ ์ฝ์ |
adsbygoogle.push() | ๊ตฌ๊ธ ๊ด๊ณ ํ์ฑํ ์คํ |
ํฐ์คํ ๋ฆฌ ๋ธ๋ก๊ทธ์์ ์ ์ฉ ๋ฐฉ๋ฒ
- ํฐ์คํ ๋ฆฌ ๊ด๋ฆฌ์ ํ์ด์ง[์คํจ ํธ์ง]์ผ๋ก ์ด๋
- HTML ํธ์ง ํด๋ฆญ ํ </body> ๋ซ๊ธฐ ํ๊ทธ ๋ฐ๋ก ์์ ์ ์ฝ๋๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ
- clientId์ slotIds ๊ฐ์ ๋ณธ์ธ ์ ๋์ผ์ค ์ ๋ณด๋ก ๋ณ๊ฒฝ
- ์ ์ฅ ํ ๋ธ๋ก๊ทธ ๊ธ ๋ชฉ๋ก ํ์ด์ง ์๋ก๊ณ ์นจ ๋ชฉ๋ก ์ฌ์ด์ฌ์ด ๊ด๊ณ ์๋ ์ฝ์ ํ์ธ
๊ด๊ณ ์์น ์ฃผ๋๊ถ์ ์ด์์์๊ฒ!
์ด ์ฝ๋๋ฅผ ํ์ฉํ๋ฉด ํฐ์คํ ๋ฆฌ๊ฐ ๊ธฐ๋ณธ ์ ๊ณตํ๋ ์ํ๋จ 2๊ฐ ์ ํ์ ๋ฐ์ด๋์ด, ์ด์์๊ฐ ๊ธ ๋ชฉ๋ก ๋ด ์ํ๋ ์์น์ ์ํ๋ ๊ฐ์์ ๊ด๊ณ ๋ฅผ ๋ฐฐ์นํ ์ ์์ต๋๋ค. ์ด๋ ์ ๋์ผ์ค ์์ต ๊ทน๋ํ์ ์ค์ํ ์ ๋ต์ด ๋ ์ ์์ต๋๋ค. ๋ธ๋ก๊ทธ ์์ตํ๋ฅผ ๋ชฉํ๋ก ํ๋ค๋ฉด ๊ผญ ํ๋ฒ ์ ์ฉํด ๋ณด์๊ธธ ์ถ์ฒ๋๋ฆฝ๋๋ค.