이 글은 넷플릭스 기술 블로그에 올라온 Subir Parulekar, Gopal Krishnan의 글 ‘Engineering to Improve Marketing Effectiveness’ 의 번역 버전입니다. Part1, 2, 3
저자의 허락하에 번역하였으며, 이해 부족과 번역의 미숙함에 의한 문제는 오롯이 저의 부족함 때문입니다. 딱딱한 번역이 되지 않기 위해 약간 표현을 바꾼 번역도 있으니 필요시 원문과 비교하며 보는 것도 좋겠습니다.저는 넷플릭스와 어느 이해관계도 없고 단지 제가 관심 갖던 내용이어서 번역하겠다고 부탁드렸습니다.
번역을 허락해주었을 뿐만 아니라 초안을 보내주면 한국 동료에게 검수를 부탁하겠다 해주신 Gopal Krishnan님께 정말 감사드립니다. 적극적으로 도움에 응하시는 태도가 저에게 큰 감동이었고, 앞으로 다른 사람과 커뮤니케이션 할 때 큰 귀감이 될 것 같습니다. 추가로 취업준비와 겹쳐 번역하겠다고 허락받은 시점보다 굉장히 늦게 번역을 마쳤는데 죄송하고, 다시 한 번 감사합니다.
Part1은 마케팅에 광고 기술을 녹이려는 철학, 동기, 접근 방법에 대해 얘기하고, Part2는 대규모로 광고를 만들고 관리하는 것에 대해, Part3는 대규모로 판매 미디어를 이용하는 방법에 대해 얘기합니다.
이 블로그 시리즈의 첫번째 파트에서 우리는 우리의 철학, 동기, 그리고 광고와 기술을 융합하는 전략에 대해 얘기했습니다. 추가적으로 큰 규모에서 광고소재를 개발하고 지역화시키는 방법에 대해 엔지니어링 업무들을 늘어놨죠.
이번 Part2에서는, 넷플릭스가 광고하는 다양한 광고 플랫폼에 대해 광고를 통합하고 개인화시켜 광고 규모를 기르는 일련의 프로세스를 얘기해보겠습니다.
문제의 외관
세계 수준의 넷플릭스 마케팅팀은 오리지널 영화와 TV쇼, 그리고 각자의 독특한 스토리를 선보이고 성장시키는 일을 합니다. 단순히 만들어진 컨텐츠를 알리는 프로모션만 진행하지는 않습니다. 그들은 적당한 컨텐츠를 조정하고 딱 맞는 고객 혹은 현재는 고객이 아닌 사람들에게(획득 마케팅) 적절한 메시지를 전달하여 결과적으로 수십억명의 유저를 온라인 광고에 도달시키는 일을 합니다. 이런 광고는 다양한 웹사이트의 유저와 페이스북, 유튜브 같은 플랫폼의 공급자에게 도달하게 됩니다.
당신이 대형 블록버스터 영화나 꼭 봐야할 TV쇼의 디지털 마케팅을 런칭한다고 생각해보죠. 당신은 창작물 컨셉, A/B 테스트, 광고 포맷과 지역을 고려해 광고를 만들어야 하고 기술과 컨텐츠 문제에 대해 퀄리티 컨트롤을 해야합니다. 이런 여러가지를 염두에두고, 광고를 집행할 각각의 플랫폼에 트래픽을 보내야 합니다. 이제, 여전히 광고는 우리가 전달해야 할 사람에게 정확히 전달되었다고 가정한 채로 매일 여러 영상의 광고를 런칭해야 한다고 생각해보겠습니다. 결국, 당신은 캠페인을 런칭한 이후 광고 포트폴리오를 계속해서 관리해야 합니다. 날짜가 최신인지 (예. 음악 라이선스 권리와 만료) 확인하고 런칭 이후 변화들을 반영하기 위해서 말이죠.
이 문제를 세 가지 넓은 분야로 나눠 볼 수 있습니다:
- 광고 통합: 큰 규모에서 광고를 제작하고 업무 흐름 자동화를 이끄는 방식
- 창작물 퀄리티 컨트롤(QC): 쉽게 수많은 광고 유닛의 기능적, 의미적 적합성을 QC하게 돕는 일련의 툴과 서비스
- 광고 목록 관리: 캠페인 규모를 쉽게 조절하게 하는 능력 - 머신러닝에 기반한 자동화
광고 통합이 뭔가요?
전반적으로, 순수하게 분석적 관점에서 문제를 바라봤다면 우리는 효과적으로 자동화하고 교과서에서 배운 조합 개념의 폭발적 증가로 만들어질 규모를 조절해야 합니다.
총 광고 가짓수 (cardinality) ≈ 목록 내 영상 x 광고 플랫폼 x 컨셉 x 포맷 x A/B 테스트 x 지역화
맨 앞에 조합 가짓수를 고정해놓고 광고를 진행할 마케팅 플랫폼 -우리 상품의 최초 유저- 을 선정하는 접근법은 쓸모없는 정보는 최소화한 채로 정확하게 전반적인 변형을 반영하게 합니다.
밑에 광고를 봐주세요. 표시된 여러가지 특성을 다르게 만들어졌습니다.
만약 당신이 우리가 광고하는 지역에 따라서만 변형을 만들고 싶다면 많으면 30개 정도의 변형이 될 겁니다. 이는 광고 제작이 정적인 세계에서 30개의 서로 다른 광고 파일이 만들어지고 전송된다는 것을 의미합니다. 더 정성을 들이자면, 광고 구성 요소별로 바껴야 할 점은 각각의 광고마다 다시 반영되고 퀄리티 컨트롤 되어야 합니다. 창작물의 표현에 있어 사소한 수정도 광고 유닛 단위로의 수정이 요구됩니다. 이렇게 만들어진 하나하나의 변형물은 다시 퀄리티 컨트롤, 창작물 업데이트, 재전송 등의 나머지 광고 플로를 따라야합니다.
이런 문제에 대한 우리의 해결책은 동적으로 광고를 제작하고 배열하는 플랫폼이었습니다. 두번째로, 마케터가 변형시킬 것을 알려주고 자동으로 바뀌지 않을 것을 유지하게 하는 툴을 사용하게 해서 정의하고 관리할 데이터의 영역을 대폭 줄였습니다.
밑에 지역화된 버전들을 보시면, 기본 구조는 그대로 사용하고 언어 배치만 바꿔 다른 창작물을 만들었습니다
이 방법으로 몇 시간에서 며칠씩 걸리던 하나의 광고 유닛을 몇 분만에 30가지 지역화하게 되었습니다.
또 우리는 광고 통합을 빠르게 하는 다양한 서비스를 통해 통합화를 진행해 매끄럽게 이런 과정을 진행할 수 있었습니다. 예를 들자면, 컨텐츠 영상물등급, 영상 자산의 변환과 압축, 작품 목록에 아트워크 중간삽입 등을 지원하는 기능 같은 것을 통합했습니다.
이런 노력들이 합쳐져 큰 범위로 진행되었던 캠페인 실행에 소요되는 노력과 시간을 감축시켰습니다.
창작물 퀄리티 컨트롤 (QC)
퀄리티 컨트롤의 주요한 요소는 광고가 제대로 제공되고 기술적/시각적 문제가 없음을 보장하는 일입니다 - 우리는 이걸 “기능적 QC”라고 부릅니다. 다양한 광고 타입에 따른 차이와 발생 가능성 있는 이슈들을 고려하며, 우리가 창작물 QC 성능을 높이기 위해 했던 가장 중요한 몇가지 노력들을 공유하겠습니다.
먼저, 우리는 광고 통합 과정 동안 적절한 값을 입력하고 에러 가능성을 낮춰주는 툴을 사용합니다.
이후 광고 통합 과정에서 검증과 정확성 체크를 진행해 발견한 QC 문제들을 최소화시킵니다. 예를 들어, 페이스북 광고에 글자 수 제한을 넘기면 경고를 띄우게 했습니다.
둘째로, 우리가 지금 집행 중인 광고 유닛에 기술적 문제 -기능적으로 부정적인 영향이 있거나 유저의 경험에 부정적인 부작용을 야기할 수 있는- 가 있는지 판단하기 위해 자동화된 테스트 셋을 실행시킵니다.
최근엔, 몇가지 QC 업무를 위해 비전 머신러닝 방법을 활용하기 시작했습니다. 어디에 광고가 보내지느냐에 따라 영상물 등급 이미지를 넣어야 하는 경우가 있습니다. 비디오 제작 과정에서 이런 평가 이미지가 제대로 들어갔는지 검증하기 위해 우리는 Cloud Media Systems 팀이 개발한 이미지 검출 (image detection) 알고리즘을 사용합니다. Audio Visual (AV) 중심의 창작물의 양이 계속해서 많아짐에 따라 저희는 작업 흐름에 이런 방법을 많이 적용할 계획입니다.
기능적인 정확성에 더해 저희는 의미적 QC도 굉장히 신경씁니다. 광고가 제작물의 목표에 맞는지 그리고 컨텐츠와 넷플릭스 브랜드의 톤과 목소리(맥락상 톤앤매너를 의미 - 역자주)를 정확하게 잘 표현하는지를 우리 마케팅 유저들이 결정할 수 있게 말이죠.
우리 광고 플랫폼을 만들 때 고려하는 핵심 교리 중 하나는 ‘실시간으로 영상을 만들고 즉각적으로 업데이트 한다’입니다. 우리 플랫폼 사용자들 (마케팅팀을 포함한 관련 업무 종사자. 전반적으로 최종 사용자보다 이와 같은 의미로 해당 단어가 많이 사용됨 - 역자주) 이 광범위한 의미를 잘 파악하고 업데이트할 것을 정확히 짚어낼 수 있는 능력을 갖춘 덕에 우리 플랫폼은 문제를 발견하자마자 해결할 수 있게 합니다. 사용자들은 필요에 따라 tearsheet라는 것을 공유하면서 피드백과 리뷰를 잘 반영할 수 있습니다. tearsheet는 최종 광고 버전에 대한 시사회이며 최종 광고 배포 전에 불필요한 것을 없애기 위해 진행됩니다.
광고 캠페인의 건강함과 성공에 이런 과정이 얼마나 중요한지 고려하여 QC 자동화 인프라에 많이 투자 중입니다. 또한, 더 높은 자리수의 스케일에서도 지속 가능하기 위해 복잡한 업무 관리, 상태 트래킹, 작업흐름 알림을 가능하게 하려고 활발히 일하고 있습니다.
광고 목록 관리
광고가 준비되면 이렇게 만들어진 광고를 바로 보내는 대신에, 목록이 있는 광고 관리 레이어에 광고 제작과 조립 과정을 분리해둡니다.
목록은 ‘제목을 알리기 위한 건가?’, ‘고객유치 마케팅 차원인가?’, ‘한 편의 영화나 쇼에 대한 캠페인인가? 여러 영상이 있다는 걸 강조하는가? 브랜드 중심 소재인가?’, 혹은 ‘런칭 전에 하는 캠페인인가 런칭 후에 하는 캠페인인가?’ 같은 캠페인의 의도에 기반하여 수행할 광고 세트를 뽑습니다.
마케팅 사용자들에 의해 개념이 잡히고 나면, 자동화된 목록이 다른 여러 고민사항 중 다음의 것들을 다룹니다:
- 배포하는 창작물 관리를 위해 합쳐진 자사 데이터, 학습된 모델, 유저 구성, 광고 퍼포먼스 데이터 등을 사용
- 필요하지만 지금은 없는 광고의 제작을 자동으로 요청
- 소재 가용성, 추천 데이터, 블랙리스트 등에 대한 변화에 반응
- 유저의 업무 흐름 단순화 - 캠페인에서 런칭 전/ 런칭 후 단계에 따른 관리, 컨텐츠 재활성화 스케줄 관리 등
- 지표 수집 및 소재 이용과 효율 추적
목록은 그 자체로 그리고 이것으로 지원하는 캠페인의 최적화에 굉장히 효과적인 툴입니다. 사실상 자사 데이터를 “지적 레이어”로 바꾼다고 볼 수 있습니다.
개인화와 A/B 테스트
이런 모든 노력이 합쳐지면 각각의 효과보다 더 좋은 결과가 됩니다. 기술을 통해 컨텐츠 퍼포먼스 데이터와 광고 퍼포먼스 데이터라는 연료로 돌아가는 항시 이용가능하고 / 늘 최신이면서 / 자동으로 최적화되는 세계적 규모의 차를 운전하게 된거죠. 비용을 자동으로 분배하는 알고리즘을 통해, 기능적인 복잡함을 굉장히 효과적으로 다룰 수 있습니다. 결과적으로 마케팅 유저들은 놀라운 광고소재를 만들고 A/B 테스트나 마케팅 플랜을 구성하는 일에 더 집중할 수 있습니다. 그리고 우리의 자동화된 목록을 통해 적절한 광고영상이 적절한 곳에 사람 손을 거치지 않고 보내줍니다. [자동화된 광고 선택과 개인화]
이게 왜 게임 체인저인지 이해하려면, 이전 방식을 생각해볼 필요가 있습니다. 런칭할 모든 영상은 비용, 타게팅, 지역, 광고 기간과 광고 비용 등 여러가지를 고려해야 했죠.
이건 계속해 늘어가는 컨텐츠와 시청자가 있는 여러 국가와 플랫폼, 포맷의 폭넓음과 미묘한 차이를 고려할 때 극도로 힘든 작업이었습니다. 다음으로, 곧 있을 캠페인과 런칭을 준비하면서 이미 진행되고 있는 작품의 예상치 못한 실적 변화에 대응하는 것은 도전적이고 힘든 일이었죠.
사실 넷플릭스 열풍은 여러 A/B 테스트의 결과로 올 수 있었습니다. 이전에, 우리는 몇가지 테스트를 통해 광고 목록을 항시 올려놓고 개인화하여 전달하는 방식이 이전의 텐트폴 (흥행 성공을 보장하는 간판 작품 - 역자주) 접근 방식보다 효과가 좋다는 걸 배웠습니다. 그래서 저희는 다른 플랫폼에서도 어떻게 개인화를 잘할지 결정하기 위해 많은 후속 작업을 진행했습니다. 이건 근본적으로 계속해 배워나가는 프로세스이며 더 많이 전세계적으로 마케팅 A/B 테스트를 진행함에 따라 대규모로, 연속적으로 개선되어지는 최적화 메트릭을 발견했다는 사실에 우리는 기쁜 마음으로 놀랐습니다.
서비스 아키텍처
이 기술은 NoSQL 저장소로 활용하는 Cassandra와 Elasticsearch, 데이터를 운반하거나 이벤트를 발생시켜 결과적으로 Titus에 적용된 도커화된 마이크로 어플리케이션화로 다른 파트를 연결하는 Kafka, Hermes 같은 여러 Java와 Apache Groovy 기반 마이크로서비스로 가능했습니다.
우리는 RxJava를 상당히 많이 사용하며 광고영상과 VAST (Video Ad Serving Template, 비디오 광고 표준규격 - 역자주) 비디오를 서비스하기 위해 실시간 요청을 다루는 광고 서버는 RxNetty를 프레임워크로 사용합니다. 이 프레임워크는 최소한의 기능과 관련된 간접비용을 불러오는 과정에서 커스텀 설정을 제공합니다. 미들티어 응용프로그램 서버로는 Tomcat / Jersey / Guice로된 서비스를 사용합니다. 다양한 기능을 제공하고 (latency와 제약 처리량으로 인한) 인증과 권한, 넷플릭스 클라우드 에코시스템을 위한 발군의 지원 기능을 쉽게 통합해주기 때문이죠.
앞으로의 미래
우리에게 지난 몇 년간 여러 기술을 만들 기회가 있긴 했지만 실질적으로 우리 업무는 갈길이 한참 남았습니다.
우리는 몇몇 광고 플랫폼에서 높은 수준의 발전을 이뤘고, 몇몇 플랫폼에서는 이제 막 시작했으며, 몇 곳은 아직 시작할 준비도 안 되었습니다. 몇몇 플랫폼에서 광고 제작부터 통합, 운영, QC(Quality Control)의 전체를 히트시켰고, 다른 곳에서는 기본적인 통합 과정의 외견도 만들지 못했습니다.
자동화와 머신러닝은 우리를 멀리까지 이르게 했지만, 더 많이, 더 잘하려는 우리 조직의 열망은 지금 시스템이 만들어내는 것을 훨씬 앞질러 있습니다. 더 많은 탐험거리를 생각하게 하는 A/B 테스트와 광고 업무흐름 다방면으로 분석과 예측에 힘을 실어주는 데이터 활용을 통해, 우리는 기대되는 흥미로운 도전들을 생각하고 있습니다.
닫으며
요약하자면, 우리는 어떻게 우리가 스케일을 키우고 광고에 들이는 노력을 스마트해지도록 도와주는 독보적인 광고 기술을 갖췄는지에 대해 얘기했습니다. 몇가지 디테일은 추후 포스트에서 비중있게 다뤄질 것입니다. 앞으로 다뤄질 마케팅 기술 여정에서, 우리가 어떻게 다양한 플랫폼으로부터 마케팅 분석을 도왔는지 그리고 어떻게 사과와 오렌지 속담 (비교할 수 없는 것을 비교한다는 내용 - 역자주) 을 가능하게 만들고 이를 활용해 캠페인 비용을 최적화했는지 곧 얘기해보겠습니다.