Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

하이퍼커넥트에서 자동 광고 측정 서비스 구현하기 - PyCon Korea 2018

3,841 views

Published on

Build an automated advertising performance measurement service at hyper connect

Published in: Technology
  • @승호 박 빠른 답변 감사합니다. 좋은 자료 잘 참고 하겠습니다.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @Youngil Cho 아, 맞습니다. 혼란을 줄 수 있는 부분이었는데 추가 설명이 부족했네요. 실제 메서드에서는 month 단위로 되어있는 것이 맞습니다. 그래서 month 단위로 day 단위로 바꾸기 위한 수정이 있었습니다. 이는 모델과 실제 매출을 비교할 때 daily로 비교하기 위해서 수정했었습니다.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 발표 자료 잘보았습니다. LTV 관련 내용에서 다소 궁금한 점이 있는데, 따로 이메일등 연락처를 알기는 어려워 여기에 댓글을 남겨봅니다. lifetimes 라이브러리 소스코드를 보니 customer_lifetime_value 메서드에서 time의 경우 day 단위가 아닌 month 단위라고 되어 있던데, 슬라이드상에서 모델과 실제 매출을 비교하는 예시코드에서 time 부분에 days단위로 숫자를 넣으신 이유가 있나요? 아니면 제가 이해를 잘못한것인지.. 궁금합니다.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

하이퍼커넥트에서 자동 광고 측정 서비스 구현하기 - PyCon Korea 2018

  1. 1. 하이퍼커넥트에서 자동 광고 성과 측정 서비스 구축하기 박승호, 정강식 하이퍼커넥트 파이콘 한국 2018
  2. 2. 발표자 소개 박승호 하이퍼커넥트 데이터 엔지니어 (2016.06 ~ 2017.06) - 데이터 파이프라인 구축 (Python + Spark) 하이퍼커넥트 데이터 서비스 유닛 리드 엔지니어 (2017.07 ~ 현재) - 데이터 서비스 개발 (Python + Spark) - 데이터 분석 (Python) 정강식 금융결제원 S/W 엔지니어 (2007.03 ~2014.02) 하이퍼커넥트 CTO, 공동창업자 (2014.03 ~ 현재) - 엔지니어들이 일하기 좋은 회사 구축 (돈 + 시간)
  3. 3. 하이퍼커넥트에서 (파이썬으로) 자동 광고 성과 측정 서비스 구축하기
  4. 4. 하이퍼커넥트 소개 미션 시간, 언어, 공간의 제약을 넘어 인류 개개인의 도달가능한 인간관계를 전 세계로 넓힌다 시작 2014년 3월, 33세의 엔지니어 3명이 친구 사무실의 책상 하나를 빌려 창업 주요 제품 비디오 기반 소셜 플랫폼 “아자르 (Azar)” + 그리고 더 많은 신규 프로덕트들! 직원수 18개 국적의 180여 명 (엔지니어가 약 40%) 투자 유치 총 120억 원 ($10.6M) - 소프트뱅크벤처스 코리아 (2015) - 알토스벤처스 (2014, 2015) 매출액 성장 94억 363억 624억 ‘14 ‘15 ‘16 ‘17 90% 이상이 해외에서! 21억
  5. 5. 아자르 비디오 기반 소셜 플랫폼 ‘아자르’ ‘아자르’는 전 세계의 새로운 사람들과 만난다는 소셜 디스커버리(Social Discovery) 개념을 구현 한 비디오 기반 소셜 엔터테인먼트 플랫폼입니다. 전 세계의 서로 알지 못했던 사람들이 아자르를 통해 국가, 언어, 성별, 문화의 장벽을 넘어 다양 한 사람들을 만나고, 그들의 삶과 문화를 이해하 며 새로운 즐거움을 경험할 수 있습니다.
  6. 6. 2억+다운로드 6천만+ 일 영상통화 전세계 비 게임 앱 중 매출 7위 글로벌 피처링 AppStore / Google Play 전 세계 230여 개국에서 다운로드 아자르의 성과 “전 세계 73억 인구가 5번씩 만난 셈” 400억+매치 달성 (Google Play, SensorTower Q1 2018)
  7. 7. 기술력 글로벌 운영을 통한 영상통화 기술 최적 화 - 2017년 150억 건의 영상통화 처리 (페이스북 메신저: 170억 건) - 매일 6천만 건 이상의 WebRTC 통화를 안정적으로 제공 중 (피크 시 초당 2천+ 건) 모바일에 최적화된 머신 러닝 기술 - 낮은 CPU성능, 적은 메모리 환경에서 도 빠르게 동작하는 딥러닝 가속 기술 - 서버에 데이터를 보내지 않고 모바일 기기 상에서 실시간으로 처리
  8. 8. Q: 하이퍼커넥트는 아자르 하나만 하는 회사 아닌가요? 아자르 기술은 Java, C 기반이라고 들었는데 하이퍼커넥트에서 파이 썬 쓸 일이 있나요?
  9. 9. 그림자빛 아자르 ... 수없이 많은 시도 들 아자르 말고도 수없이 많은 앱을 만들고 있습 니다 (잘 알려진 건 아자르 뿐이지만…)
  10. 10. 그림자빛 아자르 ... 수없이 많은 시도 들 아자르 말고도 수없이 많은 앱을 만들고 있습 니다 (잘 알려진 건 아자르 뿐이지만…) 파이썬 백엔드를 사용 한 프로젝트가 대부분!
  11. 11. ML 팀의 주요 기술도 모두 파이썬을 기반으로 합 니다
  12. 12. 그리고 무엇보다 파이썬은 하이퍼커넥트에서 데이터에 기반한 의사 결정 (Data-Informed Decision Making) 을 위한 가장 중요한 도구입니다.
  13. 13. 파이썬 기반 도구들을 내부적으로 수정해 사용하 고, 파이썬을 이용해서 데이터 파이프라인을 구축합 니다. (성능이 필요한 곳에는 scala가…)
  14. 14. 발표 소개 자동 광고 성과 측정 서비스 구축하기자동 광고 성과 측정 서비스 구축하기
  15. 15. 발표 소개 기존 마케팅 디지털 마케팅
  16. 16. 발표 소개 디지털 마케팅은 정량적인 성과 평가가 가능하다! 광고에 얼마만큼을 지불했고, 광고가 얼마나 노출되었고, 광고를 통해 얼마나 들어왔는지 알 수 있다. 이러한 데이터 기반으로 광고 분석이 가능!
  17. 17. 발표 소개 자동 광고 성과 측정 서비스 구축하기
  18. 18. 발표 소개
  19. 19. 발표 소개 Avg. ROAS Per Ad ↑ ROAS: 138.8% ROAS: 83.37% 광고 중단! 유사한 광고 추가!
  20. 20. 발표 소개 자동 광고 성과 측정 서비스 구축하기
  21. 21. Index 1. Scheduling (Airflow) 2. Ad Spending 3. Revenue (Payment) 4. Revenue (User Behavior) 5. Attribution 6. LTV (Lifetime Value) 7. TODO
  22. 22. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  23. 23. 스케줄링
  24. 24. Unix 운영체제에서 특정 작업을 특정 시간에 실행시키기 위한 데몬 스케줄링
  25. 25. 스케줄링 https://crontab.guru/
  26. 26. 리포팅을 매일 3시에 하고 싶다 스케줄링
  27. 27. 스케줄링
  28. 28. 하지만 3시에 작업이 실패한다면? 스케줄링
  29. 29. 서버에 직접 접속해서 디버깅하고, 서버에 직접 접속해서 재실행하고… 스케줄링
  30. 30. 리포팅을 하기 전에 데이터를 가져와야 한다면? 스케줄링
  31. 31. 스케줄링 우선 데이터 수집하는 작업을 추가한다
  32. 32. 스케줄링 1시 작업이 3시 전에는 끝날거라고 믿고...
  33. 33. 하지만 여기서 또 1시 작업이 실패한다면? 스케줄링
  34. 34. 1시 작업 재실행하고 3시 작업 중단하고, 1시 작업이 다 끝나면 3시 작업 재실행하고 … 스케줄링
  35. 35. 스케줄링 Airflow
  36. 36. 데이터 워크플로우 관리 도구 그게 뭔데? 스케줄링
  37. 37. 주기적으로 작업을 실행할 수 있고, 작업 사이 Dependency를 추가할 수 있다! 스케줄링
  38. 38. 그리고 이 모든 것을 Python으로 할 수 있다! 스케줄링
  39. 39. 스케줄링
  40. 40. 스케줄링
  41. 41. 스케줄링
  42. 42. 스케줄링
  43. 43. 스케줄링
  44. 44. 실패한 작업에 대해서 Retry를 하거나, 실행된 작업에 대한 로그를 볼 수 있다! 스케줄링
  45. 45. 그리고 이 모든 것을 Web UI로 할 수 있다! 스케줄링
  46. 46. 스케줄링
  47. 47. DAG (Directed Acyclic Graph) 하나의 워크 플로우 스케줄링
  48. 48. 스케줄링
  49. 49. Operator DAG 안에서 실행될 작업들을 정의하기 위한 템플릿 클래스 스케줄링
  50. 50. 스케줄링
  51. 51. Task DAG 상에서 호출되어 생성된 Operator의 인스턴스 스케줄링
  52. 52. 스케줄링
  53. 53. 스케줄링
  54. 54. 스케줄링
  55. 55. 1. Python 기반 오픈소스 2. 분산 환경 지원 스케줄링
  56. 56. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  57. 57. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  58. 58. 마케팅 비용 최근 7일 광고 성과 가져오기 https://developers.facebook.com/docs/marketing-api/insights 쉽다!
  59. 59. 마케팅 비용
  60. 60. 마케팅 비용 1. API Limit API 호출 간격 및 API 요청 최소화 2. 시간대, 화폐 단위 차이 매일 Hourly 수집 및 환율 수집 3. 낯설고, 매체마다 다른 마케팅 용어 Network, Account, Campaign, Adgroup, Creative 통일
  61. 61. 마케팅 비용 파이썬으로 데이터를 가져오고, (몇가지 문제만 고려해서) 데이터를 합쳐주면, 여러 매체의 광고 비용을 한 테이블에서 볼 수 있다!
  62. 62. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  63. 63. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  64. 64. 트랜잭션 데이터베이스에 쌓인 결제 데이터를 주기적으로 스냅샷을 찍어서 테이블로 구성한다 결제 데이터
  65. 65. 결제 데이터
  66. 66. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  67. 67. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  68. 68. 행동 데이터 프리미엄 매치를 하고 싶은데, 매칭 상대방이 없다면?
  69. 69. 행동 데이터 유저는 돈을 쓰고 싶어도 돈을 쓸 수가 없다 소비를 못한다면, 새로운 구매도 생기지 않는다!
  70. 70. 행동 데이터 이때 상대방이 들어와서 매칭이 가능해졌다면?
  71. 71. 행동 데이터 이 상대방 유저는 실제 결제 행동이 없어도 매출에 기여한 유저
  72. 72. 행동 데이터 즉, 유저의 결제 행동이 아닌 다른 행동 역시 매출에 영향을 준다!
  73. 73. 행동 데이터 그렇기 때문에, 유저 행동을 서버 로그로 남길 필요가 있다
  74. 74. 서버 로그를 전처리 + 익명화 과정을 통해서 원하는 테이블로 구성한다 행동 데이터
  75. 75. 행동 데이터 매치 시작과, 매치 종료 시점의 로그를 통해 서 매치가 이뤄진 시간을 추측
  76. 76. 행동 데이터 희망하는 매치에 대한 로그를 통해서 이루어진 매치가 얼마나 원했던 매치인지 추측
  77. 77. 행동 데이터
  78. 78. 행동 데이터 하지만
  79. 79. 행동 데이터 실제 매출이 발생하지 않았는데, 어떻게 가치를 추산할 수 있을까?
  80. 80. 행동 데이터 서비스마다 다르고, 경험적인 내용도 들어가야만 한다...
  81. 81. PageRank 알고리즘 행동 데이터
  82. 82. 행동 데이터 https://ko.wikipedia.org/wiki/%ED%8E%98%EC%9D%B4%EC%A7%80%EB%9E%AD%ED%81%AC
  83. 83. 행동 데이터 https://en.wikipedia.org/wiki/PageRank
  84. 84. 행동 데이터 영향력(High PageRank) 있는 페이지가 인용할수록 해당 페이지의 PageRank가 높아진다
  85. 85. 행동 데이터 높은 매출(High PageRank)인 유저와 매치하면 상대방 유저의 PageRank가 높아진다
  86. 86. Shapley Value 행동 데이터
  87. 87. 행동 데이터 https://pjdelta.wordpress.com/2014/08/10/group-project-how-much-did-i-contribute/
  88. 88. 행동 데이터 검사가 몬스터 5마리를 잡았고, 마법사가 몬스터 20마리를 잡았고, 힐러가 몬스터 1마리를 잡았다
  89. 89. 행동 데이터 그렇다면 힐러는 낮은 Value를 갖는가?
  90. 90. 행동 데이터 알 수 없다! 만약에 힐러가 없다면?
  91. 91. 행동 데이터 검사가 몬스터 2마리를 잡았고, 마법사가 몬스터 3마리를 잡았다 체력이 부족해서 싸울 수가 없다!
  92. 92. 행동 데이터 서비스마다 다양하게 매출이 될 수 있는 행동이 존재하고, 그에 따라 적절한 이론을 선택해야 한다!
  93. 93. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  94. 94. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  95. 95. Attribution 데이터 Attribution 앱을 설치한 유저들을, 어떤 채널에 기여시킬 것인가
  96. 96. Attribution 데이터 유저가 어떤 광고 매체, 그리고 어떤 광고를 통해 앱에 유입되었는지 알 수 있다!
  97. 97. Attribution 데이터 각 매체에서 제공하는 SDK 비용 감소, 개발 코스트 증가
  98. 98. Third Party Tool 사용 비용 증가, 개발 코스트 감소 Attribution 데이터
  99. 99. Attribution 데이터
  100. 100. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  101. 101. 이 광고는 실패한 광고? LTV
  102. 102. 이 광고는 성공한 광고 ! LTV
  103. 103. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  104. 104. 서비스 구조 Daily Report Advertising Attribution (Revenue) Ad Spending Ad Network Payment Behavior LTV
  105. 105. LTV (Lifetime Value) 고객 생애 가치 LTV
  106. 106. LTV 고객 획득 비용 마케팅 비용 고객 매출 구매 고객 유지 비율 Retention
  107. 107. 매출만 올리는 것이 아니라, LTV
  108. 108. LTV 관점에서는 마케팅 비용을 줄이고, 매출을 올리고, 리텐션을 올려야 한다! LTV
  109. 109. 그런데 유저의 LTV를 어떻게 알아내지? LTV
  110. 110. BG/NBD 모델 LTV
  111. 111. 고객은 일정한 비율로 구매하고, 고객마다 다른 비율을 가진다. LTV
  112. 112. Transaction rate LTV Observation Period Transaction rate(λ)는 Poisson Distribution을 따른다 고객간 이질성(λ | r, α)은 Gamma Distribution을 따른다
  113. 113. 고객은 구매 직후 일정한 확률로 이탈하고, 고객마다 다른 확률을 가진다. LTV
  114. 114. Dropout Rate(p)는 Geometric Distribution을 따른다 고객간 이질성(p | a, b)은 Beta Distribution을 따른다 LTV Dropout Rate
  115. 115. LTV Observation Period Forecast Period
  116. 116. Gamma-Gamma 모델 LTV
  117. 117. 고객의 1회 구매금액은 Gamma Distribution을 따른다. 고객간 이질성은 Gamma Distribution을 따른다. LTV
  118. 118. 이걸 어떻게 구현하지... LTV
  119. 119. LTV
  120. 120. LTV
  121. 121. LTV
  122. 122. LTV
  123. 123. LTV
  124. 124. LTV
  125. 125. LTV
  126. 126. LTV
  127. 127. 서비스 구조 Ad Spending Ad Network Daily Report Advertising Attribution (Revenue) Payment Behavior LTV
  128. 128. 서비스 구조 Ad Spending Ad Network Daily Report Advertising Attribution (Revenue) Payment Behavior LTV
  129. 129. 광고 성과에 따른 액션 자동화 광고 성과에 따른 액션(광고예산, 입찰수준 변경)을 자동화한다! WIP: 광고 성과 Alert에 따른 마케터의 액션 수집 TODO
  130. 130. 광고 노출 최적화 서비스 인프라에 따른 광고 노출을 최적화한다! WIP: No-Pacing 광고와 Pacing 광고의 성과 비교 TODO
  131. 131. 타겟팅 광고 자동화 광고 성과가 좋을 것으로 추측되는 유저 목록들을 타겟팅 광고에 자동으로 추가한다! WIP: LTV 높은 유저 특징 파악 TODO
  132. 132. 마무리
  133. 133. 하이퍼커넥트 편의점급 간식 구비 (과자, 씨리얼, 과일, 간편식, 음료, 아이스크림, 주 류 등) 노래방, 탁구대, 포켓볼테이블, PC방, VR, 만화책, 안마의자 등이 완비된 14층 HyperSpace 곳곳에 비치된 아늑한 소파와 빈백
  134. 134. 하이퍼커넥트 훌륭한 동료들과 함께 성장하는 즐거움!
  135. 135. 하이퍼커넥트와 함께 전 세계를 연결할 분을 모십니다! We Connect the World! Website hyperconnect.com Facebook @hpcnt Instagram @hyperconnect Email career@hpcnt.com Connect with Hyperconnect
  136. 136. 아이콘 Icon made by https://www.flaticon.com/authors/pixel-perfect Icon made by https://www.flaticon.com/authors/roundicons Icon made by https://www.flaticon.com/authors/srip Icon made by https://www.flaticon.com/authors/smartline Icon made by https://www.flaticon.com/authors/eucalyp Icon made by https://www.flaticon.com/authors/freepik Icon made by https://www.flaticon.com/authors/nhor-phai Icon made by https://www.flaticon.com/authors/turkkub Icon made by https://www.flaticon.com/authors/picol Icon made by https://www.flaticon.com/authors/smashicons Icon made by https://www.flaticon.com/authors/geotatah Icon made by https://www.flaticon.com/authors/freepik Icon made by https://www.flaticon.com/authors/lyolya Icon made by https://www.flaticon.com/authors/freepik

×