메뉴 건너띄기
상단메뉴 바로가기 본문 바로가기

S W T E C H

당신의 광고를 돕는 서비스 : Kaiser

  • 2019-12-27 14:57
  • |
  • SW마에스트로
당신의 광고를 돕는 서비스 : Kaiser

안녕하세요! SW서포터즈 기술블로그 팀입니다.
오늘은 조금은 생소한 B2B 시장 그 중에서도 특히 키워드 광고에 대해서 알아보려고 합니다

용어가 조금 생소할 수도 있지만, 실은 우리가 무언가를 검색할 때마다 항상 보고 있는 것이 바로 이 키워드 광고입니다.
 
Kaiser는 키워드 광고 관리 과정을 자동화하여 저비용, 고효율로 최고의 성과를 낼 수 있도록 유지해주며

기타 광고 대행 업무에 필요한 보고서 생성 및 관리 자동화, 광고주와 대행사 간의 Data Connector 시스템을 제공해주는 팀입니다.
 
*키워드 광고란?
키워드 광고(Keyword advertising)는 인터넷 검색사이트에 특정 키워드를 검색한 사람들을 대상으로 광고주의 사이트가 노출되도록 하는 광고 기법이다

검색 광고(檢索廣告)라고도 한다. TV나 라디오 또는 배너 광고와 같이 '판매자가 고객을 찾아' 광고를 하는 것이 아니라

'찾아오는 고객'에게 광고를 노출한다는 점에서 이전의 광고보다 매우 적극적이고 적중률이 높은 광고라 할 수 있다

또한 서퍼들의 검색행위 그 자체가 이미 매우 고도화된 타게팅이기 때문에 고객의 상황이나 인구통계학적 타게팅 및 방문이력에 

근거하는 타 광고에 비해 전환으로 이어지는 광고 효율은 상대적으로 높은편이다. [위키백과]



키워드 광고


한마디로 말해서 키워드 광고는 판매자가 고객을 찾아가는방식이 아니라, “찾아오는 고객에게 광고를 노출하도록 하는 광고인 것이죠

그래서 적극적이고 공격적인 광고방식이라고 할 수 있습니다

이해를 돕기위해서 한 가지 예를 들어 보겠습니다. 예를 들어서 한 포털에서 검색창에 노트북 이라고 검색하면 아래와 같은 검색 결과가 나옵니다.




“노트북“ 으로 검색한 결과

   
지금 보이는 광고들은 노트북을 검색한 사람에게만 광고를 노출하기 때문에 배너나 인터넷 광고와는 차별화된 광고 효과를 볼 수 있습니다

뿐만 아니라 검색어에 따라서 세세하게 타겟팅이 가능하기 때문에 광고주 입장에서는 굉장히 중요한 광고 수단으로 활용될 수 있습니다!
 
이처럼 검색광고 라고도 불리는 키워드 광고는 보통 기업과 같이 어떠한 목적을 가지고 광고를 하고자 할 때 많이 사용하게 됩니다. 

그리고 우리가 무언가를 검색할 때 나오는 다양한 정보들 속에 이러한 광고도 포함되어 있습니다

때문에 이러한 서비스를 각 검색 포털마다 제공하고 있는데요. 그것을 더 효율적이고 효과적으로 해결하기 위한 서비스가 있습니다. 바로 Kaiser입니다.
 

누군가의 한마디가 아이디어로
 
모든 개발팀이 그렇듯이, 따분한 문제보다는 현장의 문제를 해결하고 싶어 합니다

Kaiser팀도 마찬가지였습니다. 팀원 주변에 광고 일을 하는 친구로부터 현업에 키워드 광고에 대한 문제가 있다는 것을 듣고 

다른 팀원이 광고 관련 솔루션 개발 경험이 있기 때문에 이 문제를 해결할 수 있겠다 생각해서 프로젝트를 시작하게 되었다고 전했습니다. Kaiser 팀의 설명입니다.
 
사용자가 실제로 광고를 클릭했을 때에만 현재 순위를 알 수 있는 클릭 순위로 입찰방식은 15~60초 단위로 빠르게 갱신되는 키워드 광고 특성상 목표 순위 유지에 대한 정확도를 보증할 수 없습니다

그렇기 때문에 대부분의 경쟁 서비스들에서는 노출 순위로 입찰방식을 사용하고 있습니다.”
하지만, 수천~ 수만개의 키워드들의 실시간 정보들을 빠르게 수집하기가 쉽지 않기 때문에 대부분의 검색포털이나 경쟁사에서는 고객들이 만족할만한 성능을 제공하지 못하고 있고

결국 주기적으로 사람이 수동으로 관리하고 있는 것이 현실입니다.” Kaiser 팀은 이와 같이 문제 상황을 인식하고, 실제로 여러 업체를 방문하며 아이디어를 구체화 시켜 나갔습니다.
 
 
가장 핵심이 되는 기술
 
키워드 광고에서는 같은 광고 카테고리간의 연관 관계를 확실하게 파악하는 것이 가장 중요합니다

일반적인 Word2Vec이 단어들 사이의 연관관계를 나타낸다면 Kaiser팀이 연구한 Ad2Vec은 상표명을 포함한 카테고리간의 관계를 보다 정확하게 판단 할 수 있습니다.
 
이런 성능을 구현하기 위해 기존 나무위키나 뉴스 위주로 학습 셋을 수집하는 Word2Vec과는 다르게 Ad2Vec는 후기 글과 광고 데이터 등을 Cloud Data Collector를 통해 수집합니다

여기서 Cloud Data Collector는 데이터를 수집하는 Kaiser팀만의 방식입니다.
 
데이터 수집 기술
 
-Cloud Data Collector


키워드 광고 입찰 경쟁에서 우위를 점하기 위해서는 많은 양의 서버를 운영하여야 합니다

하지만 많은 양의 서버를 운영하게 되면 정보를 수집하는 데 있어서 비효율적인 과정을 거치게 됩니다

이러한 문제를 기존에 사용하던 방법 (구독-수행-전송)에서 위 사진과 같은 (요청-수행-전송) 새로운 모델을 통해 해결했습니다.
 
이렇게 작업 큐를 변경함에 따라, 각 노드가 한 번에 하나씩 기존 작업을 모두 수행했을 때만 다음 작업을 수행하고 받아 올 수 있게 됩니다

따라서 중간에 노드 하나가 죽더라도 두 개 이상으로 작업 큐가 유실되지 않고, 다른 노드들만 살아 있다면 가장 빠른 주기 이내에 해당 작업을 시행할 수 있게 됩니다.
 
또한, 각 노드가 모두 같은 양의 작업을 수행하는 것이 아니라 각 노드들의 성능에 따라 자율적으로 분배가 가능하므로 더욱 효율적으로 정보를 수집할 수 있게 되어 있습니다.
 

데이터 관계 파악
 
이렇게 수집한 데이터들을 KoNLPY를 통해 태깅하고, Gensim을 통해 학습하여 나온 모델을 카테고리간의 관계에 이용합니다.
현재 테스트용 기능을 올려둔 Kaiser팀의 사이트가 있습니다. 아래 링크를 타서 이용해 보세요~
-> http://try.adcloudlabs.com
 
아래 표는 위의 사이트에서 실제로 해본 결과입니다.


 검색광고 + 광고대행사

온라인광고(73%)

페이스북(65%)

마케팅(65%)  

성형 + 방학 

 재수술(65%)

가슴성형(63%)

시술(62%)

공무원 + 학원 

 에듀월(71%)

해커스(70%)

박문각(69%)


이와 같이
Ad2Vec을 통해 키워드 데이터들을 얻었으면 사용자가 원하는 순위에 광고를 빠르게 올려야 합니다
그렇게 하기 위해 입찰가를 예측해야 합니다Kaiser팀은 이 부분에 대한 개발과정에서 어려움이 많았다고 했습니다.
어떤 어려움이 있었고 어떤 해결방안으로 극복해 나갔는지 궁금하니 알아보겠습니다.
 
▷  입찰가 예측을 위한 개발
 
처음 Kaiser팀은 입찰가를 예측하기 위해 머신러닝기술을 이용했습니다.
키워드 광고 입찰가 예측을 위한 합리적 근거 두 가지는 키워드 광고의 순위가 높아질수록 입찰가는 높아지고, 시간대와 요일별로 입찰 가격이 상승하거나 하락하는 흐름이 있다는 점입니다.
 
한번 키워드 광고 입찰을 통해 수집할 수 있는 데이터는 다음과 같습니다.


목표 순위에 빠르게 도달하기 위해서 필요한 최소 증감액을 구해야 하기 때문에 위 데이터를 그대로 사용할 수 없습니다

그래서 Kaise팀은 추가적으로 데이터를 정제합니다.



데이터 정제 과정

    
위와 같이 하나의 키워드에 대해 같은 시간대에 같은 목표로 향하는 비딩 데이터를 통합시키는 과정을 통해 한 키워드의 순위 변경에 필요한 최소 비딩가격 증감액을 데이터로 축소합니다.
 
또한, 입찰을 통해 얻을 수 있는 데이터뿐만 아니라, 키워드 광고 매체의 API로부터 수집이 가능한 데이터도 있습니다

이 중에 키워드 광고 증감액을 예측하는데 영향을 줄 수 있다고 판단되는 피쳐들은 다음 과 같습니다.


 


이렇게 입찰과 매체에서 제공하는 API를 통해 얻을 수 있는 데이터들을 통합하고, Linear Regression을 합니다. 여기서 사용되는 독립 변수와 종속 변수는 다음과 같습니다.


keywordName(float)
비딩 키워드 목록을 리스트화시킨 인덱스 

targetRank(float)
목표 순위
nowRank(float)

현재 순위 

 time(float)

시간 (0~48) 

 day(float)

요일(0~7) 
avgBid(float)

평균 입찰가  

 monthlyPcQcCnt(float)

한달 평균 노출수 
monthlyAvePcCtr(float)

한달 평균 클릭수  

compIdx(float)

키워드 경쟁 빈도(-1 ~ 1)  

 bidAmount(float): 비딩가격 증감액(종속변수)


하지만 위의 내용을 바탕으로 예측을 시도 하였을 때, 결과가 좋지 않았습니다.
 
 
그래프를 통한 분석

 
위 그래프를 보면 독립성을 확인할 수 없다는 것을 알 수 있습니다

그 이유를 Kaiser팀이 분석한 결과 키워드명의 인덱스에서 의미를 파악할 수 없었고, 카테고리적인 의미를 가지고 있는 시간과 요일을 단순히 수로만 표현한 것이 문제라고 판단했습니다.
 
Kaiser팀은 이를 해결하기 위해 독립성이 모호한 것은 제거하고, 키워드 명을 통한 분류가 가능하도록 광고 키워드에 Word2Vec을 적용, 시간과 날짜에 onehot encoder를 적용합니다

그리고 더욱 많은 입찰 데이터들을 추가로 수집합니다. 그리하여 아래와 같이 피처들을 정의합니다.



그래서 Kaiser팀은 순위로부터 비딩가를 예측하자는 가설로 전환하였고, 역으로 입찰가격을 통해서 현재 순위를 분류하는 모델을 학습하는 것으로 변경합니다.
 
짧은 시간에 이런 서비스가 가능했던 이유
 
Kaiser팀은 6개월이라는 짧은 시간내에 완성도 높은 서비스를 완성하기 위해서 MVP(Minimum Valuable Product) 개발을 통해 빠른 피드백을 지속적으로 받을 수 있도록 했습니다
기획 개발 테스트 배포가 3~ 4주간의 짧은 배포 주기마다 계속해서 반복되었기 때문에 힘든 시간이었지만, Kaiser팀이 고민하고 의논했던 부분에 대한 피드백을 즉시 다음 MVP에 반영할 수 있었습니다.
뿐만 아니라 Kaiser팀은 구글이나 애플에서 사용하고 있는 프로젝트 진행방법을 본 프로젝트에 맞게 저용하여 짧게 하라(제한은 창의성을 부른다아젠다를 가져라 문제점이 아닌 해결책을 가져와라를 메인 토픽으로 
한 룰4개를 선정하여 실제 개발 과정에서 활용했다고 합니다. 4계명은 다음과 같습니다.
 
- 의견 충돌 시, 1시간 이내로 결정되지 않을 경우 제 3자가 결정
- 지난 회의 때 정해진 개발 내용은 무조건 구현 후 다음 회의에 임함
- 선택이 애매할 경우, 실험을 통해 최적의 답안 결정
- 하루 이내 이슈 해결이 불가능할 경우, 전문가 자문 및 협업 멘토링 진행
 
이런 과정을 통해서 Kaiser팀은 짧은 시간 안에 놀라운 성과를 낼 수 있었습니다. 정말 대단하죠!


Kaiser 팀에게 SW마에스트로란?
 
마지막으로 Kaiser 팀에서 SW마에스트로에 대해서 질문했습니다. Kaiser팀원 각자마다 답이 달랐는데요, 그것을 간단하게 정리해봤습니다.
 
김태성 : “개발을 좋아하고 같이 서로 공유 할 수 있는 너무나도 좋은 사람들을 많이 만났습니다. SW 마에스트로 덕분에 너무나도 즐거운 한해를 보냈던 것 같습니다.“
박준규 : “샐러드를 먹을 땐 맛도 없고 배도 안차는 것 같지만, 실제론 몸에 필요한 영양분을 충분히 담고 있으며 우리 몸을 이롭게 한다
1년이란 SW마에스트로 과정동안 힘들고 이게 잘하고 있는걸까? 라는 생각이 많이 들었지만, 돌이켜보면 정말 값진 경험이었고 성장을 할 수 있는 최고의 경험이었다는 걸 느낀다.”
김도형 : “정말 많은 도움이 된 과정이었습니다. 한마디로 표현하자면 인생의 터닝포인트!”
 
3명의 팀원 모두에게 SW마에스트로는 잊지 못할 추억임과 동시에 삶에서 큰 자산이 된 것 같습니다. 다음달에도 더 재미있는 기술로 찾아오겠습니다!