사이트에 애드센스를 운영 중입니다.

홈페이지 운영을 지속하게 하는 적지 않은 자극제가 되는 게 사실이라서요,

 

다만 간혹 특정 게시글이 애드센스 운영 정책에 맞지 않는다고 삭제하거나 광고를 빼라는 요구를 받을 때가 있습니다.

 

하지만 다들 아시다시피 대부분 광고 코드는 게시판 소스에 일괄적으로 넣거나 애드온 등을 이용하기 때문에 개별적인 특정 글에서만 광고를 지우기가 어렵습니다. 글을 지우기 싫은데도 어쩔 수 없이 글을 삭제하거나 감춰놓는 방식으로 대응하곤 합니다.

 

그래서 생각한 것이 애드온 등을 이용해 특정 글번호를 입력하면 해당 글에서는 광고가 사라지게 한다면 사이트 운영에 큰 도움이 될 것 같은데요.

 

대부분 광고 코드를 < div > 등으로 감싸니 이것만 display 등을 이용해 감춰버릴 수 있을 것 같아서요,

코드를 알지 못하는 입장이라 생각만 있을 뿐 구현은 꿈도 꾸지 못하네요. ㅠ.ㅜ

 

  • profile
    https://xetown.com/rxe_tip/790520

    이걸 응용해서 시도해보시면 좋을 것 같습니다.

    포인트모듈 관리자 설명 -> 게시판설정 관리자 설명
    회원번호 -> 문서번호

    이렇게 변수만 변경해서 응용하시면.

    각 게시판마다 게시판설정의 관리자설명에 애드센스를 빼고 싶은 문서번호를 넣으면 됩니다.
  • profile profile
    호~ 그런가요?
    한번 살펴봐야겠습니다.

    감사합니다. ^^
  • profile profile

    광고를 애드온에 의해 출력하고 계신다면
    문서번호를 넣을 input 을 애드온 설정에서 추가하신 다음

    해당 문서번호로 출력을 제어할 코드를 애드온 php에 넣으시면 됩니다. 원리는 같습니다.

    @라라펠님 설명

  • ?

    애드온 설정에 ,로 글번호를 입력해 출력하지 않게 할순 있습니다.

    <?PHP
    if($called_position == "before_display_content")
    {
    $exclude = explode(",", $addon_info->ex_document_srl);
    if(array_search(Context::get("document_srl"), $exclude))
    Context::set("ads_display", FALSE);

    else

    Context::set("ads_display", TRUE);
    }
    ?>

    <element class="ads" cond="$ads_display">

  • ?
    array_search( ... , ... , TRUE) 3번째 인자를 true로 설정해야 합니다. 빼먹었네요
  • ? profile
    정말 감사합니다. ^^
    연구해서 방법을 찾아 보겠습니다.
  • ? profile

    이래 저래 연구해 보고 있는데 초보라 너무 모르는 것 같네요.

     

    조언주신 코드를 적용해도 $ads_display 값을 받아오지 못하는지 반응이 없습니다.

     

    <?PHP
    if($called_position == "before_display_content")
    {
    $exclude = explode(",", $addon_info->ex_document_srl);
    if(array_search(Context::get("document_srl"), $exclude))
    Context::set("ads_display", FALSE);

    else

    Context::set("ads_display", TRUE);
    }
    ?>

     

    코드는 애드온 파일에 작성해 넣고,

     

    <element class="ads" cond="$ads_display"> 을 본문에 넣었지만 광고가 전부 사라지네요.

     

     

    그래서 혹시나 해서

     

    대신 매뉴얼로 특정 주소를 직접 넣어 봤습니다. 아래처럼


    <element class="ads" cond="$oDocument->document_srl != '1259607'">
    광고 코드

    </element>

     

    이렇게 하면 해당 글만 광고가 사라지고 나머지 글은 전부 광고가 잘 나타납니다.

     

     

    그럼 결론적으로 $ads_display 값을 읽지 못해 무조건 감추는 것 아닌가 싶네요.

     

    혹시 뭐가 잘못된 것일까요?

     

    감사합니다.

     

  • profile profile
    애드온 conf 폴더의 info.xml 파일에
    $addon_info->ex_document_srl

    해당하는 input을 만들어주신건가요?
  • profile profile

    코드를 상단쯤으로 이동하거나 혹은 애드센스 출력하는 부분보다 위쪽에.. 작성하신다음..

    if(Context::get('ads_display') == 'FALSE' ) return;

    이렇게 하시면 되지 않을까요?

     

     

    혹은 기존에 하신 방식대로..

    <element class="ads" cond="Context::get('ads_display') == 'TRUE">

  • profile profile
    그리고 댓글에..

    array_search( ... , ... , TRUE) 3번째 인자를 true로 설정해야 합니다. 빼먹었네요

    이런 답변도 해주셨네요.
  • profile profile

    이렇게 넣었습니다만, 뭐가 잘못된 걸까요? ㅠ.ㅜ

     

    <?xml version="1.0" encoding="UTF-8"?>
    <addon version="0.1">
        <title xml:lang="ko">특정 글에서 광고제거 애드온</title>
        <description xml:lang="ko">
            특정 글 번호 입력해 해당 글에서 광고를 제거합니다
        </description>
        <version>0.1</version>
        <date>2018-02-23</date>

        <author email_address="[email protected]" link="http://xxxxx.kr/">
            <name xml:lang="ko">unknown</name>
        </author>

        <extra_vars>
            <var name="ex_document_srl">
                <title xml:lang="ko">글 번호</title>
                <description xml:lang="ko">광고를 표시하지 않을 글 번호 입력. 다수 번호 입력 시 ','로 구분해 주세요.</description>
            </var>
        </extra_vars>
    </addon>

     

     

  • profile profile
    위 댓글에는 빼먹었는데 TRUE 인자도 넣었습니다.

    if(array_search(Context::get("document_srl"), $exclude, TRUE))

    이렇게요..
  • profile profile
    애드온을 새로 만드셨군요. 기존 애드센스 출력하는 애드온에 추가한게 아니구..
    <addon version="0.2"> 버전은 이렇게 하셔야 합니다.


    <var name="ex_document_srl">

    type="textarea" 이 빠진거 같구요...
  • profile ?
    맨위에 {@ $ads_display = Context::get("ads_display") } 하시면 될거에요
  • ? profile
    맨위라고 하시는 부분이 <element --- > 구문 위를 말씀하시는 건가요?
    그렇게 해도 처음과 같이 해당 구문과는 상관없이 광고 모두 사라지네요 ..

    고수 분들이 일러 주셔도 제대로 이해를 못하고 있나 봅니다. ㅠ.ㅜ
  • profile profile

    $oDocument->document_srl

    이게 된다고 하셨으니..

    if(array_search($oDocument->document_srl, $exclude, TRUE)

    이렇게 해보시면 어떨까요?

     

     

    cond에  $ads_display  를 쓰셔도 되고 아니면 제가 말씀 드린 것으로 쓸지는 상관 없을 것 같습니다.  $ads_display 를 쓰려면 상단에 코드를 적어야 하구요.

  • profile profile
    그렇게 해도 안되는 걸 보면 아무래도 애드온에서 받아들인 글번호 데이터를 게시판 본문 파일에서 읽어들이지 못하나 봅니다.
  • profile profile
    혹시나 해서 애드온 php 파일에

    echo "<script>window.alert($ads_display);</script>";

    를 넣어서 메시지 창을 표출해 봤습니다만, 빈 창만 나오는 걸 보면 $ads_display 에 아무런 데이타가 안들어간 것 같습니다.
  • profile profile
    혹시 모르니
    Context::set('ads_display', 'FALSE');

    이런식으로 고쳐보실래요?
  • profile profile

    그리고 {@ $ads_display = Context::get("ads_display") }

    템플릿에서 작성해 주신건데

    애드온 php에서 출력하려고 하면 출력이 되는게 맞나요?

    출력을 해보시려면..

    스킨에서...

    {$ads_display}

     

    해보셔야 하는거 아닌지...

  • profile profile
    상식적으로는 스킨에 말씀하신 {$ads_display} 을 넣으면 글번호가 화면(글 본문)에 나타나야 하는데,,,, 암 것도 ㅠ.ㅜ

    결국 예상할 수 있는 건 어떤 이유에선지 애드온에서 $ads_display (글 번호) 데이터가 생성되지 않았다고 볼 수 밖에...

    하아~~ 힘들군요
  • profile profile
    글번호가 아닌데요. php에서 TRUE, FALSE 둘중 하나를 넣는거 아닌가요?
  • profile profile

    착각했습니다. 글번호가 아니라 true, false 등이 맞습니다.

  • profile profile
    그럼 차라리 제가 했던 방식으로 해보시는건 어떤가요? 굳이 애드온 하나 더 돌릴필요 없이..

    레이아웃이나 보드스킨에 코드 작성하면 될 것 같은데요..

    {@ $notallow_ad = explode(',', $module_info->description);}



    광고 코드 div 엘리먼트에


    cond="!in_array($oDocument->document_srl,$notallow_ad)"
    추가


    되려나요......
  • profile profile

    우와 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    대단하십니다..

    게시판 설명 란에 글번호 넣고,
    게시판 스킨에 말씀하신 코드 넣고, div element 넣었더니 해당 글만 광고가 안나오네요 ㅎㅎㅎ

    그런데 글 한개만 되네요.. ㅠ.ㅜ

  • profile profile
    이건 제가 포인트러쉬 모듈에서 이미 해본거라...

    다른분께서 cond 조건으로 사용하게 in_array($oDocument->document_srl,$notallow_ad) 값을 변수로 설정하는 것을 알려주셨으면 좋겠습니다. 저는 코알못이라..

    저는 한군데서 사용하니 그냥 썼는데요.

    여러군데 광고에 사용하려면 한번만 비교해서 그 변수를 여러곳에서 쓰면 좋을 것 같아서요.
  • profile profile

    글번호 콤마로 넣으면 되어야 하는건데요.. 흠.......

     

    모듈단위로 메모에서 불러오게 되어 있습니다. 각 게시판에 맞는 게시판 설정 페이지에 넣으셔야 해요.

  • profile profile
    글 나머지 한개가 같은 게시판의 글 인가요?
  • profile profile
    죄송합니다.
    제가 게시판 하나에만 설정하고 다른 게시판 글 번호를 넣었네요..

    해당 게시판에서 몇 개의 글번호를 넣든 잘 되네요...

    다시 한번 귀한 시간, 조언에 감사 드립니다.
  • profile profile

    타임라인 게시판에 대응하셔야 하니 타임라인게시판 메모에는 모든 글번호 다 넣으셔야 할 것 같아요.
    원게시판 모듈 가져오는 코드를 쓰면 되지만 .... 그냥 타임라인 게시판 메모에도 넣어주시는게 좋을 것 같아요.

     

    그리고 사이드에 넣으신 광고에도 같은 조건 걸어주시구요. 사이드뿐 아니라 모든 광고가 나오면 안되니 모든 광고에....

  • profile profile
    조언 감사합니다.
    여러모로 늘 많이 배웁니다.
  • profile
    확장변수로 관리자만 체크하도록 해서 하는 방법이 있죠