소셜로그인 중단 안내

계정으로 로그인 기능이 2023년 11월 16일 중단되었습니다.

아이보스 계정이 사라지는 것은 절대 아니며, 계정의 이메일 주소를 이용해 로그인 하실 수 있습니다.

▶️ 자세한 공지사항 확인

구글 태그관리자를 활용하여 검색광고 캠페인 추적 설정하기

2017.01.02 17:34

김종진

조회수 15,451

댓글 30

캠페인 태깅 없이 네이버/다음의 키워드광고 캠페인 추적하기


 

 

 

 

구글 애널리틱스(GA)에서 유입출처와 경로는 소스/매체(source/medium) 측정기준을 통해 분석이 가능합니다. 소스는 트래픽의 출처를 의미하며, 매체는 방문자가 웹사이트에 유입되는 경로 또는 방식을 나타냅니다. 이 중 매체는 유입채널을 구분하는 가장 큰 단위이자 중요한 기준에 해당되는데요, GA에서 자동으로 수집되는 매체로는 추천(referral), 직접(none) 및 자연검색(organic)이 있습니다. 

 

 

 

매체는 리퍼러(referrer, 웹 브라우저로 웹을 서핑할 때 하이퍼링크를 통해서 각각의 사이트로 방문시 남는 흔적으로 현재 페이지로 방문하기 직전 웹페이지 주소를 말함)의 존재 유무를 기준으로 리퍼러가 없는 경우는 직접으로, 있는 경우는 추천으로 분류됩니다. 그리고 추천 유입 중 검색어가 있는 경우(즉, 네이버, 구글 등의 검색엔진을 통해 유입된 경우) 자연검색으로 분류됩니다. 

 

여기서 문제는 별도의 설정이 없는 경우(기본 추적코드만을 심은 경우) 네이버 클릭초이스 상품과 같은 검색광고가 자연검색으로 분류되고, 쇼핑박스와 같은 배너광고가 추천으로 분류되는 등 별도로 구분해서 분석할 필요가 있는 광고/마케팅 채널이 일반적인 자연검색 혹은 추천 유입과 구분되지 않는다는 점입니다. 따라서 이들 유입을 별도로 구분하여 성과 측정을 하고자 하는 경우 캠페인 태깅(campaign tagging)을 통해 맞춤 캠페인 추적 설정을 해야 합니다.

 

캠페인 태깅은 URL 작성도구(URL Builder)나 엑셀 매크로를 사용해서 우리 웹사이트로 연결되는 링크(광고 또는 홍보시 제공하는 연결 URL)에 캠페인 매개변수(parameter, 파라미터) 정보를 추가하는 것을 말하며, 자세한 설정 방법은 이전 포스팅( [Google Analytics] 6. 구글 애널리틱스 맞춤 캠페인 설정 )을 참조하시기 바랍니다.

 

맞춤 캠페인 추적 설정은 유입채널을 세분화하여 구분할 수 있는 매우 유용한 방법이지만 캠페인을 진행할 때마다 일일히 설정을 해주어야 하기 때문에 상당히 번거로운 작업이 될 수 있습니다. 특히 검색광고처럼 키워드별로 일일히 캠페인 설정을 해야 하는 경우는 엑셀 매크로를 사용하지 않고서는 감당할 수 없을만큼 작업량이 많아집니다.

 

하지만  특정 채널에서 웹사이트로 유입될 때 리퍼러 혹은 도착페이지 주소 내에 해당 채널만이 갖는 고유한 값이 포함되어 있다면 구글 태그관리자를 사용해서 캠페인 태깅 없이도 캠페인을 추적할 수 있습니다. 대표적으로 네이버와 다음의 검색광고 상품인 클릭초이스와 클릭스가 이러한 경우에 해당합니다.

 

오늘은 이들 검색광고를 대상으로 매개변수 정보를 추가하는 방식의 수동 태깅(manual tagging)을 하지 않고도 캠페인을 설정하는 방법을 설명하도록 하겠습니다. 아래 설명 내용을 충분히 이해하기 위해서는 약간의 개발지식(자바스크립트에 대한 이해)이 필요합니다만, 전체 흐름을 쫓아갈 수 있다면 제공되는 스크립트 코드를 복사/붙여넣기하는 방식으로 얼마든지 태그를 만들어서 운영할 수 있을 것으로 생각합니다.

 

 

우선 실행 단계는 아래와 같이 크게 3 단계로 요약할 수 있습니다. 

 

1. 유입 정보(도착 URL) 내 클릭초이스 혹은 클릭스의 고유식별자 정보가 있는지를 확인하여 존재하는 경우 해당 키워드 등을 변수에 저장


2. 고유식별자 변수가 존재하는 경우 각 캠페인 항목(소스, 매체, 캠페인, 키워드, 광고콘텐츠) 이름으로 변수를 생성한 후 각 항목에 적정한 캠페인 값을 지정하여 저장


3. 구글애널리틱스 기본(페이지뷰) 태그 내 기타 설정 > 설정할 입력란 항목에서 좌측 입력란 이름에 각 캠페인 항목 필드명을 입력하고 우측 값 입력란에 이에 해당하는 변수를 입력

 

 

그럼 이제부터 구체적으로 각 단계별 변수를 생성하고 태그를 구성하는 방법을 설명하도록 하겠습니다. 

 

 

단계 1 – 고유식별자 확인 및 변수 만들기

 

 

1) 네이버 검색광고  

 

 

 

 

  

네이버 검색창에서 검색어를 입력한 후 검색을 하면 상단 이미지와 같은 화면이 나오며, 파워링크 섹션에 노출된 키워드광고 링크를 누르면 하단 이미지와 같이 키워드를 등록한 광고주 사이트로 이동합니다. 도착한 웹사이트 랜딩페이지 주소창을 보면 아래와 같이 해당 웹사이트 주소 이외에도, 광고 성과를 추적할 수 있도록 네이버 광고시스템에서 제공한 개별 광고 클릭 정보를 확인할 수 있습니다.

 

http://www.brownbagcoffee.co.kr/?n_media=27758&n_query=브라운백커피&n_rank=1&n_ad_group=grp-a001-01-000000001884523&n_ad=nad-a001-01-000000006913037&n_keyword_id=nkw-a001-01-000000336811134&n_keyword=브라운백커피&n_campaign_type=1&NaPm=ct=ix75me88|ci=0zq0001z3Q9mBpcLzeO2|tr=sa|hk=7329ed5fe29291bd8df45ae9bc1b40c4ba788552

  

  • n_media=2775 (매체 고유ID)
  • n_query=브라운백커피 (이용자검색어)
  • n_rank=1 (광고의 순위)
  • n_ad_group=grp-a001-01-000000001884523 (광고그룹 고유ID)
  • n_ad=nad-a001-01-000000006913037 (소재 고유ID)
  • n_keyword_id=nkw-a001-01-000000336811134 (키워드ID)
  • n_keyword=브라운백커피 (키워드)
  • n_campaign_type=1

 

네이버 검색광고 추적 URL 기능 참조페이지

  

http://searchad.naver.com/AIHM20/AIHM2002_A01.nbp?noticeId=2793&category=1&pageNum=5&recordsPerPage=20&searchType=0&keyword= 

http://searchad.naver.com/AIHM20/AIHM2002_A01.nbp?noticeId=2883&category=1&pageNum=2&recordsPerPage=20&searchType=0&keyword= 

http://saedu.naver.com/help/faq/ncc/view.nhn?faqSeq=120#tracking 

 

이들 항목에 사용된 매개변수들은 사실상 네이버 키워드광고에서만 사용한다고 볼 수 있으므로 대부분 고유식별자로 사용 가능합니다. 이들 항목 중 이번 캠페인 설정에서는 키워드(n_keyword)와 광고 순위(n_rank) 매개변수를 사용할 예정이며 아래와 같은 방식으로 해당 변수 값을 추출합니다.

 

 

# 네이버 키워드(n_keyword) 변수

 

■ 변수 이름 : keyword_n_keyword (적절한 이름을 임의 지정)

 

■ 변수 구성

 

  - 변수 유형 : '맞춤 자바스크립트' 선택

 

  - 맞춤 자바스크립트 : 박스 내 아래와 같이 n_keyword 변수 값을 추출하는 자바스크립트(함수) 추가

 

 

function( ) { 

  var regexS = "[\\?&]n_keyword=([^&#]*)";

  var regex = new RegExp( regexS );

  var results = regex.exec( document.location.href );

  return results[1];

}

 

* 위 변수는 도착페이지 URL에 n_keyword 매개변수(파라미터)가 존재하는 경우 해당 변수의 값 즉 키워드를 추출하는 변수로서 변수 유형은 '맞춤 자바스크립트' 유형입니다. 해당 키워드를 추출하는 것이 목적으로 변수 유형이나 자바스크립트 코드를 꼭 위와 동일하게 만들어야 하는 것은 아닙니다. 다시 말해서 해당 키워드 값을 반환해주는 변수를 생성하면 됩니다. 이하 설명하는 변수들에서 동일한 규칙이 적용됩니다.

 

 

# 광고의 순위(n_rank) 변수 

 

■ 변수 이름 : keyword_n_rank (적절한 이름을 임의로 지정)

 

■ 변수 구성

 

  - 변수 유형 : '맞춤 자바스크립트' 선택

 

  - 맞춤 자바스크립트 : 박스 내 아래와 같이 n_rank 변수 값을 추출하는 자바스크립트(함수) 추가

 

 

 

function( ) {

  var regexS = "[\\?&]n_rank=([^&#]*)";

  var regex = new RegExp( regexS );

  var results = regex.exec( document.location.href );

  return results[1];

}

위 키워드에서와 같은 방식으로 광고 순위(n_rank) 값을 추출하여 변수에 저장합니다.

 

 

 

2) 다음 검색광고 

 

 

 

 

 

다음 키워드광고 또한 네이버광고와 마찬가지로 검색 > 광고클릭 > 랜딩페이지 주소 확인을 통해 고유식별 값을 파악합니다.  아래와 같이 총 3개 항목의 광고 정보가 제공되는 것을 확인할 수 있습니다.

 

http://www.brownbagcoffee.co.kr/?DMKW=브라운백커피&DMSKW=브라운백커피&DMCOL=PM

 

  • DMKW=브라운백커피 (키워드)
  • DMSKW=브라운백커피 (이용자검색어)
  • DMCOL=PM (클릭된 광고서비스명)

  

이 중 고유식별 값으로 키워드(DMKW) 매개변수를 사용하여 클릭된 검색어를 추출하는 변수를 만듭니다.

 

 

 

# 다음 키워드(DMKW) 변수

 

■ 변수 이름 : keyword_DMKW (적절한 이름을 임의 지정)

 

■ 변수 구성

 

  - 변수 유형 : '맞춤 자바스크립트' 선택

 

  - 맞춤 자바스크립트 : 박스 내 아래와 같이 keyword_DMKW 변수 값을 추출하는 자바스크립트(함수) 추가

 

 

 

function( ) {

var regexS = "[\\?&]DMKW=([^&#]*)";

var regex = new RegExp( regexS );

var results = regex.exec( document.location.href );

return results[1];

}

 

 

  

단계 2 – 캠페인 설정 변수 만들기

 

이번 단계에서는 각 캠페인 항목에 해당하는 변수를 만들어 보도록 하겠습니다.

 

 

# 소스 

 

■ 변수 이름 : campaignSource (적절한 이름을 임의 지정)

 

■ 변수 구성

 

  - 변수 유형 : '맞춤 자바스크립트' 선택

 

  - 맞춤 자바스크립트 : 박스 내 아래와 같이 소스 변수 값을 추출하는 자바스크립트(함수) 추가

 

 

 

function() { 

    var referrer_hostname = {{referrer hostname}};

    var url_hostname = {{url hostname}};

    var naver_keyword = {{keyword_n_keyword}};

    var daum_keyword = {{keyword_DMKW}};

 

    if ( url_hostname != referrer_hostname ) {

        if ( referrer_hostname ) {

            if ( naver_keyword ) return "search.naver.com";

            if ( daum_keyword ) return "search.daum.net";

        }

    }

}

 

캠페인 소스에 해당하는 변수 또한 맞춤 자바스크립트 유형의 변수를 생성하여 만들며 구체적인 자바 스크립트 코드는 위와 같습니다. 위 코드가 수행하는 기능을 설명하자면 우선 이전 페이지 주소(referrer hostname, 리퍼러 호스트이름)와 현재 페이지 주소(url hostname, url 호스트이름)를 비교하여 우리 웹사이트로 처음 진입되는 유입인지를 확인합니다. 리퍼러 및 URL 호스트이름이 서로 다를 때가 첫 진입에 해당하며 이 때 네이버 키워드 변수가 존재하면 'search.naver.com'을, 다음 키워드 변수가 존재하면 'search.daum.net'을 소스 값으로 반환하여 변수에 저장합니다. 이하 다른 캠페인 변수들 또한 동일한 방식으로 생성합니다.

 

리퍼러 호스트이름과 현재페이지 호스트이름은 아래와 같은 변수를 생성하여 비교합니다.

 

 

 

# 리퍼러 호스트이름  변수

 

■ 변수 이름 : referrer hostname (적절한 이름을 임의 지정)

 

■ 변수 구성

 

  - 변수 유형 : 'HTTP 리퍼러' 선택

 

  - 구성요소 유형 : '호스트 이름' 입력

 

  - 'www.'생략 체크박스에 체크

 

 

 

1단계 예시를 적용할 경우 네이버 유입은 'search.naver.com'이, 다음 유입은 'search.daum.net'이 리퍼러 호스트이름 변수에 저장됩니다.

 

 

# 현재페이지 호스트이름  변수 

 

■ 변수 이름 : url hostname (적절한 이름을 임의 지정)

 

■ 변수 구성

 

  - 변수 유형 : 'URL' 선택

 

  - 구성요소 유형 : '호스트 이름' 입력

 

  - 'www.'생략 체크박스에 체크

 

 

 

1단계 예시를 적용할 경우 네이버와 다음 유입 모두 'brownbagcoffee.co.kr'이 url 호스트이름 변수에 저장됩니다.

 

 

 

# 매체

 

■ 변수 이름 : campaignMedium (적절한 이름을 임의 지정)

 

■ 변수 구성

 

  - 변수 유형 : '맞춤 자바스크립트' 선택

 

  - 맞춤 자바스크립트 : 박스 내 아래와 같이 매체 변수 값을 추출하는 자바스크립트(함수) 추가

 

 

 

function() { 

    var referrer_hostname = {{referrer hostname}};

    var url_hostname = {{url hostname}};

    var naver_keyword = {{keyword_n_keyword}};

    var daum_keyword = {{keyword_DMKW}};

 

    if ( url_hostname != referrer_hostname ) {

        if ( referrer_hostname ) {

            if ( naver_keyword ) return "cpc";

            if ( daum_keyword ) return "cpc";

        }

    }

}

 

캠페인 매체 변수 또한  외부에서 유입이 되는 경우 검색광고에서 오는 유입(도착 페이지 주소에 n_keyword 또는 DMKW 변수가 포함된 유입)인지를 확인한 후 이에 해당하면 'cpc'를 매체 값으로 반환하여 변수에 저장합니다.

 

 

 

# 캠페인

 

 

 

function() { 

    var referrer_hostname = {{referrer hostname}};

    var url_hostname = {{url hostname}};

    var naver_keyword = {{keyword_n_keyword}};

    var daum_keyword = {{keyword_DMKW}};

 

    if ( url_hostname != referrer_hostname ) {

        if ( referrer_hostname ) {

            if ( naver_keyword ) return "clickchoice";

            if ( daum_keyword ) return "clix";

        }

    }

}

 

캠페인(이름)의 경우 네이버 키워드 변수가 존재하면 'clickchoice'를, 다음 키워드 변수가 존재하면 'clix'를 캠페인 값으로 반환하여 변수에 저장합니다.

 

 

# 키워드 

 

 

 

function() { 

    var referrer_hostname = {{referrer hostname}};

    var url_hostname = {{url hostname}};

    var naver_keyword = {{keyword_n_keyword}};

    var daum_keyword = {{keyword_DMKW}};

 

    if ( url_hostname != referrer_hostname ) {

        if ( referrer_hostname ) {

            if ( naver_keyword ) return decodeURIComponent(naver_keyword);

            if ( daum_keyword ) return decodeURIComponent(daum_keyword);

        }

    }

}

 

캠페인 키워드의 경우 네이버와 다음 모두 1단계에서 추출한 키워드를 변수에 저장합니다. 다만, 태그관리자를 통해 키워드를 추출한 후 이를 다시 구글애널리틱스로 보내는 경우 한글 키워드는 글자가 깨져서(암호화되어) 표시될 수 있습니다. 따라서 한글의 깨짐 현상을 해결하기 위해서는 위와 같이 디코딩(decoding) 코드를 추가해야 합니다.

 

 

# 광고콘텐츠 

 

  

 

function() { 

    var referrer_hostname = {{referrer hostname}};

    var url_hostname = {{url hostname}};

    var naver_keyword = {{keyword_n_keyword}};

    var daum_keyword = {{keyword_DMKW}};

    var n_rank = {{keyword_n_rank}}; 

    var content = referrer_hostname+' - '+n_rank;

 

    if ( url_hostname != referrer_hostname ) {

        if ( referrer_hostname ) {

            if ( naver_keyword ) return content;

            if ( daum_keyword ) return referrer_hostname;

        }

    }

}

 

마지막으로 '광고 콘텐츠' 항목의 경우 필수 입력 항목은 아니기 때문에 빈 칸으로 놔두어도 무방합니다. 하지만 위와 같은 방식을 사용하면 리퍼러 호스트이름과 (네이버의 경우) 광고 순위 등 분석에 활용할 수 있는 데이터를 조금이라도 더 수집할 수 있다는 장점이 있습니다.

 

네이버 검색광고의 경우 광고가 노출되는 위치에 따라 search.naver.com / m.search.naver.com / ad.search.naver.com / m.ad.search.naver.com / cafe.naver.com / m.blog.naver.com 등으로 소스의 세부 주소가 달라질 수 있습니다. 이 때 맞춤 캠페인 설정을 하면 'naver' 등으로 소스를 미리 지정해야 하기 때문에 광고가 실제 노출된 세부 주소를 파악할 수 없습니다.

 

하지만 광고의 노출 위치에 따라 달라지는 세부 소스 주소를 '리퍼러 호스트이름'의 변수를 담아서 이를 다시 광고 콘텐츠 항목에 넣어주면 실제 노출된 위치를 알 수 있습니다. 광고 노출 순위 데이터 또한 위와 유사한 방식으로 수집이 가능합니다. 이러한 데이터를 활용하면 동일한 키워드 유입이라 하더라도 광고의 노출 위치나 순위에 따라 성과가 어떻게 달라지는지를 파악할 수도 있습니다.

 

 

 

 

단계 3 – 구글애널리틱스 기본태그 내 설정할 입력란에 단계 2에서 생성한 캠페인 변수 입력하기

 

1단계에서는 검색광고 유입 여부를 판단하여 이에 해당하는 경우 검색어(와 노출순위)를 변수에 담았고, 2단계에서는 1단계에서 생성한 변수에 따라 네이버와 다음 유입을 구분하여 이에 맞는 소스/매체/캠페인/키워드/광고콘텐츠 5개 항목의 값을 캠페인 변수에 담았습니다.

 

마지막 3단계에서는 2단계에서 생성한 캠페인 변수 값을 아래와 같이 구글태그관리자 기본(페이지뷰)태그를 이용하여 GA로 전송해 줍니다.

 

 

 

위에서 언급한대로 태그는 별도로 생성하지 않고 구글애널리틱스 기본태그를 사용합니다.

 

 

기본 태그 내 기타 설정(More Settings) > 설정할 입력란(Fields to Set) 항목 내 '+입력란' 버튼을 눌러 총 5개의 입력란을 생성한 후 아래와 같이 좌측 '입력란 이름'에는 campaignContent, campaignKeyword, campaignMedium, campaignName, campaignSource를 입력하고 우측 '값'에는 2단계에서 생성한 캠페인 변수를 좌측 필드에 맞게 선택합니다. 이후 태그를 새로 저장합니다. 

 

 

 

설정할 입력란에서 사용 가능한 필드 참조: https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference

 

 

 

3단계까지 진행한 후 미리보기(디버깅) 테스트 단계를 거쳐 변경된 태그를 게시하면 맞춤 캠페인 설정을 하지 않아도 클릭초이스 및 클릭스 검색광고에 대해 아래와 같이 캠페인 데이터가 수집됩니다.

 

 

 

 

 

 

 

미리 지정한 소스, 매체, 캠페인(이름) 외에 클릭된 키워드와 광고가 노출된 위치, 순위 데이터가 수집되는 걸 확인할 수 있습니다.

 

 

 

 

p.s. 캠페인 추적 설정 방법으로서 정말 유용한가? 

 

유입 채널에 고유식별자가 존재하는 경우 구글태그매니저를 통해 이를 인식하여 자동으로 캠페인을 설정하는 방법은 구글태그매니저 사용 초기부터 2년이 넘도록 사용해 오고 있는 방법으로 확실히 많은 장점이 있습니다.

 

우선 사용이 편리합니다. 3~5분만 투자하여 한 번만 세팅해 놓으면 키워드를 등록할 때마다 매번 캠페인 설정을 해야하는 수고를 덜 수 있습니다. 수동 작업에 비해 실수가 발생할 가능성도 낮습니다. 본문에서도 설명했듯이 미리 알 수 없는 광고 노출 위치뿐만 아니라 광고 순위, 이용자검색어(n_query), 캠페인 유형(n_campaign_type) 등 추가 정보도 수집할 수 있습니다.

 

또한 그 활용이 검색광고에만 국한되지 않습니다. 내용이 복잡할 수 있을 것 같아 본문에서는 생략하였지만 네이버/다음의 쇼핑섹션이나 타게팅게이츠와 같은 배너광고 등도 리퍼러 호스트이름이 고유하기 때문에 태그매니저를 통한 캠페인 설정이 가능합니다.

 

하지만 '이러한 방식으로 캠페인 설정을 하면 구글에서 제시하는 연결URL 태깅 방식의 캠페인 설정을 했을 때와 그 결과가 같을 것인가'란 질문을 한다면... 그 결과가 다를 수도 있다고 생각합니다. 캠페인 데이터 처리와 관련하여 구글에서 제공하는 처리 흐름차트( https://support.google.com/analytics/answer/6205762?hl=ko&ref_topic=1032998#flowchart )가 있는데요, 이를 참조해보면 대략적으로 애드워즈 > 맞춤캠페인 > 자연검색 > 추천 > 이전 캠페인 > 직접 순으로 캠페인 값이 결정되는 것으로 보입니다. 본문에서 설명한 방식을 적용하는 경우 캠페인 값이 어느 순서에서 결정이 될지 모르겠습니다. 또 이 순서에 따라 캠페인 데이터 처리 결과가 영향을 받는지도 잘 모르겠습니다.

 

답이 없는 이런저런 추측을 해보는 이유는 위와 같은 캠페인 설정 방식을 적용한 웹사이트 중 한 곳에서 목표(이벤트 목표)가 달성된 세션의 캠페인이 이상하게 분류되는 현상이 있었기 때문입니다. 이 사례에서는 키워드별 사이트 혹은 웹문서 노출현황을 감안했을 때 분명히 검색광고 유입이어야 하는데 목표가 달성된 세션은 대부분 자연검색(organic)으로 분류가 되었으며, 캠페인 설정을 일반적인 태깅 방식으로 변경했을 때 데이터가 정상으로 돌아왔습니다.

 

캠페인 설정은 GA 데이터를 영구적으로 변경시키는 행위에 해당하기 때문에 신중하게 접근할 필요가 있다고 생각해서 추가적으로 설명을 덧붙였습니다. 판단은 각자 해보시기 바랍니다. 또한 위 방식에 대해 추가적으로 궁금한 점이나 예상되는 문제점, 기타 코멘트 있으면 언제든 환영합니다.

 

 

 

출처: http://analyticsmarketing.co.kr/digital-analytics/google-tag-manager/1307/ 

GA
목록글쓰기
댓글 30
댓글 새로고침
로그인 후 더욱 많은 기능을 이용하세요!아이보스 로그인