네이버 검색량 조회 시스템 만들기 (이메일로 최대 100개 추천해줘요~!)
구글 애널리틱스 (GA4)/마케터의 업무 기록

네이버 검색량 조회 시스템 만들기 (이메일로 최대 100개 추천해줘요~!)

Mr.Zee 2022. 9. 2.

구글 폼에 드디어 특이점이 와버렸......

하루에도 몇 개씩 키워드 검색량을 조회하고 가끔은 주기별로 모니터링을 하는 경우도 왕왕 생기는 마케터들에게
그놈의 키워드 검색 도구는 매번 로그인하랴~ 유료 서비스화됐다가, 하루 검색에 제한이 있다던가......

그래서 직. 접. 만들어버린 네이버 검색량 조회 시스템
구글 폼을 통해 키워드를 할당받고, 이를 이메일로 뿌려주는 구조로 일단 만들었다.

내가 직접 쓰는 거야 스프레드시트에서 바로바로 쓰면 되지만 어쨌든 이번 글의 가장 큰 목적은 '이런 방법으로 하면 된다'라는 걸 알려주기 위함이기에......!!

 

네이버 키워드 검색량 - 구글폼에서

 

구글 폼으로 키워드 받는 게 중요한 게 아니라 네이버 검색광고 API를 이해해야~!

 

네이버 검색광고 api 설명 전문

내용만 보면 여타 API들과 크게 다를 게 없어 보인다

그러나~

https://naver.github.io/searchad-apidoc/#/guides

 

searchad-apidoc

 

naver.github.io

 

네이버 검색 광고 API의 개발 문서에 들어가 보면 헬게이트를 느낄 수 있다.

API 라이선스 및 비밀 키 발급이야 네이버 광고에 로그인한 후 API 사용 관리를 통해 쉽게 가능한데......

문제는 바로.... "

Generate signature로 난이도가 갑자기 급상승~

서명 생성"!!

여기서 sha256-hmac 방식으로 암호화 한 API_SECRET, Mils (서버시간) +"." + method + "." +요청 정보 uri로 "서명을 생성"하라고 되어 있다.

sha256-hmac에 대해 잘 몰라 찾아보니

HMAC(Hash-based Message Authentication Code, 해시 기반 메시지 인증 코드)와 SHA(Secure Hash Algorithm)-256 약자의 조합이라고 한다. 한마디로 송신자와 수신자만이 공유하고 있는 키와 메시지를 '암호화 알고리즘을 통해' 해사 값을 만든 것.

이거 하나로 API 난이도가 갑자기 지붕을 뚫어버리게 되는데......

Stackoverflow부터 관련 티스토리 블로그 모두 입 모아서 crypto-js를 활용해서 해결하고 있었다.

var hmac = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, secretKey);
hmac.update(timestamp + '.' + method + '.' + api_url);
var hash = hmac.finalize();
hash.toString(CryptoJS.enc.Base64);

출처 : ukcasso 님 티스토리 블로그

문제는 이게 node js 기반이라서 그런지는 몰라도 코드를 가져다 써봤지만 결과는 묵묵 부답......

어쨌든 실마리를 찾은 것은 crpytoJS 라이브러리를 잘 활용하면 해시값을 생성해서 서버 측에 get방식으로 쏴주면 된다는 걸 알았으니 무한 검색 시작...

나처럼 구글 폼에 이식하려는 시도를 한 무모한(?) 초보는 없는 듯하다

90%쯤 포기하고 "안되는가 보다~"를 시전 하려는 찰나 구글 개발 문서에서 계속 번복되는 하나의 단어를 발견

Utilites.base64 Encode 였다.

거기다 관련해서 나처럼 서명 생성에 애먹은 사람들이 AWS 서비스와 연결하는데 실패한 고난의 기록들을 읽으면서 결국 해결책 찾기 성공

결론은 GAS내에서는 computHmacSignature를 활용해줘야 한다.

crpyto js를 node를 이용해 GAS내에 설치하는 방법도 있겠지만 그건 또 별개의 문제인 거 같고, hash 된 생성 값이 일반적으로는 맵 데이터로 되어 있기 때문에 base64로 인코딩을 해줘야 했던 것으로 보인다.

어쨌든 서명 부분만 넘기고 나면 아주 간단한 함수로도 API 활용이 가능해진다.

  var url = 'https://api.naver.com/keywordstool?hintKeywords=' + req + '&showDetail=1' 
  var header = {
    'X-Timestamp':timestamp, 
    'X-API-KEY': accessKey,
    'X-Customer': CUSTOMER_ID, 
    'X-Signature': hash.toString(),

              }
  var options = {
  'method' : 'GET',
  'contentType': 'application/json',
  "headers" : header,  
  };
 
UrlFetchApp.fetch(url, options);

요렇게 만들어서 전 송한 뒤 console.log(response.getResponseCode()); 한 줄로 200이 확인되면 성공~!

이렇게 만들어진 구글 폼은 어디다 쓸까 하다가 일단 올려놓기로 했다. 너무 많이 이용하면 불시에 못쓰게 될 수도 있으니 차라리 문의해서 구매해가시기를~! 

키워드 리스트 100개 받기 구글폼 입력 -> 이메일로 응답 전송.

https://forms.gle/uNSkJQNSxejTuh9n9

 

N_keywordlist

Google Forms를 통해 비밀번호를 제출하지 마세요.

docs.google.com

 

이메일 + 찾고 싶은 키워드를 입력하면 메일로 키워드를 최대 100개까지 추려서 보내준다. 네이버 광고 키워드 도구랑 같은 기능이지만 주기적으로 모니터링해야 하거나 누군가의 요청으로 추적해야 하는 경우가 많은 마케터들에게는 키워드 조회 자동화는 한 번쯤 만들어보기 썩 나쁘지 않다.

일단 입력받은 키워드를 웹페이지로도 띄울 수도 있기 때문에 추후 활용가치를 좀 더 고민해봐야겠다

 

https://script.google.com/macros/s/AKfycbwBKuwr-g1aH0ET0bM-BFf3lgJiaAOhaeHvS2wNUOrr2CgHsJCAl19a09p n7Yt1Ms8o/exec

 

https://script.google.com/macros/s/AKfycbwBKuwr-g1aH0ET0bM-BFf3lgJiaAOhaeHvS2wNUOrr2CgHsJCAl19a09pn7Yt1Ms8o/exec

 

script.google.com

 

댓글

💲 추천 글