광고컬럼

모바일 미디어 시대의 도래와 함께 모바일 퍼포먼스 광고 시장은 2016년에서부터 2017년까지 눈부신 외적 성장을 이루었는데요. 오늘은 non-incent CPI와 그 성장의 이면에서 영향을 떨쳐온 Fraud에 대하여, 그 세 번째 이야기를 이어가고자 합니다. 

 

     □2017.10) 모바일 퍼포먼스 광고와 Fraud (1부)

     □2017.12) 모바일 퍼포먼스 광고와 Fraud (2부)

 

앞선 두 개의 이야기를 통해 앱 광고주의 수요에 맞게 진화해온 모바일 앱 퍼포먼스 광고 상품을 논한 바 있죠? 앱 광고주의 설치 전환율에 대한 부담을 덜고 성과를 개런티 하며 시장에 등장하였던 ‘CPI’, 이후 앱스토어의 매대 경쟁에서 유리한 거점을 확보할 수 있도록 신속한 양적 성장(부스팅)의 기능에 집중한 ‘incent-CPI’, 앱 내 건강한 생태계를 조성할 진성 유저의 모객과 LTV 최적화에 고도화되어 온 ‘non-incent CPI’의 히스토리를 간략하게 짚었는데요. 그리고 필연적으로 언급해야 할 Fraud의 존재와 광고주/매체 간에 미친 영향, 이를 통한 non-incent CPI의 위기와 극복을 개략적으로나마 이야기한 바 있습니다.

 


이번 세 번째 칼럼에서는 Fraud, 정확히는 Click Fraud를 개선하기 위한 근래의 non-incent CPI (이하 nCPI) 소식을 짚어보려고 합니다.

 

이를 위해, 다이내믹했던 2017년의 끝과 2018년의 시작에서 Fraud 다음으로 가장 많이 회자되었을 CTIT(Click To Install Time)에 대한 이야기를 먼저 시작해보겠습니다. 

 

그간 <10초>라 통용되어온 정상/비정상 클릭을 나누는 CTIT 기준에는 미묘한 변수가 존재하였습니다.

 

트래커의 SDK가 인지하는 Install의 기준은 설치 후 첫 실행(App open) 입니다. 이젠 상식처럼 받아들이는 이야기이지만, 앱이 디바이스에 설치되었더라도 실행(App Open) 되지 않으면 트래커는 전환을 잡을 수 없습니다. 그 이유는 SDK가 동작하기 전에는 트래커가 디바이스를 추적할 연결고리가 없기 때문이죠. 

 

광고주의 ‘앱’ 자체에 상주하여 성과 추적을 구현하는 모바일 트래커의 SDK 방식은 앱 설치 후 실제 실행을 수반하는 진성 유저 (Royal User) 모객에 대한 광고주의 니즈에 적합했고, 이후 유저의 지속적인 LTV (Life Time Value)를 관리함에도 탁월하였습니다. 

 

매체에게는 자사의 추적 도구를 개발/보유하지 않더라도, 더 많은 광고주에게 퍼포먼스 기반 최적의 상품을 제안할 수 있게 해주었고, 다양한 광고주와 매체 간의 가교 역할을 통해, 트래커는 매체에게 더 많은 퍼포먼스 캠페인의 기회를 열어주었습니다. 

 

광고주/에이전시에게는 앱 내 작은 SDK만 삽입함으로써, 수많은 퍼포먼스 지면을 사용하고, 일원화된 방식으로 성과를 분석/최적화 할 수 있도록 하였습니다. 또한 마케팅 목표에 적합한 최적의 앱 내 다양한 이벤트 별로 캠페인 KPI 설정이 가능하도록 했죠.

 

즉, 앱이 실행되어야만 성과를 추적할 수 있는 현재의 트래커와 SDK 방식은 광고주/에이전시와 매체 모두에게도 이점이 되었습니다. 

 

 

그러나 앱이 실행되지 않는다면, 추적도 불가하다는 점에서 발생하는 미지의 영역이 있었습니다.

 

트래커와 광고주를 통해 흔히 회자되었던 ‘클릭에서 인스톨까지의 시간’ = CTIT (Click To Install Time)는 무엇일까요? 결론부터 말하자면 ‘클릭에서 실행(앱 오픈)까지의 시간’ = CTOT (Click To Open Time)입니다. 트래커의 클릭 링크로 발생하는 유저의 클릭은 트래커에 먼저 랜딩 했다가 구글 플레이로 리디렉션 하게 됩니다. 이 과정에서 클릭의 시간대 정보(Click Time: CT)가 트래커 서버에 남겨지죠. 이후, 앱이 실행되면 앱 안의 트래커 SDK가 동작하여 설치 정보를 트래커로 보내게 되는데, 역시 이 과정에서 트래커 서버에는 실행의 시간대 정보(Open Time: OT) 존재합니다. 

 

그러나 클릭과 실행 사이에 존재하는 '설치'(install) 자체에 대해서는 현재의 SDK 방식으로 트래커가 추적할 방법이 없습니다. (Install Time: IT) 앱이 실행되지 않으면, 그 설치를 추적해야 할 트래커 SDK 역시 잠들어 있기 때문이죠. 즉, 트래커 입장에서의 미지의 영역은 바로 앱이 실행되기 직전의 ‘설치’ 그 자체입니다.

 

다시 말하지만, 근래의 화두가 되었던 CTIT는 사실 CTOT입니다. 그런데 이게 왜 문제가 될까요?

 

트래커는 설치 유저를 보내준 마지막 지면, 즉 라스트 클릭을 유발한 지면을 그 설치에 대한 최대 공헌자라고 판단합니다. (라스트 클릭 어트리뷰션) 이 때문에 라스트 클릭 어트리뷰션은 유저가 앱 설치에 대한 동기부여를 가장 많이 받은 지면, 즉 훌륭한 지면을 판단하는 트래커의 적절한 로직이었습니다.

 

그런데 문제는 설치 판단의 주체인 트래커는 정작 정확한 설치 시점을 모른다는 것입니다. 훌륭한 지면을 판단하는, 즉 지면의 성과를 인정하는 유저의 액션은 분명히 ‘설치’인데 트래커는 설치 후 ‘실행’이 따라야 이를 판단할 수 있습니다. 앱이 디바이스에 실제 ‘설치’되고, 트래커가 그 성과를 판단하기 전까지의 미지의 시간, 즉 성과 추적의 ‘암흑 시간’이 존재하는 것이죠.

 

이를 마라톤에 비유해보겠습니다.

 

A라는 국가(디바이스 A)에서 개최된 올림픽에 마라톤(nCPI 캠페인) 종목이 있습니다. 이 경기에 많은 마라토너(클릭 A, B, C)들이 긴 마라톤 레이스의 여정을 마치고 마지막 레이스가 남아있는 트랙 경기장에 들어오고(구글 플레이 랜딩) 있다고 가정해보죠. 물론, 경기장의 끝에는 우승자를 가려낼 피니시 라인(앱 설치)이 있습니다.

 

규칙은 간단합니다. 다른 마라토너를 제치고 제일 먼저 피니시 라인(앱 설치)에 도착한 단 한 명의 마라토너만이 레이스의 승자가 되어 A 올림픽의 금메달(디바이스 A의 인스톨 어트리뷰션)을 목에 걸 수 있습니다. 그러나, 피니시 라인에서 선수들을 기다리던 심판(트래커 SDK)은 긴 레이스 타임에 지쳐 그만 잠이 든 상태이죠.

 

마지막 트랙 레이스에서 클릭 A, B, C 간의 박빙 끝에, 드디어 가장 먼저 피니시 라인에 도착한 마라토너는 클릭 C였습니다. 클릭 C가 피니시 라인을 통과한 잠시 후, 경기 종료의 휘슬이 울려 퍼집니다. (앱 실행) 휘슬 소리에 깜짝 놀라 잠에서 깬 심판(트래커 SDK)은 부랴부랴 시상대로 가서 클릭 X에게 금메달을 수여합니다.

 

이게 무슨 일이죠? 피니시 라인(앱 설치)에 가장 먼저 도달한 마라토너는 클릭 C였는데 엉뚱한 클릭 X가 금메달을 받았습니다. 대체 무슨 일이 벌어진 것일까요?

 

사유는 이렇습니다. 클릭 C가 피니시 라인(앱 설치)에 가장 먼저 도착하는 순간, 근처에 숨어 이를 지켜보던 클릭 X가 부리나케 시상대로 달려갑니다. (클릭 밀어 넣기; Click Injection) 심판은 피니시 라인(앱 설치)을 못 본체 졸고 있다가, 경기 종료 휘슬(앱 실행)에 비로소 깨어나 시상대(라스트 클릭) 결과만 본 것입니다. 클릭 X는 반칙(Click Injection)을 범했고, 심판은 오판(라스트 클릭 어트리뷰션) 해버렸습니다. 위와 같은 Fraud 플레이어의 클릭 밀어 넣기와 트래커의 오판이 nCPI 캠페인 상에서 비일비재 했던 것입니다.

 

 

유저가 앱 광고를 보고 앱 설치에 이르는 여정에는 1) 클릭 > 2) 설치 > 3) 실행이 순차적으로 진행됩니다. 시간여행을 하지 않는 이상, 설치를 유발한 클릭이 설치 이후에 올 수는 없죠.

 

그런데 트래커는 마지막의 3) 실행만 바라보고 있으니, 설치 이후에 가짜 클릭을 밀어 넣어도(Click Injection) 트래커는 잘못을 감지 못하고 라스트 클릭으로 오판해 버리는 것입니다. 경기의 승패를 가르는 피니시 라인을 보지 않고, 결과를 판단하는 시상대만 바라보는 심판이 된 꼴이죠.

 

하지만 꼬리가 길면 밟히기 마련입니다. 작년부터 트래커가 이러한 Click Fraud의 로직을 인식하기 시작했습니다. 트래커가 가진 정보는 클릭과 실행의 시간대 (Click to Open Time: CTOT) 이기 때문에, 이 것으로 Fraud 패턴을 분석하게 되는데, 상대적으로 CTOT=10초 보다 짧은 구간에서 Fraud로 의심할 만한 이상 패턴이 두드러지는 것을 발견하였습니다. (인스톨이 지나치게 편중되거나, 클릭과 인스톨 사이의 디바이스 정보가 변경되거나, 대량의 인스톨이 특정 IP에 몰려있거나, 리텐션 및 인앱 이벤트 성과가 저조하거나 하는 등)

 

이 결과는 수 많은 빅데이터 중에서 CTOT = 10초 미만의 기준치로 필터 하여 데이터를 재분석할 경우, Fraud로 확진 할만한 이상 패턴을 찾을 확률이 높아진다는 결론에 이르게 됩니다. 분산된 데이터들의 핑거프린팅(Finger Printing)으로 디바이스를 식별해내는데 능한 트래커에게는 CTOT를 통해서도 Fraud를 증거를 발견해내는 또 하나의 기준점을 기대한 것입니다.

 

그러나 이것이 광고주와 에이전시에는 “10초 보다 짧으면 = Fraud”라는 단순화된 공식으로 통용되기 시작하면서 본래의 의도와는 조금 다르게 흘러갑니다. 트래커 역시 ‘클릭’과 ‘실행’ 사이의 암흑 구간을 적극적으로 논하기 보다는, ‘CTOT = 10초’라는 기준점으로 가상의 ‘설치’ 시간을 추론하고, Fraud의 증거를 찾는데 집중하였습니다. (이러한 이유로 ‘CTOT=10초’는 ‘CTIT=10초’의 기준점으로 재해석되어 시장에 회자된 것이 아닐까 추측해봅니다.)

 

 

문제는 정확한 ‘설치’ 설치시간은 모른 체, ‘설치’ 전후의 클릭을 판단하는 문화가 조성된 것입니다.

 

실제로 CTOT에 영향을 미치는 변수들이 많이 있습니다. 일례로 개별 앱 마다 설치 용량이 다르며, 그 앱을 다운로드 받는 유저의 네트워크 환경(LTE/3G, Wi-Fi, 시설 내의 공용 IP 등)도 다양하죠. 또 디바이스의 통신 성능에 영향을 미치는 내적 변수들 (여유 메모리, 저장공간, 배터리 등)도 있고, 광고주의 랜딩 과정(복수의 트래커 사용 및 다이렉트/리다이렉트 랜딩)에서도 다양한 요소가 존재합니다. 

 

물론 다양한 사례에서 CTIT = 10초는 하나의 기준 점으로 삼고, Fraud의 가능성에 접근해가는 기회요소가 되었으나, 때로는 매체와 트래픽의 Fraud를 성급하게 확진 짓는 리스크 요인으로 작용하기도 하였습니다. 다른 성과 지표가 좋은데, CTIT가 10초 미만이어서 비정상 트래픽으로 전락하거나, App 용량이 크거나 랜딩 과정의 리디렉션 페이지를 반영할 때 CTIT 기준을 15초~20초로 확대해서 더 많은 트래픽이 필터 처리되는 사례도 이따금씩 발생하였죠. 이는 궁극적으로는 지면의 퍼포먼스 이력을 객관적으로 평가하고 반영해야 할 매체의 최적화 로직에 바이러스가 될 수 있습니다.

 

일반화 되어버린 CTIT=10초 가이드가 포용하지 못하는 다양한 변수를 고려하고, 10초 가이드가 오용되는 사례를 개선하기 위해서는 설치 전환을 판단하는 트래커가 정확한 ’설치’ 시간을 알면 됩니다. 설치 시간을 기준으로 그보다 짧은 CTIT를 근거로 Click Injection 을 명확히 발라내는 트래커 본연의 역할을 찾을 수 있게 되죠. 

 

트래커 SDK로는 암흑 구간으로 존재하는 ‘설치’의 정확한 시간 정보는 바로 디바이스에 직접 앱을 내린 스토어(구글 플레이)에 남아있습니다. 이러한 시장의 니즈를 수용하여 앱스토어(구글 플레이)는 트래커에게 디바이스 별 인스톨 시간을 알려주기 시작했습니다.

 

2017년 11월부터, Google Play Referrer API 를 통해 그간 암흑 구간으로 남아있던 앱의 실제 설치시간을 트래커에게 공유하고 있습니다. (정확히는 구글 플레이 상의 ‘설치’버튼을 클릭하여 앱 설치를 시작하는 시점부터 앱 설치가 종료되어 ‘열기’버튼으로 바뀌는 시점까지) 이를 바탕으로 트래커 SDK가 추적할 수 없었던 암흑 구간인 ‘설치의 시점’에 대한 마지막 퍼즐 조각을 완성하게 됩니다. 

 

즉, 1) 클릭 > 2) 설치 > 3) 실행 의 타임라인을 트래커가 완벽하게 가지고 있기 때문에, ‘설치’ 후에 ‘클릭’을 밀어 넣는 Click Injection을 완전히 차단할 수 있게 되었습니다. 마라토너들이 피니시 라인을 밟는 순간, 심판 역시 피니시 라인을 정확히 바라보며 진정한 금메달리스트가 누구인지, Fraud가 누구인지를 판단할 수 있게 된 것이죠.

 

2017년 12월과 2018년 1월부터는 다수의 트래커가 Click Injection 구간의 클릭을 파악하고, Rejected Install 여부를 판단하고 있습니다. CTOT=10초의 부정확한 기준으로 광고주와 매체 간 Click Injection 및 Fraud 인식의 오차가 우려되었던 만큼, 구글 플레이와 트래커의 컬래버레이션은 매체의 입장에서도 적극 환영할 일입니다. 

 

애드스크린 역시 ‘CTIT=10초’의 나락에서 헤어 나오기까지 크고 작은 사건들이 있었고, 이 과정이 경험과 학습, 문제점을 알게 되었습니다. 이를 토대로 현재는 포스트 백 기반의 전수 트래픽 Click Injection 관리와 목표 CVR 매핑을 통한 Click Farming 최적화를 고도화하였습니다. 이를 통해 nCPI 효율과 이후의 유저 성과를 제공하는 동시에 그 전환의 시작에서부터 검증된(가치 있는) 클릭 여부를 판단하는 플랫폼으로 거듭나고 있습니다.

 


특히, 5월 출시를 앞두고 있는 애드스크린 2.0 플랫폼을 통해서 모든 엔드 퍼블리셔에 유입된 유니크 디바이스 별 전수 리텐션 관리(45일)는 물론이거니와, 전수 클릭 ID에 기반을 둔 CTOT(혹은 CTIT) 자체 최적화 기능이 구현됩니다. 기존의 휴먼 리소스 중심으로 구현되어 온 애드스크린 최적화 로직은 자동화 시스템을 통해 양적으로나 질적으로나 생산성이 견고해질 것입니다. 이로 인해 애드스크린의 휴먼 리소스는 보다 고도화된 최적화 방안과 이를 전 캠페인에 범용적으로 활용하는 방식을 끊임 없이 연구할 것입니다.

 

고도화된 로직과 집적된 중장기 데이터를 바탕으로 트래커에서 판단하는 CTIT, Click Injection 정보를 적극 매칭하여 근래의 화두가 된 Fraud 별 Rejected Install을 주도적으로 관리할 수 있도록 준비하고 있습니다. 이의 첫 단계로 퍼블리셔 퀄리티 & 리텐션 리포팅 2.0버전이 완성되어 2017년 11월 이후의 캠페인에서 전수 트래픽에 대한 퍼블리셔/클릭/Fraud rate가 관리되고 있습니다. 이슈 연관 지면에 대한 관리 역량을 개선하고 궁극적으로는 클릭과 인스톨, 이후의 LTV를 연계하는 최적화를 업계에서 선행하는 애드스크린 2.0이 될 전망입니다.

 

2018년, 위기를 기회로! 애드스크린!