타겟 마케팅 – 4.사기 클릭(Fraud Click) 찾아내기

0
456

Telltale이라는 영어단어가 있다. 남기고 간 흔적이 다 이야기해 준다는 뜻을 가진 단어다.

추리소설에서 자주 볼 수 있는 단어다. 그리고 빅데이터에 인공지능을 적용한다…. 는 비지니스에서 자주 등장해야하는 단어이기도 하다. (불행히도 많은 사람들이 “신경망 모델이라는거에 넣으면 그냥 척척 가르쳐주는거 아니야?”에 머물러 있긴 하지만)

비슷한 예시로, 주가 대폭락을 예측한다는 “인공지능” 모델이라는 것도 결국에는 특이하게 움직이는 변수 k개의 특정 조합을 보고 대폭락이 있을 것이라고 판단하는 것이다. 말을 바꾸면, 데이터 변화 묶음 A를 보고 B가 나타날 것이라고 예측하는 작업이 선후 관계 뿐만 아니라 인과 관계를 갖고 있다면, B가 나타난 시점에 A를 Telltale이라고 이름 붙일 수 있다.

Pabii의 사업 모델이 최적 유저 타겟을 찾아주는 광고 플랫픔 (DSP, Demand Side Platform)이기 때문에, 온라인 광고 영역 안에서 Telltale로 잡아낼만한 여러 주제에 항상 관심을 갖고 일을 한다.

이 분야 안에 속칭 “인공지능”, 정확하게 말해서 Multi-pattern matching 작업이 쓰이는 곳이 참 많지만, 요즘 흥미를 끄는 구석이 하나 있다. 바로 사기 클릭 (Fraudulent click 또는 Fraud click)이다.

(Source: BusinessWeek)

 

사기 클릭 (Fraud Click)

비슷한 상품을 같은 시장에서 팔며 경쟁하는 두 개의 온라인 쇼핑몰을 생각해보자. 선의의 경쟁을 한다면 가격을 낮추고, 상품 품질이 높은 셀러를 많이 노출시켜주고, 원하는 상품을 쉽게 찾을 수 있도록 도와주는 등의 서비스를 생각하겠지만, 제로섬 게임을 하고 있다보면 경쟁사 사이트에서 구매하려는 유저를 구매 직전에라도 뺏어오고 싶은 욕구가 강하게 생긴다.  여러가지 방법이 있겠지만, 그 유저가 보고 있는 여러 화면에 광고를 뿌려대서 경쟁사 사이트로 흘러들어가지 않도록 하는 것도 시도해 볼 만하다.

보통 온라인 쇼핑몰들은 하루 예산을 정하고, 각각의 플랫폼 별로 광고 단가를 정해서, “단가 x 횟수 = 예산”이 되도록 광고 노출을 한다. 온라인 광고시장에서 흔히 광고비를 Click당으로 산정하는데, 업계 짬밥이 굵은 마케터 친구의 표현에 따르면 경쟁사 광고가 보이면 일단 꾸욱~ 눌러주는게 이 동네의 암묵적인 룰이란다. 말을 바꾸면, 경쟁사가 광고 비용을 쓰도록 만들라는 뜻이다.

근데, 경쟁사 광고만 뜨면 조직적으로 클릭을 하는 “클릭 농장 (Click Farm)”이 있다면 어떻게 될까? 우리 회사 광고는 아침에 하루 예산을 싹 소진해버렸는데, 경쟁사 광고는 사람들이 광고에 관심을 갖는 오후, 저녁 시간대에 노출되고 있다면? 우리 회사 입장에서는 “피꺼솟”한 상황이 아닐까?ㅋㅋㅋ

관련 조사 업체들에 따르면 전세계적으로 이런 Fraud Click이 전체 클릭의 1/3 정도나 된다고 한다. (참고로 한국의 2018년 온라인 광고비는 대략 5조원으로 추산된다.) 비단 클릭뿐 아니라, 앱 인스톨 같은 광고 단가가 높은 경우에도 “사기꾼”들이 많아서 광고주들이 선뜻 광고비 쓰기가 힘들다고 불평하는 일이 적지 않다.

(Source: 미드 Silicon Valley – Click Farm의 실체를 보여준다)

 

(매우 조잡한) 해결책

누군가는 그런 “클릭 농장”들을 싹 잡아들이면 되지 않냐고 하는데, 이게 쉬운 일이 아니다. 실제로 우리나라의 수도권 근교에 나가면 그런 “농장”에서 매크로를 돌리고, 클릭과 인스톨을 만들어내서 “뒷돈”을 받는 사람들이 꽤나 많고, 워낙 음성적으로 이뤄지다보니 쉽게 공권력이 개입되기도 힘들다 (얼마전 언론에 크게 나왔던 드X킹 이라는 분이 좋은 예시가 될 것 같다). IT인프라가 겨우 갖춰져있고 임금이 저렴한 국가들에가면 수백, 수천명을 모아놓은 그런 “매크로 농장”들도 볼 수 있다.

얼마전엔 어느 영어권 서비스에서 나름대로의 해결책을 내 놨던데, 읽다보니 참 어이가 없더라.

  • 페이스북 / 트위터의 광고만 써라 – 다른 지면을 하나도 안 쓰니까, 지면으로 하는 사기는 방지할 수 있지않나?
  • IP를 막아버려라 – 사기꾼이 아예 접속 못 하도록 IP를 블록해버려라?
  • 구글의 리마케팅 광고 캠페인을 써라 – 일단 우리 홈페이지에 방문했던 유저에게만 광고가 나가니까, 사기 방지 되겠지?
  • 광고의 타겟을 구체적으로 정해라 – 언어, 위치 같은 걸 구체적으로 정한다면 클릭 농장을 피할 수 있지 않나?

저렇게 쉽게 막을 수 있었던 시절이 있었는지는 모르겠는데, 필자가 경험하는 DSP의 현실은 그렇게 녹록치 않다. 어차피 클릭 농장에 있는 “일꾼”들도 기본적인 사항을 다 전달받기 때문에, 페이스북, 트위터의 가짜 아이디를 여러개 생성해서 광고를 계속 찍어댄다. 광고 지면을 한정해봐야 아무런 소용이 없는 것이다. IP 블록은? VPN쓰면 그만이다. 구글의 리마케팅 캠페인보다 더 타게팅이 정교하게 된다던 Criteo의 리타게팅 서비스에서 Senior Data Scientist로 있었던 사람 입장에서, 알고리즘이 광고 노출하게끔 적당히 쇼핑몰 홈페이지를 들락날락거리는 유저 프로필을 만드는 건 식은죽 먹기 처럼 보인다. 저런 Fraud 유저를 걸러내는게 알고리즘 Optimization에서 “머리 터지는” 일이었기 때문에 꽤나 자신있게 이야기 할 수 있다. VPN도 쓰고, 자동화된 알고리즘 머리 위에 노는 클릭 농장이 단순히 언어, 위치 같은 명백하게 보이는 값들로 배제되는데도 가만히 맥 놓고 있을까?

쉽게 말해서, 클릭 농장도 바보 아니다. 그들도 진화한다.

(Source: Ouora.com)

 

구글도 당하는 Fraud Click

AdTrader라는 DSP회사 하나가 2017년 12월에 구글에 소송을 걸었다. 자기네가 구글 더블클릭의 광고지면을 구매해서 광고주들의 광고를 태웠는데, 정작 Fraud Click에 대한 보상을 구글이 다 챙기고, 광고주들한테는 돈을 안 돌려줬단다. Wall Street Journal이 곧 이 문제로 기사를 냈고, 구글은 신문기사가 나간지 6일만에 자기들의 서치광고 서비스인 AdWords의 이용 약관을 업데이트 했다. 광고주들이 Fraud Click에 대한 보상을 해달라고 할 수 없다.

그나마 약관이 바뀌기 전에 먼저 소송을 걸었던 AdTrader는 2017년 5월부터 구글에게 “팽”당했던 내용을 꽤나 자세하게 외부 공개했다.

꽤나 긴 법정 분쟁 끝에 구글은 지난 2018년 12월 5일에 캘리포니아 연방 법원에서 정보 공개 요구를 받았고 (하단 스크린샷 참조), 이것 때문에 최근 Fraud Click에 대해서 말들이 많아졌다.

소송이 진행되고, 법원의 행정명령이 떨어지기까지 자세한 과정을 다 담을 수는 없지만, 구글이 Fraud Click을 찾아낸 다음 그 부분에 대한 광고비를 환불해주지 않은 점이 크게 지적되어 있는데, AdTrader가 사기 클릭 부분에 대한 환불 요청하려는 상황이 백분 이해되고, 또 사기 클릭을 만들어내는 IP와 웹페이지를 꾸준히 걸러내는 구글의 Fraud 팀 관리 비용, 처리 비용도 눈에 선하게 보여서 딱히 한쪽 편을 들지는 못하겠다. 여기서는  그들의 비지니스적인 문제, 법적인 분쟁은 약간 논외로 하고, Fraud Click에만 초점을 맞춰보자.

구글이 어떤 종류의 알고리즘들을 이용해서 Fraud Click을 잡아내고 있는지는 잘 모르지만 (대충 짐작할 수 있는 부분은 많다), 내부적으로도 엄청나게 복잡한 고민이 있을 것이다. 첫째, 알고리즘의 정확성에 대한 의구심이 내부에 항상 존재할 것이고 (“인공지능”이면 척척척 다 되는건 없다..), 또 광고 지면 판매해서 매출액 끌어올린 매체세일즈 팀 입장에서는 Fraud Click으로 돈 벌었으니 환불해줘야한다는 Product Team의 메세지가 아니꼬울 수 밖에 없는 내부 정치적인 구조도 있을 것이다. (법적 분쟁의 소지가 있으므로 자세하게 말해줄 수는 없지만 필자도 비슷한 일을 겪었다.)

 

누가 관심이 있을까?

내부 정치적인 구조라는 문구에서 눈치를 챈 분도 있겠지만, 사실 많은 DSP들이 Fraud Click이 있어도 모르는체하고 넘어가는 경우가 많다. 저런 Click들이 좀 있어줘야 자기네들도 돈을 벌 수 있으니까.

실제로 Fraud Click으로 이득을 보는 집단을 생각해보면, 경쟁사와 광고업 Value Chain에 있는 거의 모든 업체가 해당된다. DSP는 광고 클릭이 많아서 과금을 많이 받을 수 있고, DSP를 소개하는 광고대행사들도 덩달아 이득을 보고, 광고 지면 판매하는 측은 (CTR기준으로) 광고 효율이 좋은 지면이라고 높은 평가를 받아 지면 판매 단가를 올릴 수 있다. 클릭 농장 덕분에 손해를 보는 집단은 오직 광고주 뿐이다. 이런 이해상충관계 (Conflict of Interest)가 있기 때문에, 광고주들은 DSP가 제시한 광고 효율이라는 숫자를 불신하고, 광고비를 깎으려들고, DSP는 광고비를 더 받으려고 호가를 올리거나, 다른 상품 끼워팔기를 하는 등의 악순환 고리가 생길 수 밖에 없다.

 

Ad Fraud Rings

개발도상국에 저가 인력을 잔뜩 모아놓은 클릭 농장만 작동하고 있는 것도 아니다. 인력 비용이 비싼 선진국들에 가면 트로이 목마나 Bot들을 이용한 멀웨어(Malware)도 엄청나게 많은 숫자가 있다. Ad Fraud에 관심있을 사람들이면 한번쯤 들어봤을 회사들을 보면, 2006년에 적발된 Clickbot.A나 DNSChanger부터, 각각 2011년, 2013년에 경찰 조사가 들어갔던 ZeroAccess, Chameleon 등의 음지의 서비스들이 있다. 공통적인 특징은 중요한 보안 프로그램인 것처럼 사용자를 속인다음, 설치되자마자 가짜 광고 노출, 클릭, 인스톨 신호를 서버에 송출하는 것인데, ZeroAccess 같은 경우에는 심지어 Bitcoin을 캐내는 용도로 개인PC의 시스템 자원을 몰래 쓰기도 했다.

이런 멀웨어들 중에 가장 유명(?)한 것이 Methbot (백서 참조)이라고, 85만개가 넘는 “정상적인” (통신사, 가정집 등등) IP를 보유하고 있는 탓에 광고용 서버에서 IP를 차단하는 방법으로 해결하기 어려운 구조를 갖고 있다. 알려진 바에 따르면 미국 안에서만 하루에 4억개의 광고 노출을 가짜로 만들어 낼 수 있고, 그걸로 하루에 최소 3백만 달러 (대략 30억)를 벌고 있단다.

근데, 알려지지 않은 멀웨어들도 헤아릴 수 없이 많고, 새로운 멀웨어가 지금도 계속 만들어지고 있다.

아래의 동영상은 정상폰과 멀웨어에 오염된 폰이 앱 인스톨 후에 어떤 메세지들을 보여주는지 log를 본 것이다. 정상폰이었으면 생성되지 않았어야하는 메세지들이 오염된 폰에서는 엄청나게 생성된 걸 볼 수 있는데, 이게 전부 가짜 광고 노출, 클릭, 인스톨을 만들어냈기 때문이다.

(멀웨어에 오염된 스마트폰은 정상폰보다 더 많은 광고 노출, 클릭, 인스톨 메세지를 만들어 내고 있다)

 

시스템 기반의 시도 – ads.txt

2010년대 초반부터 구글의 주도하에 광고 지면 판매 방식을 자동화된 2차가격 경매로 판매하면서, 광고 지면을 갖고 있는 매체사들의 인력 비용은 줄었을지 모르지만, 자동화된 시스템을 악용한 멀웨어들의 숫자도 덩달아 늘어났다. 이쪽 분야를 보면 말그대로 끊임없이 진화하는 창과 방패의 싸움이 느껴지는데, 자동화 지면에 한정해서 멀웨어들의 준동(?)을 막는 새로운 시도를 하나 소개해보려고 한다.

보통의 홈페이지들은 sitemap.txt 파일을 갖고 있다. 구글같은 검색 서비스들이 그 파일을 읽어서 홈페이지의 구조도 이해하고, 특정 페이지는 노출하지 말라고 지정하고, 또 어떤 페이지들은 중요 페이지라고 서치 엔진에게 노출 우선순위를 높여라고 지정할 수도 있다. 자동화 광고 지면 판매에 많은 노력을 기울이는 IAB에서 비슷한 맥락으로 ads.txt 파일을 만들어서, 자동화 광고 판매처들이 제대로된 웹사이트인지 확인할 수 있도록 해주는 정보를 입력하자는 제안을 내놓았다. NY Times 예시, Wall Street Journal 예시

google.com, pub-951234556, DIRECT #Display

그 파일에 일반적으로 들어갈 만한 여러개의 라인 중 하나인데, 첫번째는 광고 판매 대행사 (속칭 SSP), 두번째는 매체사 ID, 셋째는 판매 관계 (Direct, Reseller 등등), 마지막으로는 광고 표현 방식이다. 이 txt파일을 하나 추가해놓으면, 일단 지면을 모아서 팔아주는 SSP 입장에서 가짜 웹사이트가 아니라는 걸 확인할 수 있고, 정보를 추적하기도 용이하다. 물론 저런 파일 하나 만들어서 웹 서버에 올리는게 어려운 일도 아니다.

좋은 해결책이라고 생각하는데, 굳이 고민이 된다면 Ad Fraud 때문에 제일 피해를 볼 광고주가 할 일이 아니라, 광고 지면을 팔아서 이득을 보는 매체사들이 해야할 일이라는것 정도일까? 좀 더 넓게 생각하면, 앞으로 ads.txt 파일이 없는 광고 지면에 광고를 하는 DSP와는 거래하지 않겠다고 광고주들이 단합행동을 하고, DSP는 SSP에게, SSP는 실제 지면을 갖고 있는 매체사들에게 압박을 넣는 방식으로 시장 선순환 구조가 만들어지면 좋을 것 같다.

(Source: S4M)

 

데이터 기반의 시도 – Fraud detection algorithm

시스템을 잘 설정해서 완전히 Fraud를 없앨 수 있다면 얼마나 좋을까? 그러나, 저런 방식으로는 멀웨어나 가짜 웹사이트는 쫓아낼 수 있어도, Click Farm의 저가 노동력과 매크로들을 배제하기는 어렵다. 실제로 업무 중에 가짜 웹사이트들을 흔히 보는데, 똑같이 생긴 웹페이지가 이름만 다른 상태로 Copy & Paste 한 티가 팍팍나게 만들어져 있고, 그런 웹페이지 하나에 광고가 10개씩, 20개씩 붙어있다. 가짜 페이지 10개 만들고, 한 페이지당 광고 섹션이 10개씩 있으면 Click Farm의 매크로가 한번 돌 때마다 100번의 광고 노출이 이뤄진다. 하루종일 몇 만번의 광고 노출을 만들어내는건 정말 “식은 죽 먹기”인 셈이다.

Data Scientist는 언제나 시스템 기반의 해결책에 냉소적이다. 시스템은 머물러 있지만 인간은 끊임없이 진화한다는걸 알고 있으니까. 그 진화하는 인간을 추적하는 Data에서 Solution을 찾는 사람들이니까.

보통 Data Scientist가 이런 문제에 접근하는 방법은 Anomaly Detection과 유사하다. 보통의 인간이 만들어 낼 수 있는 클릭, 인스톨 같은 행동 패턴이 있고, 인간이 만들어냈다고 믿기 어려운 행동 패턴은 Click Farm과 매크로가 만들어 낸 경우가 대부분이기 때문에, 해당 서비스에서 Human Behavior라고 판단되는 패턴 N개를 찾아내고, 그 패턴과 매칭율이 k% 미만인 데이터들을 Fraud라고 잡아내는 방식이다.

무슨 데이터를 쓰고, 구체적으로 어떤 알고리즘이 있냐고 물으면, 여기에 써 놓은 걸 보고 클릭 농장 사람들이 새로운 “꼼수”를 찾아내지 않을까?ㅋㅋ  이해를 돕기위해 Macro하게 의구심이 들만한 부분을 간단하게 찾아내는 예시를 하나 들면, 하나의 Publisher ID를 기준으로, 평소에 Click log들이 있을텐데, 필터 알고리즘(such as Kalman)을 이용해 Outlier 부분을 제거하고 Cycle에 해당하는 부분만을 뽑아내본다. 이 때 주기함수를 Frequency domain으로 옮겨서, High frequency 한쪽으로만 One-side detection을 하면 최소한 의구심이 생기는 부분을 잡아내볼 수 있다. 여기에 클릭 다음의 유저 액션을 유저별로 볼 수 있다던가, 한 웹/앱페이지에 동시에 뜨는 광고들을 묶어서 볼 수 있다던가하면 찾아낼 수 있는 방법은 기하급수적으로 늘어난다.

위의 기본 예시를 모든 사이트에 적용할 수 있을지는 잘 모르겠다. 여느 Data Science 프로젝트나 마찬가지로 Fraud Detection도 One-size-fits-all solution을 찾기란 매우 힘들다. 어차피 데이터 전처리를 하고, 각각의 가설에 입각해서 모델을 만들고 테스트 하는 답답하고 괴로운 과정을 겪어야 하나씩 둘씩 알고리즘이 업데이트 되는거라, 광고 지면마다, 주어진 상황별로 적용 알고리즘은 다를 수 밖에 없을 것이다.

현업에 계신 분께 두 가지 사례를 들어 충고를 하고 싶은데, 첫째, 해외 솔루션 중에 있는 특정 IP를 차단해준다는 식의 서비스를 쓰는건 비추한다. Click Farm 입장에선 IP 차단은 VPN만 써도 금방 해결이 된다. 한번은 특정 IP가 장난을 치는 것 같아서 주소 추적을 해 봤었는데, 나중에 알고보니 어느 커피숍 매장의 IP를 해외에 있는 클릭 농장에서 VPN으로 끌어와서 썼더라. 우리나라에 그렇게 가져다 쓸 IP를 제공할만한 커피숍 매장이 몇 개일까? 수천개가 넘을 것이다.

둘째, 어느 글로벌 Top-tier의 앱 트래커 (App Tracker) 서비스가 주장하는 바에 따르면 평균적인 클릭/인스톨보다 많은 숫자가 나오면 무조건 Fraud Click/Install로 잡아준다던데, 이런 단순한 로직이 틀렸다는건 굳이 설명 안 해도 잘 알 것이다. 어떤 업체건 Fraud Click/Install을 찾을 수 있다고 주장하면, 아무리 회사 기밀이라고해도 무슨 로직을 쓰는지 최소한 합리적인 근거는 요청하자. 저 위에 쓴 간단한 예시만큼의 수학/통계학도 안 들어가있으면, 솔직히 말해서 “사짜”라고 생각한다. (그리고 다른 설명은 하나도 없이 다짜고짜 “딥러닝을 이용한” 그러면 무조건 걸러야 한다. 아무것도 모르고 그냥 단순 데이터 입력하는 사람들이나 이 주제에 딥러닝을 쓸 확률이 매우매우매우 높다.)

(Source: S4M)

 

나가며 – Data Science 프로젝트는 “늪”이다

어느 In-house DSP를 운영하는 회사에서 Ad Fraud를 잡아낼 수 있냐는 연락이 왔다. 이런 종류의 컨설팅 프로젝트 요청에 여러 안 좋은 경험들을 겪고 나서부터 일반적인 (Read 몽상적인) 외주 컨설팅 프로젝트들은 일언지하에 거절하는데, 주제 자체가 우리 DSP의 핵심 서비스 중 하나인지라 맘을 바꿔먹고 긍정적으로 답변을 드렸다.

아마도 DSP를 운영하는 회사라면 상황은 비슷할 것이다. 광고주들은 언제나 내가 태운 광고비만큼 효과가 안 나오는 것 같다고 효율 높은 광고 지면을 찾고, 효율 높은 광고 대행사를 찾고, 효율 높은 광고 타게팅 서비스 (DSP)를 찾는다. 외부인의 시선으로 봤을 때는 유저를 잘 찾아주면 되는거 아니냐는 관점으로 타게팅 알고리즘 연구에만 초점이 맞추겠지만, 정작 DSP를 운영하는 입장에서 많은 고민이 되는 부분은 우리 광고 지면을 Clean하게 만들고, 유저 풀을 Clean하게 만드는데 들어가는 노력과 그걸 광고주들에게 인식시키는 비용이다.

여느 보안 서비스와 마찬가지로, 범죄자들의 창끝은 끊임없이 진화한다. 데이터 속의 패턴으로 방패를 만들어 내고 있는 Pabii 입장에서도 매우 Human 스러운 패턴을 복제해내는 매크로를 찾아낼 수 있을 것이라고 단정할 수 없다. 새로운 적이 나타날 때마다 새로운 반응을 해 줘야하는 업무, 그래서 어느 전문가 분은 이런 업무를 “늪”이라고 부르더라.