안녕하세요! 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%) |
목표 순위에 빠르게 도달하기 위해서 필요한 최소 증감액을 구해야 하기 때문에 위 데이터를 그대로 사용할 수 없습니다.
그래서 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를 적용합니다.
그리고 더욱 많은 입찰 데이터들을 추가로 수집합니다. 그리하여 아래와 같이 피처들을 정의합니다.