λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
SEO/seo-resources

μ• λ“œμ„ΌμŠ€ κ΄‘κ³  μ‹€νŒ¨ λŒ€λΉ„λ²•, μ• λ“œν•·μ œνœ΄ 이미지 μžλ™ κ΄‘κ³  μ „ν™˜ 방법

λΈ”λ‘œκ·Έ κ΄‘κ³  μ΅œμ ν™”: ν‹°μŠ€ν† λ¦¬μ—μ„œ μ• λ“œμ„ΌμŠ€ + μ• λ“œν• + 제휴 이미지 μš΄μ˜λ°©λ²•

이번 κΈ€μ—μ„œλŠ” 이전에 올렸던 κ΄‘κ³  수읡 κ΄€λ ¨ μžλ£Œμ— 이어, λΈ”λ‘œκ·Έ κ΄‘κ³  μˆ˜μ΅μ„ μ‘°κΈˆμ΄λΌλ„ 확보할 수 μžˆλŠ” λ°©λ²•μœΌλ‘œ κ΄‘κ³  μžλ™ μ „ν™˜ μ½”λ“œ 을 μ†Œκ°œν•˜λ €κ³  ν•©λ‹ˆλ‹€. 보톡 μ• λ“œμ„ΌμŠ€ κ΄‘κ³  1개만 μš΄μ˜ν•˜λŠ” μš΄μ˜μžλ„ μžˆμ§€λ§Œ, μ €μ²˜λŸΌ μ—¬λŸ¬ κ°€μ§€ κ΄‘κ³ λ₯Ό λ™μ‹œμ— μš΄μ˜ν•˜λŠ” λΈ”λ‘œκ·Έ μš΄μ˜μžλ„ μžˆμ„ 거라 μƒκ°ν•©λ‹ˆλ‹€.

μ΄λ ‡κ²Œ μ—¬λŸ¬ 개의 κ΄‘κ³ λ₯Ό μš΄μ˜ν•˜λ”λΌλ„ 항상 μ„ λ…ΈμΆœ κ΄‘κ³ κ°€ 있고, ν›„μˆœμœ„ κ΄‘κ³ κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€. μ—¬λŸ¬ κ°€μ§€ 이유둜 μ£Ό κ΄‘κ³  μœ„μ£Όλ‘œ μš΄μ˜ν•˜κ³  λ‚˜λ¨Έμ§€λŠ” λΆ€μˆ˜μ μœΌλ‘œ μš΄μ˜ν•˜λŠ” κ²½μš°κ°€ λŒ€λΆ€λΆ„μž…λ‹ˆλ‹€.

μ• λ“œμ„ΌμŠ€ κ΄‘κ³ κ°€ μ•ˆ λ‚˜μ˜¬ λ•Œ? 보쑰 κ΄‘κ³ λ‘œ 수읡 보μž₯ν•˜λŠ” 방법

이 경우 λ…ΈμΆœ μ˜μ—­μ΄ λΆ€μ‘±ν•˜κ±°λ‚˜, μ‹€μ œ κ΄‘κ³ κ°€ λ…ΈμΆœλ˜μ§€ μ•ŠλŠ” 상황이 많이 λ°œμƒν•©λ‹ˆλ‹€. κ΄‘κ³ κ°€ λ…ΈμΆœλ˜μ§€ μ•Šμ€ 곡간은 λ‚­λΉ„κ°€ 되고, λΆ€μ‘±ν•œ μ˜μ—­μœΌλ‘œ μΈν•œ 수읡 손싀이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 상황에 μ ν•©ν•œ 방법을 이번 κΈ€μ—μ„œ 이야기해 λ³΄κ² μŠ΅λ‹ˆλ‹€.

이번 κΈ€μ—μ„œλŠ” AdSenseκ°€ μ‹€νŒ¨ν•  경우 Kakao AdFit(μ• λ“œν•), μ΄ν›„μ—λŠ” 제휴 이미지 κ΄‘κ³ λ‘œ μžλ™ μ „ν™˜λ˜λŠ” μžλ™ κ΄‘κ³  μ „ν™˜ 방법을 μ†Œκ°œν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 κ΄‘κ³  손싀을 μ΅œμ†Œν™”ν•˜κ³ , ν‹°μŠ€ν† λ¦¬ λΈ”λ‘œκ·Έμ—μ„œλ„ κ°„νŽΈν•˜κ²Œ μ μš©ν•  수 μžˆλŠ” 방법을 μ•Œλ €λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

κ΄‘κ³ κ°€ λ…ΈμΆœλ˜μ§€ μ•ŠλŠ” μ΄μœ λŠ”?

이전 κΈ€μ—μ„œ 이미 λ‹€λ€˜λ‹€κ³  νŒλ‹¨ν•˜μ—¬ μžμ„Έν•œ λ‚΄μš©μ€ μƒλž΅ν•˜κ² μŠ΅λ‹ˆλ‹€. κΆκΈˆν•˜μ‹  뢄듀은 링크λ₯Ό 톡해 ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

κ΄‘κ³ κ°€ λ…ΈμΆœλ˜μ§€ μ•ŠλŠ” 경우, AdSenseλ§ŒμœΌλ‘œλŠ” κ΄‘κ³  수읡λ₯ μ„ 100% 보μž₯ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λŒ€μ²΄ κ΄‘κ³ λ‚˜ 제휴 이미지λ₯Ό μ€€λΉ„ν•˜λŠ” 것이 또 λ‹€λ₯Έ λŒ€μ•ˆμ΄ 될 수 μžˆμŠ΅λ‹ˆλ‹€. 주둜 많이 μš΄μ˜ν•˜λŠ” κ΄‘κ³ λ₯Ό 예둜 λ“€μ–΄ μ†Œκ°œν•΄ λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

λΈ”λ‘œκ·Έ κ΄‘κ³  λ―Έλ…ΈμΆœμ‹œ λŒ€μ²˜ 방법

λΈ”λ‘œκ·Έμ— μ μš©ν•˜λŠ” κ΄‘κ³  μžλ™ μ „ν™˜ μ½”λ“œ

μ£Ό κ΄‘κ³ κ°€ λ…ΈμΆœλ˜μ§€ μ•Šμ„ 경우 λΆ€ κ΄‘κ³ κ°€ λ…ΈμΆœλ˜κ³ , μ΄λ§ˆμ €λ„ μ•ˆ 될 경우 제휴 κ΄‘κ³  및 이미지 κ΄‘κ³ λ₯Ό λ…ΈμΆœν•˜μ—¬ κ΄‘κ³  λ―Έλ…ΈμΆœλ‘œ μΈν•œ 수읡 손싀을 μ΅œλŒ€ν•œ λ°©μ§€ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. μ•„λž˜ 방법을 톡해 λˆ„κ΅¬λ‚˜ μ‰½κ²Œ μš΄μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν‹°μŠ€ν† λ¦¬ κΈ°μ€€ κ΄‘κ³  μ½”λ“œ μ„€μΉ˜ 방법

μ•„λž˜ μ½”λ“œλŠ” ν‹°μŠ€ν† λ¦¬ κ΄€λ¦¬μž > μŠ€ν‚¨ νŽΈμ§‘ > HTML νŽΈμ§‘ λ˜λŠ” κΈ€μ“°κΈ° ν™”λ©΄μ˜ HTML 탭에 μ‚½μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • μŠ€ν‚¨ 전체 적용: μŠ€ν‚¨ νŽΈμ§‘ > HTML νŽΈμ§‘ > μ›ν•˜λŠ” μœ„μΉ˜μ— μ‚½μž… (예: <body> μ•ˆ)
  • κ°œλ³„ κΈ€ 적용: κΈ€ μž‘μ„± > HTML νƒ­μ—μ„œ μ›ν•˜λŠ” μœ„μΉ˜μ— μ‚½μž…

μ•„λž˜ μ½”λ“œμ—μ„œ 본인이 μš΄μ˜ν•˜κ³  μžˆλŠ” κ΄‘κ³  μ½”λ“œλ§Œ λ³€κ²½ν•΄μ„œ μ‚¬μš©ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

>
ꡬ글 μ• λ“œμ„ΌμŠ€ κ΄‘κ³  λ…ΈμΆœ
<div class="ad-container">
  <div class="ad-placeholder" id="initial-placeholder">κ΄‘κ³  λ‘œλ“œ 쀑...</div>

  <!-- 1단계: μ• λ“œμ„ΌμŠ€ κ΄‘κ³  -->
  <div id="adsense-ad" class="ad-slot">
    <ins class="adsbygoogle"
      style="display:block;width:100%;height:100%;"
      data-ad-client="ca-pub-여기에_μ• λ“œμ„ΌμŠ€_ν΄λΌμ΄μ–ΈνŠΈ_ID"
      data-ad-slot="μ• λ“œμ„ΌμŠ€_슬둯_ID"
      data-ad-format="auto"
      data-full-width-responsive="true"></ins>
  </div>

  <!-- 2단계: 카카였 μ• λ“œν• κ΄‘κ³  -->
  <div id="kakao-ad" class="ad-slot">
    <ins class="kakao_ad_area"
      style="display:block;width:100%;height:100%;"
      data-ad-unit="DAN-μ• λ“œν•_μœ λ‹›_ID"
      data-ad-width="728"
      data-ad-height="90"></ins>
  </div>

  <!-- 3단계: 이미지 κ΄‘κ³  (제휴 λ˜λŠ” 자체 κ΄‘κ³ ) -->
  <div id="fallback-ad" class="ad-slot fallback-image">
    <img src="https://yourdomain.com/images/fallback-ad.webp" alt="κ΄‘κ³  이미지" loading="lazy">
  </div>
</div>
λΈ”λ‘œκ·Έ κ΄‘κ³  μ• λ“œν•

JavaScript μ½”λ“œ (μžλ™ μ „ν™˜)

μ•„λž˜ μ½”λ“œλ₯Ό 같은 μœ„μΉ˜μ— <script>둜 ν•¨κ»˜ μ‚½μž…ν•΄ μ£Όμ„Έμš”. κ΄‘κ³ κ°€ 순차적으둜 λ‘œλ“œλ˜λ©° μ‹€νŒ¨ μ‹œ μžλ™ μ „ν™˜λ©λ‹ˆλ‹€.

<script>
document.addEventListener("DOMContentLoaded", function() {
  const adsense = document.getElementById("adsense-ad");
  const kakao = document.getElementById("kakao-ad");
  const fallback = document.getElementById("fallback-ad");

  const tryAd = (el, scriptLoader, onFail, timeout = 3000) => {
    el.classList.add("visible");
    scriptLoader();
    const observer = new MutationObserver(() => {
      const iframe = el.querySelector("iframe");
      if (iframe && iframe.offsetHeight > 50) observer.disconnect();
    });
    observer.observe(el, { childList: true, subtree: true });
    setTimeout(() => {
      const iframe = el.querySelector("iframe");
      if (!iframe || iframe.offsetHeight < 50) {
        el.classList.remove("visible");
        observer.disconnect();
        onFail();
      }
    }, timeout);
  };

  const loadAdsense = () => {
    const s = document.createElement("script");
    s.src = "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-xxxxxx";
    s.async = true;
    s.crossOrigin = "anonymous";
    s.onload = () => (adsbygoogle = window.adsbygoogle || []).push({});
    document.head.appendChild(s);
  };

  const loadAdfit = () => {
    const s = document.createElement("script");
    s.src = "//t1.daumcdn.net/kas/static/ba.min.js";
    s.async = true;
    s.onload = () => (kakao_ad_area = window.kakao_ad_area || []).push({});
    document.head.appendChild(s);
  };

  tryAd(adsense, loadAdsense, () => {
    tryAd(kakao, loadAdfit, () => fallback.classList.add("visible"), 2000);
  }, 3000);
});
</script>
λΈ”λ‘œκ·Έ κ΄‘κ³  λ―Έλ…ΈμΆœμ‹œ λŒ€μ±„ 이미지 λ…ΈμΆœ

κ΄‘κ³  μ„€μ • μ‹œ μœ μ˜μ‚¬ν•­

  • data-ad-client, data-ad-slot, data-ad-unit 값은 μžμ‹ μ˜ κ΄‘κ³  μ½”λ“œ κ°’μœΌλ‘œ λ°˜λ“œμ‹œ κ΅μ²΄ν•˜μ„Έμš”.
  • 이미지 κ΄‘κ³  μ£Όμ†Œλ„ μžμ‹ μ˜ μ„œλ²„ λ˜λŠ” 제휴 이미지 μ£Όμ†Œλ‘œ μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • ν‹°μŠ€ν† λ¦¬λŠ” 슀크립트 νƒœκ·Έ μ‚½μž…μ΄ μ œν•œλ  수 μžˆμœΌλ―€λ‘œ “HTML νŽΈμ§‘” λ©”λ‰΄μ—μ„œ 직접 μˆ˜μ •ν•˜μ…”μ•Ό ν•©λ‹ˆλ‹€.
  • κ΄‘κ³  μœ„μΉ˜λŠ” μ½˜ν…μΈ  상단, 쀑간, ν•˜λ‹¨ λ“± κ°€μ‹œμ„± 높은 μœ„μΉ˜μ— μ‚½μž…ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

μ½”λ“œμ˜ μ£Όμš” μž₯점

κΈ°λŠ₯ μ„€λͺ…
κ΄‘κ³  μœ μ‹€ λ°©μ§€ μ• λ“œμ„ΌμŠ€ μ‹€νŒ¨ μ‹œ μ• λ“œν• λ˜λŠ” μ΄λ―Έμ§€λ‘œ μžλ™ μ „ν™˜
λ ˆμ΄μ•„μ›ƒ μ•ˆμ •μ„± κ³ μ • 높이 μ„€μ •μœΌλ‘œ CLS(μ½˜ν…μΈ  λ°€λ¦Ό) 문제 λ°©μ§€
수읡 κ·ΉλŒ€ν™” 항상 κ΄‘κ³ κ°€ λ…ΈμΆœλ˜λ―€λ‘œ 수읡 손싀 μ΅œμ†Œν™”
λͺ¨λ°”일 λŒ€μ‘ 100% λ°˜μ‘ν˜• ꡬ쑰 μ‚¬μš© κ°€λŠ₯
κ΄‘κ³  μ •μ±… λŒ€μ‘ μ• λ“œμ„ΌμŠ€ 차단/λΉ„λ…ΈμΆœ μ‹œ μžλ™ λŒ€μ²΄ 처리 κ°€λŠ₯

슀크립트 μ½”λ“œ μ„€λͺ…

1. 기본 ꡬ쑰

  • DOM이 μ™„μ „νžˆ λ‘œλ“œλœ ν›„(DOMContentLoaded) μ‹€ν–‰λ©λ‹ˆλ‹€.
  • Google AdSense, Kakao Adλ₯Ό 순차적으둜 μ‹œλ„ν•˜κ³ , λͺ¨λ‘ μ‹€νŒ¨ μ‹œ λŒ€μ²΄ 이미지 κ΄‘κ³ λ‘œ μ „ν™˜λ©λ‹ˆλ‹€.

2. μ£Όμš” ꡬ성 μš”μ†Œ

  • κ΄‘κ³  μ»¨ν…Œμ΄λ„ˆ: .ad-container 및 #initial-placeholder
  • κ΄‘κ³  μœ ν˜•:
    • #adsense-ad: Google AdSense
    • #kakao-ad: Kakao AdFit
    • #fallback-ad: 제휴 이미지 κ΄‘κ³ 

3. λ™μž‘ 흐름

  1. μ΄ˆκΈ°ν™”: λͺ¨λ“  κ΄‘κ³  divμ—μ„œ 'visible' 클래슀 제거
  2. κ΄‘κ³  λ‘œλ“œ μˆœμ„œ:
    • AdSense → AdFit → 제휴 이미지 μˆœμ„œλ‘œ μ‹œλ„
    • 각 단계별 νƒ€μž„μ•„μ›ƒ: AdSense(3초), AdFit(2초)
  3. κ΄‘κ³  λ‘œλ“œ 감지: MutationObserver둜 iframe λ‘œλ”© 여뢀와 높이 감지

4. μ£Όμš” ν•¨μˆ˜ μ„€λͺ…

  • tryAd(): κ΄‘κ³ λ₯Ό μ‹œλ„ν•˜κ³  μ‹€νŒ¨ μ‹œ λ‹€μŒ κ΄‘κ³ λ‘œ λ„˜μ–΄κ°€λŠ” ν•¨μˆ˜
  • loadAdsense(): AdSense 슀크립트 λ‘œλ“œ
  • loadAdfit(): Kakao AdFit 슀크립트 λ‘œλ“œ
  • fallback.classList.add('visible'): 이미지 κ΄‘κ³  ν‘œμ‹œ

5. νŠΉμ§•

  • 폴백 μ‹œμŠ€ν…œ: 닀단계 κ΄‘κ³  μ‹œλ„ ꡬ쑰
  • 비동기 처리: νŽ˜μ΄μ§€ λ‘œλ”© μ„±λŠ₯ μ €ν•˜ μ΅œμ†Œν™”
  • νƒ€μž„μ•„μ›ƒ μ„€μ •: 각 κ΄‘κ³ μ˜ λ‘œλ”© μ‹€νŒ¨ νŒλ‹¨ κΈ°μ€€ 제곡
  • 쀑볡 λ°©μ§€: ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ κ΄‘κ³ λ§Œ λ…ΈμΆœ

κ΄‘κ³  3단 λ…ΈμΆœμš© CSS 클래슀 μ„€λͺ…

ꡬ뢄 클래슀 μ„€λͺ…
κ΄‘κ³  전체 μ˜μ—­ .ad-container-top κ³ μ • 높이, 쀑앙 μ •λ ¬λœ κ΄‘κ³  μ˜μ—­
각 κ΄‘κ³  μ˜μ—­ .ad-slot λΉ„λ…ΈμΆœ μƒνƒœμ—μ„œ 순차 λ…ΈμΆœ
κ΄‘κ³  ν‘œμ‹œ μƒνƒœ .visible 화면에 ν‘œμ‹œλ  λ•Œ μ μš©λ˜λŠ” 클래슀
이미지 κ΄‘κ³  .fallback-image img λΉ„μœ¨ μœ μ§€ν•˜λ©΄μ„œ κ΄‘κ³  μ˜μ—­ 꽉 채움
λ‘œλ”© μ•ˆλ‚΄ 문ꡬ .ad-placeholder κ΄‘κ³  λ‘œλ”© 쀑 μ‚¬μš©μž μ•ˆλ‚΄μš© ν…μŠ€νŠΈ
<style>
.ad-container {
    width: 100%;
    height: 300px;
    overflow: hidden;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
}

.ad-slot {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    visibility: hidden;
    opacity: 0;
    transition: visibility 0s, opacity 0.5s ease-in-out;
}

.ad-slot.visible {
    visibility: visible;
    opacity: 1;
}

.fallback-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ad-placeholder {
    background: #e0e0e0;
    color: #888;
    text-align: center;
    line-height: 300px;
    width: 100%;
    height: 100%;
    font-size: 1.2em;
}
</style>
μˆœμ„œ κ΄‘κ³  μ’…λ₯˜ μ‹€νŒ¨ μ‹œ λŒ€μ²΄ λŒ€μ²΄ 방식
1 AdSense μ‹€νŒ¨ν•˜λ©΄ Kakao
2 Kakao μ‹€νŒ¨ν•˜λ©΄ 이미지
3 이미지 μ΅œμ’… λ…ΈμΆœ -

단일 광고에 μ˜μ‘΄ν•˜λŠ” κ΅¬μ‘°λŠ” 맀우 λΆˆμ•ˆμ •ν•©λ‹ˆλ‹€. AdSenseκ°€ μ°¨λ‹¨λ˜κ±°λ‚˜ μ •μ±… μœ„λ°˜μœΌλ‘œ 인해 정지될 경우, κ΄‘κ³  수읡이 0원이 될 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 보쑰 κ΄‘κ³ λ₯Ό 1~2개 정도 μš΄μ˜ν•˜λŠ” 것도 쒋은 μ „λž΅ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.

λ˜ν•œ μ—¬λŸ¬ 개의 κ΄‘κ³ λ₯Ό μš΄μ˜ν•œλ‹€λ©΄, λ©€ν‹° κ΄‘κ³  κ΅¬μ‘°λŠ” 선택이 μ•„λ‹Œ ν•„μˆ˜ μ „λž΅μ΄ 될 수 μžˆμŠ΅λ‹ˆλ‹€.μ΄λ²ˆμ— μ†Œκ°œν•œ μ½”λ“œμ²˜λŸΌ μ• λ“œμ„ΌμŠ€ → μ• λ“œν• → 제휴 이미지 순으둜 λŒ€μ²΄λ˜λŠ” κ΄‘κ³  κ΅¬μ‘°λŠ” μˆ˜μ΅μ„±κ³Ό μ•ˆμ •μ„±μ„ λ™μ‹œμ— μž‘μ„ 수 μžˆλŠ” λ°©λ²•μž…λ‹ˆλ‹€.

'SEO > seo-resources' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

쿠팑 νŒŒνŠΈλ„ˆμŠ€ μƒν’ˆ μžλ™ λ…ΈμΆœ 3편: μ½˜ν…μΈ  Β· λͺ©λ‘ νŽ˜μ΄μ§€ μ μš©λ²•  (3) 2025.07.10
쿠팑 μƒν’ˆ μžλ™ λ…ΈμΆœ 방법 2탄: μ½˜ν…μΈ μ— μ΅œμ ν™”λœ μƒν’ˆ μžλ™ λ…ΈμΆœλ°©λ²•  (0) 2025.07.10
쿠팑 νŒŒνŠΈλ„ˆμŠ€ μƒν’ˆ μžλ™ 등둝 1탄 μˆ˜μ΅ν™”! λΈ”λ‘œκ·Έμ— μƒν’ˆ μžλ™ λ“±λ‘ν•˜λŠ” 방법  (7) 2025.07.09
HowTo ꡬ쑰화 데이터 μžλ™ 생성기 λ§Œλ“€κΈ°,단계별 μ„€λͺ… μ½˜ν…μΈ , SEOμ—μ„œ μ–΄λ–»κ²Œ μœ λ¦¬ν•œκ°€μš”?  (0) 2025.07.04
λ‚΄ λΈ”λ‘œκ·Έ 검색 λ…ΈμΆœ μ˜¬λ¦¬λŠ” λΈŒλ ˆλ“œν¬λŸΌ μžλ™ 생성 슀크립트 μ‚¬μš©λ²•  (1) 2025.06.29
빈 썸넀일, λΈ”λ‘œκ·Έ κΈ€ μž‘μ„± μ‹œ 이미지가 μ—†λŠ” μš”μ†Œμ˜ 빈 곡간 λ¬Έμ œμ™€ 해결법  (3) 2025.06.27
λΈ”λ‘œκ·Έ 상단 κ΄‘κ³  κ³ μ •(μ½”λ“œ 포함) λ…ΈμΆœλ‘œ 수읡과 검색 μ΅œμ ν™” (SEO) λ™μ‹œμ— μž‘λŠ” 법  (4) 2025.06.14