1 of 92

Google(Playstore)에서�과제 런칭하기�

2 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

3 of 92

4 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

5 of 92

강사 소개 : 정채상

  • 25+ years field experiences in computer engineering area. 

  • Companies : e-motions / iCube / Palmpalm tech / Teleca / ETRI / Google / Samsung / banksalad / KAIST

  • Roles : Software engineer / Tech lead (manager) / People manager / Product owner(or Product Owner) / Technical advisor / Leadership (senior manager) / Adjunct Professor

  • Domains : Embedded / Smartphone(s) / Consumer service / Tech infrastructure / Big Data / AI / …

  • Languages : C / C++ / Java / Javascript / Python/ Go / HTML / CSS / …  Korean / (Survival) English

  • QWERTY / 390 세벌식 / VI / JetBrain / VsCode / …

6 of 92

강사 소개

  • 25+ years field experiences in computer engineering area. 

  • Companies : e-motions / iCube / Palmpalm tech / Teleca / ETRI / Google / Samsung / banksalad / KAIST

  • Roles : Software engineer / Tech lead (manager) / People manager / Product owner(or Product Owner) / Technical advisor / Leadership (senior manager) / Adjunct Professor

  • Domains : Embedded / Smartphone(s) / Consumer service / Tech infrastructure / Big Data / AI / …

  • Languages : C / C++ / Java / Javascript / Python/ Go / HTML / CSS / …  Korean / (Survival) English

  • QWERTY / 390 세벌식 / VI / JetBrain / VsCode / …

7 of 92

프로젝트들- Senior / Staff Engineer, TLM/PM at Google ( 2007 ~ 2020 )

  • Search
    • Search for Korean Desktop / Korean Mobile
    • Rich Snippets
    • App Search
    • App Indexing
  • Playstore
    • Search and discovery for JP/KR
  • More
    • Nest store
    • Lens
    • Core debugging

8 of 92

프로젝트들- Senior / Staff Engineer, TLM/PM at Google ( 2007 ~ 2020 )

  • Search
    • Search for Korean Desktop / Korean Mobile
    • Rich Snippets
    • App Search
    • App Indexing
  • Playstore
    • Search and discovery for JP/KR
  • More
    • Nest store
    • Lens
    • Core debugging

9 of 92

10 of 92

11 of 92

목차

  • 강의 소개
  • Playstore 소개
    • 기본 정보
    • 챌린지
    • 지표
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

12 of 92

About Playstore

  • Play 스토어 , https://play.google.com/
  • $$ : Japan > USA > Korea
  • Android Market (2008 ~ ) , Google Play ( 2012 ~ )

  • Consumer product
    • 게임 / 앱 / 혜택 / 도서
    • Movies , Music도 있었음.
  • Developer product
    • Console / Promotions / Rewards
    • Payments / Subscription / Ad Campaigns
  • Invisible effort
    • Ranking / Spam / i18n / p13n

13 of 92

Playstore - 게임

14 of 92

Playstore - 앱

15 of 92

Playstore – 도서

16 of 92

Playstore – more screens

17 of 92

18 of 92

목차

  • 강의 소개
  • Playstore 소개
    • 기본 정보
    • 챌린지
    • 지표
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

19 of 92

Playstore 챌린지들

  • 시장 상황의 이슈들
    • iPhone / Apple 앱스토어
    • 원스토어 / 갤럭시스토어 / Steam / Epic
    • 반독점
    • 클릭 팜
  • 개발사들과의 고민들
  • 제품 내의 충돌들
  • 기술적인 고민들

20 of 92

Playstore 챌린지들

  • 시장 상황의 이슈들
  • 개발사들과의 고민들
    • 과다 수수료 논란
    • 지하철 광고 등의 detail page 마케팅
    • 스폰서 , 리워드 배치
    • 광고주 = 개발사
    • 다양한 주문형 캠페인 조건들
  • 제품 내의 충돌들
  • 기술적인 고민들

21 of 92

Playstore 챌린지들

  • 시장 상황의 이슈들
  • 개발사들과의 고민들
  • 제품 내의 충돌들
    • 게임 vs 앱 vs 도서
    • 인기 차트
    • 구독 ( Subscription )
    • Spam / reviews
  • 기술적인 고민들

22 of 92

Playstore 챌린지들

  • 시장 상황의 이슈들
  • 개발사들과의 고민들
  • 제품 내의 충돌들
  • 기술적인 고민들
    • Web + app 동시 실행
    • Multi devices and multi accounts
    • Language and country
    • vs pre-installed app vs pre-registered app
    • Revenue vs usage
    • Relatively smaller catalog

23 of 92

24 of 92

목차

  • 강의 소개
  • Playstore 소개
    • 기본 정보
    • 챌린지
    • 지표
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

25 of 92

지표들( metrics ) – 1/2

  • 쇼핑몰과 유사한 지표들
    • Impressions
    • Clicks
    • Install ( Acquisition )
    • Uninstalls
    • Runs
    • Time spent
    • Ads metrics
    • Campaigns
    • Search metrics

26 of 92

지표들 – 2/2

  • Challenges
    • Spam
      • Good acquisitions
      • Install + run X times within Y days 🡪 Y days delay
    • Revenues
      • In-app happens later.
      • Subscription and paid apps don’t have impact.
    • Credits
      • From various entry-points
      • Handling cannibalization

27 of 92

28 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
    • 추천
    • 검색
    • 디테일 페이지
    • 기타
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

29 of 92

추천 개요

  • 후보군 설정
    • 사용자-사용자 메모리 기반 협조 필터링
  • Grouping and Ranking
    • Group 분류 – 이름 !!
    • Group 정렬
    • Group 내 정렬
  • 정적인 자료들과 배치
    • 진행 중인 이벤트
    • 스폰서
    • 중복 처리

30 of 92

31 of 92

32 of 92

33 of 92

사용자-사용자 메모리 기반 협조 필터링

34 of 92

추천 구현

  • 후보군 설정
    • 200개 정도 선정
    • Wide and Deep 개념 적용 ( 2017 )
  • 이벤트 로깅
    • 화면에 노출 기록
    • 좌우 스크롤, 클릭 기록
  • 시스템 업데이트
    • 지표들을 계속 관리
    • 실시간과 배치의 조화

35 of 92

36 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
    • 추천
    • 검색
    • 디테일 페이지
    • 기타
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

37 of 92

검색 진입

  • 모바일에서는 화면의 반만 보임

  • 최근 검색어
  • 진행 중인 이벤트

38 of 92

검색 자동 완성

  • 쿼리 추천
    • 라틴어, 한글 자모 입력기 지원
    • 좋은 쿼리들 위주로
    • 빈도 순

  • 구현
    • 일별 배치로 업데이트
    • 최근 키워드에 대한 가중치 적용
    • 스팸 키워드 처리
    • 개인화 여지가 적음

39 of 92

검색 결과 - 쿼리 이용

  • 화면 구성
    • 해당 앱의 상품 카드 표시
    • 광고 영역도 포함

  • 추천 순서(ranking) 구현
    • Navigational query – 1st result
      • 겹치지 않는 query – app 조합
    • Categorical query – top N results

40 of 92

41 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
    • 추천
    • 검색
    • 디테일 페이지
    • 기타
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

42 of 92

디테일 페이지 기본 구성

  • 아이콘, 타이틀
  • 다운로드, 별점, 인증
  • 설치 버튼
  • Video / screen, 소개 문구

    • 사용자 locale 따라 바뀜

  • ... more

43 of 92

디테일 페이지 - 리뷰

  • 평점 분포
    • 5점 만점
    • ( 나라 별로 성향이 다름 )

  • 리뷰
    • 개발사와의 의견 교환 창구로 쓰임
    • 스팸에 노출

44 of 92

디테일 페이지 추천 앱

  • ( 디테일 페이지의 일부여서 사용성을 방해하기 쉬움 )

  • 내용 기반 필터링
    • 장르
    • 개발사

  • 협조 필터링
    • 아이템-아이템 메모리 기반 주로 이용
    • 사용자-사용자 메모리 기반 보완

45 of 92

설치 후 추천 앱

  • 협조 필터링
    • 아이템-아이템 메모리 기반 주로 이용
    • 사용자-사용자 메모리 기반 보완

  • 신규 앱의 설치가 가장 많이 일어나는 곳 !!

46 of 92

47 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
    • 추천
    • 검색
    • 디테일 페이지
    • 기타
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기

48 of 92

카테고리

  • 카테고리
    • 앱 등록 시 개발자의 설정 분류
    • 2-3 개의 중복된 레이어

  • 카테고리 홈(추천)
    • 추천 후보군 수집 시 필터 적용
    • 짧은 페이지들로 구성되고 같은 모듈 적용.

49 of 92

인기 차트

  • 무료 / 유료 / 매출
    • 업체들 PR 소재로 많이 쓰임
    • 클릭이 많이 일어나지 않음

  • (비공개) time window 적용

50 of 92

기타 기능

  • 개인 설정 페이지
    • 결재 정보
    • 리워드 – Play Points , Play Pass

  • 알림 🡪 업데이트
    • 사용자의 유입이 가장 큰 영역

51 of 92

52 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
    • 개발자 콘솔
    • 랭킹
  • Google(Playstore)에서 과제 런칭하기

53 of 92

Google Play Console 기능 - 1

  • 앱 게시 및 관리
    • 앱 정보, 소개 화면, 소개 영상, 설명 관리
    • 국가 별, 장치 별 설정
    • 수익 구조 관리

  • 앱 분석
    • 설치, 사용, 수익 분석
    • 사용자 참여, 유지율, 충전율 등을 분석
    • 안정성 분석 - crash and ANR report

54 of 92

Google Play Console 기능 - 2

  • 사용자 피드백
    • 리뷰 및 평가
    • 베타 테스팅

  • 앱 성장 지원
    • A/B 테스트 운영
    • 프로모션 코드 관리

  • 보안 및 규정 준수

55 of 92

56 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
    • 개발자 콘솔
    • 랭킹
  • Google(Playstore)에서 과제 런칭하기

57 of 92

랭킹에 필요한 것들

  • 로깅
    • 언제 보여지고
    • 언제 클릭을 받는지, install 까지 연결되는지
  • Continuous Evaluation in Search
    • Relevancy score , 클릭 이전의 비교들
    • Query sample per locale
    • 부작용들 조기 발견 가능
    • Top vs Random , Category query vs Navigational query
  • Spam Fighting

58 of 92

스팸

  • Low quality App
    • Install / uninstall 패턴 이용
    • Fake user 정보 추적
    • 개발사 정보의 도움을 받음
    • 새로운 앱의 진입 장벽이 되기도 함

  • 리뷰
    • 별점 분포
    • 리뷰 – 패턴 이용

59 of 92

60 of 92

61 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기
    • Process & Requirements
    • Case Study – Locale-aware scoring
    • Case study – Pre-registration
    • Case study – locale-ready signals

62 of 92

기본적인 공감대

  • Ownership
  • 아무 거나 해도 되지만, 런치는 절차를 따라야 함
  • Data driven 설득과 동의, 승인
  • Community guideline
    • Respect the users
    • Respect the opportunity
    • Respect each other

63 of 92

Process – Life of a Project

  • Investigate / Study
  • Getting Sponsorship
  • Launchcal
  • Reviews with Documents
  • Codes
  • Deploy
  • Support Maintenance

64 of 92

Launchcal

65 of 92

Reviews with Documents

  • Follow how to for each line of a launchcal.
  • Write documents for reviews.
    • PRD ( Product Requirements Document )
    • Design Doc
    • Design Doc Proposal
    • Experiment Report
    • One pager …
  • Engineering review vs Experiment review
  • Security / deployment review

66 of 92

Experiments

  • User study
  • Offline experiments
  • Online A/B tests
  • Deployment using rollouts
  • Ablation experiments

🡪 Metric 을 이해하고 부작용들을 체크

67 of 92

68 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기
    • Process & Requirements
    • Case Study – Locale-aware scoring
    • Case study – Pre-registration
    • Case study – locale-ready signals

69 of 92

문제 인식

  • 증상
    • WhatsApp 이 한국에서 과다 노출됨
    • EasyTaxy 가 미국에서 Uber 보다 상위에 노출됨

  • 원인
    • Global popularity
    • Availability

70 of 92

과제 시작

  • 과제 이름 정하기 – country-slicing , language-slicing , locale-aware
  • Launchcal 만들기
    • No UI change.
    • PR needed with schedule.
  • Sponsorship
    • Regional product teams
    • Core ranking team
    • Experiment team

71 of 92

기술적 구현

  • 아이디어
    • Popularity 관련 score 들을 모든 locale 로 나누어 적용
    • Click / Install / Good Install
    • Ranking 공식 재설정

  • 부작용 발생
    • 대상 사용자들은 40+ 언어, 100+ 나라로 되어 있어 불필요한 저장과 계산 발생
    • Retrieval cost , latency 증가

🡪 Infra team 에서 반대 의견 ( 저장 OK , 계산 NO )

72 of 92

기술적 구현 수정

  • 아이디어
    • Popularity 관련 score 들을 모든 locale 로 나누어 적용
    • Click / Install / Good Install
    • Top 5-10 나라만 사용해서 결과를 비교해서 성능을 올림.
    • Ranking 공식 재설정

  • 부작용 개선
    • 약간의 비용 추가( ~ +2% )로 구현함

73 of 92

과제 런치

  • Launchcal bits clear
  • Rollout
    • Index release first
    • Binaries dark launch
    • Ranking turn-on using rollout
    • Live experiments
    • Monitor
  • PR & Communication

74 of 92

개선과 한계

  • 실험으로 개선된 점
    • 검색 시 categorical query에 결과가 다소 향상
    • 검색 시 navigational query에 부정적 영향 없음
    • 추천 시 후보군에서 해당 앱들이 많이 사라짐

  • 한계
    • 실제 클릭이 향상되진 않음
    • Global 로 유명해 진 앱이 새로운 나라를 뒤늦게 런치할 경우 한계가 생김

75 of 92

76 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기
    • Process & Requirements
    • Case Study – Locale-aware scoring
    • Case study – Pre-registration
    • Case study – locale-ready signals

77 of 92

문제 인식

  • 사용자 요구
    • 사전 등록 캠페인 시에 같이 쓰일 앱 디테일 페이지 필요
    • Install 버튼을 등록 페이지로 놓고 나머지 기능은 똑같게 디자인

  • 원인
    • 없던 기능. 새로 만들어야 함.

78 of 92

과제 시작

  • Sponsorship
    • Regional product teams
      • Lesson from Pokemon Go
    • Core ranking team – fast-track.
    • Experiment team for a fast-track.
  • 과제 이름 정하기 – pre-registration
  • Launchcal 만들기
    • Simple UI change.
    • PR needed with schedule.

79 of 92

기술적 구현

  • 아이디어
    • 사전 등록 모듈, 클릭 시그널 추가�
  • 노력들
    • 앱의 출시 상태 추가
    • 디테일 페이지 변경은 개발사들이 하는 것으로

80 of 92

과제 런치

  • Launchcal bits clear
  • Quick check and rollout
    • Ranking turn-on using rollout
    • Monitor
  • PR & Communication

81 of 92

과제 런치

  • Launchcal bits clear
  • Quick check and rollout
    • Ranking turn-on using rollout
    • Monitor

  • 문제 발생

  • PR & Communication

82 of 92

다시 문제 인식

  • 증상
    • 사전 등록 캠페인 중인 앱들이 노출이 적어짐.

  • 추가 난이도
    • 중요한 개발사들, 급박한 일정

  • 원인
    • Install 이 일어나지 않아 계속 penalty 맞음.

83 of 92

추가적인 기술적 구현

  • 아이디어
    • 사전 등록을 가상의 install 로 반영하는 추가적인 시그널 구현

  • 노력들
    • 검색과 추천에서 받는 penalty 제거 확인
    • 런치 이후 변환 시 중복 제거 로직 구현
    • Spam fighting 업데이트

84 of 92

다시 과제 런치

  • Launchcal bits re-clear
  • Quick check and rollout
    • Ranking turn-on using rollout
    • Monitor
  • PR & Communication
  • 사후 보고서
    • Postmortem
    • Maintenance plan

85 of 92

개선과 한계

  • 개선된 점
    • 사전 등록 진행 중인 앱들이 계속 나타남
    • 검색 시 navigational query에 정상 동작함.
    • 검색 시 categorical query에 정상 동작함.

  • 한계
    • 사전 등록 이벤트 중인 앱들이 수가 많지 않음.
    • Good click 이 주는 간접적인 영향까지는 반영되지 않음.
    • 인기 차트에 반영되지 않도록 하는 노력도 필요함.

86 of 92

87 of 92

목차

  • 강의 소개
  • Playstore 소개
  • Playstore 기능 별 분석
  • Playstore 보이지 않는 노력들
  • Google(Playstore)에서 과제 런칭하기
    • Process & Requirements
    • Case Study – Locale-aware scoring
    • Case study – Pre-registration
    • Case study – locale-ready signals

88 of 92

문제 인식

  • 증상
    • 기계 번역된 설명이 있는 앱들이 상위 노출
    • 앱이 해당 언어로 준비되지 않은 상태로 사용자 불만 다수 접수됨

  • 원인
    • 개발사가 Play console 에서 auto-translate 를 켠 채로 기계적 출시
    • Default language description vs auto-translated description

89 of 92

과제 시작

  • 과제 이름 정하기 - locale readiness , locale ready
  • Launchcal 만들기
    • No UI changes needed
    • No PR needed
  • Sponsorship
    • Regional product teams
    • Play Console team
    • Core ranking team
    • Experiment team

90 of 92

기술적 구현

  • 아이디어
    • ’locale readiness’ 라는 signal 을 만들어서 관리함.
    • 수동 description 을 auto-translated description 보다 높게 반영
    • 별도의 screenshot 이 있는 경우 강한 시그널

  • 노력들
    • Auto-translated description 의 품질을 판단 - Sample & evaluation
    • 가중치 비교, 관리

91 of 92

과제 런치

  • Launchcal bits clear
  • Quick check and rollout
    • Ranking turn-on using rollout
    • Monitor
  • PR & Communication
  • Maintenance

92 of 92

개선과 한계

  • 개선된 점
    • Locale ready 앱들이 상위에 옴.
    • 검색 시 navigational query에 부정적 영향 없음.

  • 한계
    • 우연하게 유명해진 앱들이 뒤늦게 viral 됨.
    • 구글 번역 품질에 영향 받음.
    • Readiness 가 매 버전마다 refresh 됨.