Extra Form
PHP PHP 7.3
CMS GnuBoard

애드센스 광고가.. 글이 많고, 자주 보는 글이 아니라면 게재율이 상당히 낮을 수가 있습니다..

최근글만 자주 보는 사이트인 경우는 95%이상의 게재율이 나오지만,

중구난방식으로 찾게되는 경우엔 자주 읽히지 않으므로 게재율이 많이 낮습니다.. 60%정도로..

 

그래서, 애드핏을 병행하여.. 

애드핏과 애드센스를  각각 div태그로 감싸고, 아래쪽에 애드핏을 그 위에 애드센스를 올렸습니다.

애드핏은 보통 다 나오므로, 애드센스가 나오지 않는 경우는 애드핏이 보이게 됩니다..

둘다 보일때는 애드센스가 보이구요.

 

그런데, 이렇게 겹치게 하면, 애드핏만 남을 때 클릭이 안됩니다. 보이기는 하지만요.

그리고, 애드핏 입장에서 보면, 부정사용으로 걸릴 소지도 있어 보입니다.

 

가장 좋은 방법은 애드센스광고가 안나왔을 경우에만 애드핏 광고를 보여주면 되는데요..

자바스크립트로 광고가 잘 나왔는지 체크만 할 수 있으면 그다음은 어떻게든 해보겠는데..

그게 검출이 잘 안되네요..

 

현재까지 한 방법은 다음과 같습니다.

광고태그를 감싼 div에 "adsense_sero" 라고  id를 두고

setTimeout(function() {
    let ad_text = document.getElementById("adsense_sero");
   console.log(ad_text.innerHTML);
}, 3000);

이렇게 하면, 3초후에 태그내용을 보여줍니다.

3초후에 하지 않고 바로 하면, 애드센스가 띄워지기 전이므로 내용이 원본과 같이 나옵니다.

 

3초후에 태그내용이 달라지긴 했는데, 이게 광고가 보일때나, 보이지 않을때나 내용이 똑같습니다.

그래서 결과로 아직 판단을 못하고 있습니다.

 

이후의 작업에 힌트를 주셨으면 감사하겠습니다.

 

 

  • profile
    순서를 바꾸면 되지 않나요? 애드핏을 위 애드센스를 아래... 순서를 바꾸면 좋은 광고 위치가 바뀌어서 싫으신거죠?
  • profile ?
    겹치게 하면 아랫쪽은 클릭이 안됩니다.. 윗쪽이 비어있어도요..그리고,
    기본적으로 애드센스가 위쪽에 있어야 수익이 좋아요.
  • profile ?
    위 아래라는 뜻이 수직으로 위아래로 배치했다는 뜻입니다. ... 즉.. 겹쳐서 보이는 것을 의미합니다.
    애드센스가 없으면 아래에 숨겨진 애드핏이 보입니다.. 단 클릭이 안되요.
  • profile
    var emptyContent = "<div></div>"; //대충 이렇다고 치고
    var targetNode = documet.querySelector("#targetDivID");

    setTImeout(function() {
    var currentContent = targetNode.innerHTML;
    if (currentContent == emptyContent) {
    console.log("내용이 안변햇네");
    } else {
    console.log("내용이 변했네");
    }
    }, 3000);

    요러면 어떨까요
  • profile ?
    그게... currentContent == emptyContent는 항상 다릅니다..
    즉 1,2초후가 되면, 내용이 바뀌어요..

    그런데, 광고가 있어도, 없어도 바뀐 내용이 차이가 없어요..
    다시말하자면, 바뀌긴 하는데 바뀐내용으로 광고가 나왔는지 체크가 안됩니다.
  • ? profile
    고러면 width는 어때요
    originalWidth = 0; // 0이라 치고

    currentWIdth가 만약 250 이면 수치변화 있을 텐데
  • ? profile
    아니면
    currentContent.innerHTML.includes("img"); // 이미지태그가 삽입되었는가.
    요런건 어떨까요.
  • profile ?
    고정위치라서 광고가 있던 없던 사이즈는 동일합니다.
    광고가 있을때와 없을때, 무언가 바뀌어지는 코드를 찾아야하는데,, 그걸 잘 못하고 있습니다.

    참고로 원본코드

    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <!-- 세로광고 -->
    <ins class="adsbygoogle"
    style="display:inline-block;width:160px;height:600px"
    data-ad-client="ca-pub-000000000000"
    data-ad-slot="0000000000"></ins>
    <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script>

    이거이고



    3초뒤 콜백함수로 받은 결과코드는 아래와 같습니다.

    <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <!-- 세로광고 -->
    <ins class="adsbygoogle" style="display:inline-block;width:160px;height:600px"
    data-ad-client="ca-pub-000000000000"
    data-ad-slot="000000000"
    data-adsbygoogle-status="done">
    <ins id="aswift_0_expand" style="display:inline-table;border:none;height:600px;margin:0;padding:0;position:relative;visibility:visible;width:160px;background-color:transparent;">
    <ins id="aswift_0_anchor" style="display:block;border:none;height:600px;margin:0;padding:0;position:relative;visibility:visible;width:160px;background-color:transparent;">
    <iframe width="160" height="600" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allowfullscreen="true"
    onload="var i=this.id,s=window.google_iframe_oncopy,H=s&amp;&amp;
    s.handlers,h=H&amp;&amp;H[i],w=this.contentWindow,d;try{d=w.document}catch(e){}if(h&amp;&amp;d&amp;&amp;(!d.body||!d.body.firstChild)){if(h.call){setTimeout(h,0)}else if(h.match)
    {try{h=s.upd(h,i)}catch(e){}w.location.replace(h)}}" id="aswift_0" name="aswift_0" style="left:0;position:absolute;top:0;border:0px;width:160px;height:600px;">
    </iframe></ins></ins></ins>
    <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script>


    광고 나올때나 안나올때나 같은 코드로 나옵니다..
  • ? profile
    이거 안되지 않나요? iframe 안쪽에 html이나 그런게 전혀 안보이는거 같은데요.
  • profile ?
    그래서 iframe 속에 숨어있는 코드를 찾아야 할듯합니다..ㅠ.ㅠ
  • ? profile
    전/후 코드 비교해보니 iframe 삽입여부로 판별하면 되지않을까 싶은데요.
    그거말고도 클래스명 "adsbygoogle"에도 data-status 값이 변경되있기도하고.
    요런것들로 뭐라도 하나 다른거 찾아서 전/후 비교해보면 될 것 같긴해요.
  • ? profile
    저라면 애드핏 광고 클릭 수익도 얼마 안나오니 자리를 별도로 배치하는 거로 할 것 같습니다. 겹치지 않는 범위로요. 어차피 뷰수익 정도 나라고 넣어두는 정도로 생각하는 애드핏이라...
  • profile ?
    광고 있을때와 없을 때 결과코드가 동일합니다..
    둘다 iframe삽입되었구요..ㅠㅠ
    iframe 속 소스내용이 무언지 알아내요...할듯합니다.
  • profile ?
    애드센스 광고가 안나오고 훵하니 비워져 있는게 보기 싫어서 애드핏을 올리려합니다. .
    물론 수익도 고려되어야하고요.
  • ? profile
    근데 광고가 안나와서 비어있거나 비어있지 않고 height 값 자체가 0 이라도 똑같이 아래 엘리먼트 클릭이 안될겁니다. 애드센스가 무식하게 다른 요소에 까지 영향을 주는게 문제지만요.

    광고가 안나올때 애드핏을 보여준다면 오히려 문제를 더 키우는거 아닌가요?
    애드센스 광고가 나올때는 애드핏이 클릭이 잘 될거구요.
  • profile
    document.querySelector(".adsbygoogle").dataset.adsbygoogleStatus == "done" 이거는 어떨까여.
  • profile ?
    광고 있을때나 없을때나, 모두.. done으로 나와서 비교가 안되요...
  • profile
    도움도 안되고있는데 주르륵 기본적인 아이디어만 보여드려서 죄송하네영.
  • profile ?
    아닙니다... 애쓰시는데, 해결이 안되서 제가 더 죄송합니다..ㅠ.ㅠ