반응형

구글 애드센스 승인을 받고 태그를 추가했는데도 광고가 나오지 않아서 크롬에서 F12를 열어보자 콘솔창에서 아래와 같은 에러가 보였습니다. 

adsbygoogle.push() error: Only one AdSense head tag supported per page. The second tag is ignored.

 

제 경우는 처음 태그를 넣었을 때 바로 나오지 않아서 태그 위치를 옮겼는데 기존 태그를 삭제하지 않아서 이런 에러가 발생했습니다. 기존 태그를 삭제하자 문제 없이 광고가 나오기 시작했습니다. 

 


 

adsbygoogle.push() error: Only one 'enable_page_level_ads' allowed per page.

 

head 태그 안의 태그를 하나로 줄였는데도 계속 에러가 나는 경우는 수동광고를 넣을 때 script 태크를 포함해서 넣고 있을 가능성이 큽니다. 수동광고를 넣을 때 <script....></script> 태그 부분을 삭제해주면 콘솔의 에러가 나오지 않게 됩니다. 

 

애드센스를 처음 적용할 때 head 태그에 넣는 태그

 <haed>
 ...(다른 태그들 생략)...
 
 //이미 이 script 태그가 들어가 있음
 <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-xxxxxxxxxxxxxx"
     crossorigin="anonymous"></script>
     
 ...(다른 태그들 생략)...
 
 </head>

 

수동 단위 광고를 복사 붙여 넣기 할 때 의 코드


//시작: 이 부분이 중복되어 들어가 있음
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-xxxxxxxxxxx"
     crossorigin="anonymous"></script>
//끝: 이 부분이 중복되어 들어가 있음     
     
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-xxxxxxxxxxx"
     data-ad-slot="xxxxxxxxxxx"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

 

기본적으로 자바스크립트의 코드는 위해서 부터 차례대로 읽어 내려 오면서 코드를 동작시킵니다. 같은 코드라면 위에서 한 번만 인식을 하면 됩니다. 중복 될 경우 불필요한 과정이 반복되기 때문에 오히려 로드 속도에 악영향을 미칩니다.(최근에는 컴퓨팅 파워가 발전해서 큰 부담이 되는 것은 아닙니다. 그러니 개인적으로는 이 정도 에러는 크게 신경쓰지 않아도 된다고 생각하지만 빨간 글씨의 에러가 계속 보이는 것은 정신 건강에 해로울 수 있습니다. )


 

이외에도 adsbygoogle.push() error: 로 시작하는 애드센스 관련 에러가 여러가지 있습니다. 예를 들면 아래와 같은 것이 있습니다. 

adsbygoogle.push() error: Fluid responsive ads must be at least 250px wide: availableWidth=0″, name: “TagError”・・・

이 에러는 Adsense 코드를 표시하려는 부분의 폭이 부족하기 때문에 나타납니다. 

<div class="adsense example">
  <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
  <ins class="adsbygoogle"
    style="display:block"
    data-ad-format="fluid"
    data-ad-layout-key="-xxxxxxxxxxxx"
    data-ad-client="ca-pub-xxxxxxxxxxxxxxxx"
    data-ad-slot="xxxxxxxxx"></ins>
  <script>
  (adsbygoogle = window.adsbygoogle || []).push({});
  </script>
</div>

이 경우 대처법은 단순하게 Adsense 코드를 설치한 부모 태그의 width를 지정하기만 하면 됩니다. 

/* 단순한 예입니다. 화면의 상황에 따라서 적절하게 조절이 필요합니다.  */
.adsense {
  width: 400px;
}

만약 부모 태그의 width 설정만으로 문제가 해결되지 않는다면 html 트리 구조상 더 상위의 태그에서 문제가 있을 수 있기 때문에 크롬 개발자 툴 등으로 확인해서 수정할 필요가 있습니다. 

 


adsbygoogle.push() error: No slot size for availableWidth=0″, name: “TagError”・・・

이 에러는 애드센스 코드가 광고를 표시하려고 할 때 부모 태그의 사이즈를 가지고 올 수 없어서 나타나는 에러입니다. 이 경우는 예를 들면 애드센스 광고를 사이드바에도 표시하도록 설정을 했는데 정작 블로그 화면에는 사이드바가 표지 되지 않거나 하는 경우를 생각해볼 수 있습니다. 

 

그러니까 사이드 바에 표시하기 위해서 열심히 대상의 width를 얻으려고 노력하지만 결국 취득하지 못한 것입니다. 이 경우는 Adsense를 사이드 바에는 표시 하지 않도록 설정하는 것으로 수정할 수 있습니다. 

 

또 아래의 대처법으로 해결되는 경우가 있습니다. 

 

원래 이렇게 되어 있던 부분을 

<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

아래처럼 수정합니다. 

<script>
  window.onload = function() {
     (adsbygoogle = window.adsbygoogle || []).push({});
  }
</script>

window.oload를 사용해서 실행을 하게 되면 DOM이 구축된 후 실행되게 됩니다. 이 해결방법이 적용되는 경우는 페이지 내에서 다른 Ajax 처리가 많이 사용되고 있어서 애드센스 코드의 로드가 잘 실행되지 않는 경우에 해당합니다. 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기