워드프레스용 애드센스 부정 클릭 무효 트래픽 방지 플러그인

Last Updated: 2024년 01월 30일 | 35개 댓글

몇 달 전에 어떤 분이 어떠한 부정 행위를 한 적이 없었지만 애드센스 계정이 정지되었다고 하더군요. 이런 경우는 정말 드물겠지만, 아무런 잘못(어뷰징)이 없는 데 갑자기 애드센스 계정이 정지되면 정말 난감해질 것 같습니다.

해외 커뮤니티의 어떤 글을 보니까 이유도 없이 일부러 남의 사이트의 애드센스 광고를 계속 클릭하여 정지를 당하도록 유도하는 경우가 있다고 합니다. 이런 행위를 "Click Booming"(클릭 폭탄?)이라고 합니다.

물론 자신의 사이트에 있는 광고를 연속하여 계속 클릭하게 되면 부정클릭(무효 트래픽)이 되어서 계정이 정지 당하게 되겠죠. 하지만 다른 사람이 그런 행위를 하는 것을 통제할 수 없는 것이 문제인 것 같습니다.

만약 누군가가 고의로 내 사이트의 구글 광고를 계속 클릭하는 것이 의심되면 다음 양식을 통해 구글에 즉시 신고해야 합니다.

그럼 미리 방지할 수는 없을까요? 이러한 무효 트래픽 공격이 염려된다면 AdSense Invalid Click Protector (AICP)라는 플러그인을 사용해볼 수 있습니다. AICP와 비슷하지만 설치와 설정이 간단한 Clickfraud Monitor라는 플러그인도 있습니다.

워드프레스용 애드센스 부정 클릭 방지 플러그인(무효 트래픽 방지 플러그인) - AdSense Invalid Click Protector (AICP)

애드센스 부정 클릭 방지 플러그인

클릭 폭탄과 무효 클릭으로부터 AdSense 계정을 보호해 준다고 하네요.

다음 YouTube 영상("AdSense Invalid Click Protector WordPress Plugin Demonstration & Explanation")을 통해 이 플러그인이 어떻게 작동하는지 확인해볼 수 있습니다.

기존 동영상이 제거되어 새 유튜브 영상으로 대체했습니다. AdSense Invalid Click Protector (AICP) 플러그인은 현재 5만 개 이상의 사이트에 설치되어 사용되고 있으며 활발히 유지 관리되는 것 같습니다.

숏코드로 광고 삽입하기

무료 클릭으로부터 보호하려면 기본적으로 다음과 같은 두 가지 단계가 필요합니다.

  1. 프런트엔드에 광고 코드를 표시하고자 하는 곳에 if( aicp_can_see_ads() ) { /* return your ad code here */ } 블록을 삽입합니다.
  2. 광고 코드 부분을 <div class="aicp">...</div>로 감쌉니다.

적절한 테마 파일에 위와 같은 방식으로 광고 코드를 추가할 수 있습니다.

쉬운 방법으로 숏코드를 만들어서 광고를 표시할 수 있습니다. PHP 5.3 이상에서는 다음과 같은 코드를 테마의 함수 파일에 추가하도록 합니다.

add_shortcode( 'your_shortcode_name', function() {
    if( aicp_can_see_ads() ) { // This part will show ads to your non-banned visitors, 이 부분은 차단되지 않은 방문자들에게 광고를 표시합니다
        $adCode = '<div class="aicp"><!-- Don\'t forget to add this div with aicp class -->
        <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
        <!-- Responsive Ad Code -->
        <ins class="adsbygoogle"
             style="display:block"
             data-ad-client="ca-pub-1234567890"
             data-ad-slot="0987654321"
             data-ad-format="auto"></ins>
        <script>
        (adsbygoogle = window.adsbygoogle || []).push({});
        </script>
        </div><!-- end of the aicp div -->';
        return $adCode;
    } else { // Anything within this part will be shown to your banned visitors or to the blocked country visitors, 금지된 방문자나 차단된 국가 방문자들에게 표시되는 문구
        return '<div class="error">You have been blocked from seeing ads.</div>';
    }
} );

your_shortcode_name 부분을 적절한 숏코드 이름으로 대체합니다. 여러 가지 광고 단위를 생성하는 경우, 각 광고 단위에 대하여 위의 코드 형식을 추가하여 숏코드를 만들 수 있으며, 각 숏코드 이름은 고유해야 합니다. (예: adsense_1, adsense_2...)

PHP 버전이 5.2 이하인 경우에는 플러그인 사이트에 제시된 코드를 이용하시기 바랍니다. 워드프레스 권장 PHP 버전은 7.4 이상이므로 PHP 5.x를 이용하는 경우 가급적 PHP 7.4 이상으로 업그레이드하는 것을 권장합니다.

위와 같은 코드를 테마의 함수 파일에 추가했다면 광고를 표시할 부분에

[adsense_1]

등과 같은 형식으로 숏코드를 입력합니다.

엘리멘터 페이지 빌더의 테마 빌더나 아바다 테마의 레이아웃 템플릿을 사용하여 템플릿을 작성하는 경우 템플릿 파일의 적절한 곳에 숏코드를 입력할 수 있고, 사이드바에 표시하고 싶은 경우 사이드바의 원하는 곳에 숏코드를 추가할 수 있습니다.

※이 플러그인은 구글 자동 광고에서는 작동하지 않는다고 합니다. 하지만 업데이트가 되면서 자동 광고를 지원할 가능성이 있으므로 자동 광고 지원에 대하여 플러그인 개발자에게 문의해보시기 바랍니다.

참고:


35 개 댓글

Leave a Comment

    • 모바일에 대하여 검색해보니 작동 안 한다고 하는 내용은 찾아볼 수 없네요.
      다음의 경우 AICP 플러그인이 작동하지 않는 것 같습니다.
      - 자동 광고
      - 캐시 플러그인 활성화 시. 서버 캐시도 비활성화 해야 작동하는 것 같습니다.

      응답
      • 플러그인 사이트 자주하는 질문 마지막에 이런 질문과 답변이 있네요. 모바일에서는 작동을 안하나봐요.

        Does this plugin tracks click on mobile devices?

        This plugin doesn’t work on mobile devices such as smartphones and tablets, because this hardware uses a touchscreen instead of a mouse as click input. This design makes the boundary monitoring trick ineffective.

      • 네, 정말 그렇네요. 스마트폰에서 짧은 시간에 많은 터치를 하여 무효 클릭 공격을 할 것 같지는 않지만, 만약 모바일 폰을 이용하여 무효 클릭 공격이 들어오면 막을 수 없을 것 같네요.

  1. add_shortcode( ‘abc', function() {
    if( aicp_can_see_ads() ) { // This part will show ads to your non-banned visitors, 이 부분은 차단되지 않은 방문자들에게 광고를 표시합니다
    $adCode = '

    본인 광고 코드

    ';
    return $adCode;
    } else { // Anything within this part will be shown to your banned visitors or to the blocked country visitors, 금지된 방문자나 차단된 국가 방문자들에게 표시되는 문구
    return 'You have been blocked from seeing ads.';
    }
    } );

    이런식으로 함수파일(functions.php)에 코드 추가 후 [abc] 라는 숏코드를 게시글 중간에 삽입 하려면 ‘쇼트코드’로 삽입해야 하나요 아님 ‘사용자 정의 HTML’로 삽입해야 하나요?

    응답
    • 네, 숏코드를 만든 다음, 글 중간이나 사이드바 등의 원하는 곳에 추가할 수 있습니다. 참고로 자동 광고 기능은 지원되지 않고 수동으로만 가능할 것입니다.

      응답
  2. 함수 파일에 코드는 추가 했는데요. 바로 다음 부분에서 광고를 표시할 부분에 [adsense_1] 등과 같은 형식으로 숏코드를 입력하라는 부분이 어떻게 하는 건줄 모르겠습니다 ㅠㅠ

    응답
      • Ad Inserter에 추가할때는 함수 파일에 추가하는 코드를 입력해야 하나요 아님 숏코드를 입력해야 하나요?

      • PHP 코드로 입력해야 하나요? 참고글 봐도 코드를 만들줄 모르겠는데 Ad Inserter에 추가 할때는 어떤 코드로 입력해야 하는지 알려주실 수 있나요?ㅜㅜ

      • 살펴보니 캐시 플러그인이 설치되어 있다면 작동하지 않을 수 있다고 하네요.

        If you have enabled Cloudflare for your domain, it is fine as by default Cloudflare only caches static files (like CSS/JS/Images etc) but not the page itself. So, you should not be having any issues. Just don’t add any kind of page cache system or plugin on your website. All requests needs to be handled by the PHP and no server level or plugin level cache.

        플러그인 레벨이나 서버 레벨의 캐시가 있으면 안 되고 PHP에 의해서만 모든 요청이 처리되어야 합니다. 가령 클라우드웨이즈의 경우 서버 캐시를 비활성화하고 Breeze 캐시 플러그인도 비활성화해야 작동할 것입니다.

      • 클라우드웨이즈에서 서버 캐시를 비활성화 하였고 W3 Total Cache 플러그인 또한 비활성화 하였는데

        글 중간에 쇼트코드로 삽입한 숏코드 광고는 차단이 되는데 Ad Inserter에 숏코드로 삽입한 광고는 차단이 되지 않습니다.

      • 다음 글을 참고하여 PHP 코드로 추가해보시기 바랍니다.

        https://wordpress.org/support/topic/some-acip-codes-visible-after-ad-inserter-latest-update/page/2/

        PHP 코드가 표시되려면 DISALLOW_FILE_EDIT가 활성화되어 있으면 안 됩니다.

        보안을 위해서는 DISALLOW_FILE_EDIT를 활성화하는 것이 바람직하지만, 알림판에서 PHP 코드를 실행하도록 허용하려면 DISALLOW_FILE_EDIT을 활성화하는 코드가 wp-config.php 파일에 추가되어서는 안 됩니다.

        https://cafe.naver.com/wphomepage/167

        만약 이 방법으로도 안 된다면 Ad inserter 개발자와 ACIP 개발자에게 이 문제를 문의해보시기 바랍니다.

      • Ad Inserter에서 php 버튼 활성화 후 PHP 코드로 추가하고 wp-config.php 파일에 define('DISALLOW_FILE_EDIT', true); 추가했는데 홈페이지가 이상하게 표시되네요 ㅠㅠ

      • 이제야 되는거 같은데 이 코드에서 금지된 방문자나 차단된 국가 방문자들에게 표시되는 문구는 어떻게 추가하나요?

        <?php
        if( aicp_can_see_ads() ) { // 이 부분은 차단되지 않은 방문자들에게 광고를 표시합니다
        $adCode = '

        (adsbygoogle = window.adsbygoogle || []).push({});

        ';
        echo $adCode;
        }
        ?>

      • 플러그인 페이지에 제시된 코드에서

        } else { // Anything within this part will be shown to your banned visitors or to the blocked country visitors
        return '<div class="error">You have been blocked from seeing ads.</div>';
        }

        "You have been blocked from seeing ads" 부분을 수정하시면 됩니다.

      • 이게 맞나요? 광고는 표시 되는데 차단해도 차단 문구는 안나오네요.

        <?php
        if( aicp_can_see_ads() ) { // This part will show ads to your non-banned visitors
        $adCode = '

        애드센스 광고 코드

        ';
        echo $adCode;
        } else { // Anything within this part will be shown to your banned visitors or to the blocked country visitors
        return 'You have been blocked from seeing ads.';
        }
        ?>

      • 플러그인 사이트에 보시면 두 가지 숏코드가 나옵니다. 위쪽이 아닌 아래쪽 코드를 이용해보세요. 아래쪽 코드가 PHP 5.3 이상 버전에서 작동합니다.

        참고로 워드프레스 댓글란에 HTML 태그를 표시하려는 경우에는 여기에서 <와 >를 일괄 변환한 후에 입력해야 댓글 창에 HTML 태그가 올바르게 표시됩니다.

      • <?php
        if( aicp_can_see_ads() ) { // This part will show ads to your non-banned visitors
        $adCode = '

        애드센스 광고 코드

        ';
        echo $adCode;
        } else { // Anything within this part will be shown to your banned visitors or to the blocked country visitors
        return 'You have been blocked from seeing ads.';
        }
        ?>

        이제 올바르게 표시 되었나요? php 코드로 넣을 경우 차단 문구를 이런 식으로 추가하는게 맞을까요?

  3. 구글에서는 언젠가 이야기하길 자기들이 바보가 아니다. 부정클릭등은 시스템으로 알아낸다고 자신하던데..

    이런 장난이 잘 걸러지지는 않나 보네요

    응답
    • 부정클릭으로 인해 계정이 정지되는 경우는 정말로 드물 것입니다.
      그대로 아예 없는 것은 아닌 것 같습니다.
      실제로 그런 분을 본 적이 있고요.

      하지만 블로그보다는, 요즘 유튜브에서 부정 클릭 때문에 계정이 정지 당하는 일이 간혹 있는가 봅니다.

      응답
    • 해외 커뮤니티 글을 보면 '아무 이유 없이' 그런다고 하네요ㅎㅎ

      그런 사람은 드물겠지만 제 블로그에는 그런 일을 당하기 않기를 바랄 뿐입니다.

      응답
    • 보복성으로 이런 짓을 하는 사람들이 존재한다고 합니다. 유투브의 경우에도 특정집단에 밉보이거나 하면 VPN을 써서 해당 계정의 광고를 공격한뒤에 애드센스 30일 블럭 또는 영구 블럭을 먹이는 행위가 더러 있더군요

      응답
  4. 요즘 논란이 되고 있는 것중에 유투버의 광고를 고의 클릭하여 30일 정지시키고, 정지가 풀리자마자 계속해서 영구정지까지 만드는 사례가 있다고 하는데 유투브의 경우 웹사이트와는 달리 딱히 이것을 억제할 대안이 없다보니 속수무책 같더군요

    응답