2011. 12. 19. 15:00

애드센스에는 맞춤체널이라는 것이 있습니다.
맞춤체널을 이용한 애드센스 최적화는 이미 많이 알려진 내용이지요.
문제는 저처럼 블로그하나에 2~3개의 주제를 담고 있는 경우 광고가 사방팔방으로 나온다는 단점이 있습니다-_-;

물론 추적코드를 통해 어느정도 매칭 되긴 합니다.
하지만 원하는 맞춤체널을 출력할수 없다는 문제가 있었죠.

처음엔 그냥 그러려니 했다가 얼마전 두두맨 님의 글을 읽고 특정 맞춤체널을 특정글에 자동으로 넣을수 없을 까라는 생각을 했습니다.
(참고 : 두두맨님 블로그 - 애드센스 수익 1000달러)
그러다 떠오른 아이디어가 글에 있는 태그를 읽어와 특정 체널을 출력하는 것이였습니다.
결과적으로 실패 ㅡ.-;;
태그로드가 애드센스보다 느려서 계속 빈값만-_-;

결국 때려치고 글이 포함되어 있는 카테고로 구분하는 것으로 마무리 했습니다 ㅡ.-;;

1.준비작업
일단 특정 카테고리에 사용할 광고를 만듭니다.

저같은 경우 일단 "게임" 카테고리에 적용을 할 예정이므로 게임관련 맞춤체널과 광고를 만들었습니다.


게임 전용 맞춤 체널을 만들고


게임 전용 광고 단위를 만듭니다.

여기서 중요한건 광고 단위의 ID입니다.
꼭 기억해 두세요.

2.코드 넣기
HTML/CSS수정으로 들어가서 HTML에서 아무 스크립트 선언부 안에다 다음 코드를 넣으시면 됩니다.

"사용할 데이터" 부분을 자신에게 맞게 수정합니다.

"사용할 데이터는" 자신의 최상위 카테고리 하나만 슬러쉬(/)전 까지만 판별합니다.
카테고리명에 슬러쉬(/)가 들어간경우 주의해 주세요.

"광고 단위ID"는 아까 만든 '광고 단위'의 아이디 입니다.
이거 제코드 그냥 쓰시면 서로 광고수익 못먹습니다-_-;
재대로 확인해 주세요.

광고 위치의 경우 제 블로그는 한글에 3개의 광고가 출력되므로 0,1,2 를 사용합니다.
광고 갯수에 맞게 조절하시면 되겠습니다.

코드의 아래쪽에 있는기본값 코드도 수정해주시면 됩니다.


<script type="text/javascript">
function Tageting( sCategory, nPosition)
{
    /*
    애드센스 타켓팅 리턴 함수
     개발 : DangGun Roleeyas(http://blog.DangGun.net)
    라이센스 : 사용전 http://blog.danggun.net/817 에 덧글 남겨 주세요
                수정하시는 경우 주석 꼭달아주시고 수정이력 꼭 적어주세요.
              라이센스 정보를 지우거나 수정한 배포할수 없습니다.

    수정이력 : 2011-12-19, DangGun Roleeyas - 태그판별에서 카테고리 판별로 변경
	
    매개 변수
    sCategory : 문자열, 판단용 테그 데이터
    nPosition : 광고 위치
	
    리턴
    문자열, 애드센스 관고 단위ID
    */


    //리턴할 데이터
    var sReturn = "";

    var nFlag = 0;

    //사용할 데이터
    /*
    단어

    광고 위치는 1개이상의 광고단위를 쓸때만 필요합니다.
    나머지 경우에는 숫자 하나로 적으시면 됩니다.
    0 : 상단 중앙
    1 : 상단 오른쪽
    2 : 하단 왼쪽	
    */
    var sData =
    [
	//단어,		광고 단위ID,	광고 위치
	["게임",		"6176732821",	1],
	["프로그래밍",	"2396219801",	0],
	["당근의 생각",	"0220666043",	1]
    ];

    //태그 내용을 분리 합니다.
    var sCategorys = sCategory.split('/');

    for(var i = 0 ; i < sData.length; ++i)
    {
	    //광고 위치가 같은지?
	    if( nPosition == sData[i][2])
	    {
                //광고 위치가 같다.

                //단어가 일치 하는 지 찾는다.
                //대분류 카테고리만 찾음
                if( sData[i][0] == sCategorys[0] )
                {
                    //일치 한다!
                    //값을 넣고 중지!
                    sReturn = sData[i][1];
                    nFlag = 1;
                    break;
                }

	    }

    }//end i

    //일치한 값이 있는지?
    if( 0 == nFlag)
    {
	//기본값을 넣어 준다.
        switch(nPosition)
        {
            case 0:
            sReturn = "2396219801";
            break;

            case 1:
            sReturn = "0220666043";
            break;

            case 2:
            sReturn = "9666365799";
            break;

            default:
            sReturn = "2396219801";
            break;
        }
    }

    return sReturn;
}

</script>

모르겠으면 애드센스 추적 코드 및에 넣으시면 됩니다.

대충 어디에 넣었는지 알겠지요?


3.애드 센스에 적용
이제 이 함수를 애드센스에서 불러와야 합니다.
애드 센스 출력 코드로 가서

google_ad_slot = "2396219801";
이런 식으로 되어있는 코드를

google_ad_slot = Tageting("", 1);
이런식으로 교체 해 줍니다.

뒤에 붙은 숫자는 광고 구분용이므로 자신에게 맞게 숫자를 줍니다.

자신에게 맞게 수정합니다.

4.문제 해결
만약 광고가 재대로 출력되지 않거나 빈패이지가 출력된다면 코드 잘못 넣으신 겁니다 ㅡ.-;;
코드 넣는거 다시 확인해주시고 적용한 패이지를 링크해주시면 확인해 드리겠습니다.

첫로딩속도가 좀 느릴수 있는데 이것은 애드센스를 카테고리에 맞게 새로 불러올때 항상발생하는 문제라 방법이 없습니다 ㅡ.-;
자주오시는 분들은 빨리 뜨죠 ㅎㅎㅎ

문제는 맞춤체널이 얼마나 정확하게 광고를 주느냐가 이 코드의 효율성을 결정할텐데...지금까지의 경험에 의하면 그닥-_-;
이 코드로 인해 정확한 타켓팅이 가능해진다면 광고주도 좋고 광고자도 좋고 할텐데 얼마나 효율적인지는 모르겠네요.
전 한두달 정도 테스트 해보고 뺄지 말지 결정할 예정입니다 ㅎㅎ

이걸 응용하면 자동으로 특정 카테고리는 애드센스 대신 리얼센스를 출력해준다던지 특정재목의 글은 광고가 나오지 않는 다던지  하는 작업도 가능합니다.
연구들 해보세요 ㅎㅎㅎ