학습주제
학습내용
벌써 8주차가 되어 간다.
멘토님이 멘토링을 해본결과 5가지 이유가 있음.
배움이 어느 시점부터 어려워짐.
힘들고 그러면 채팅, DM주어라.
제품을 분석함.
데이터를 통해서 이루어짐
구글에선 이를 디지털 분석이라고 함.
프로덕트 애널리틱스
디지털 애널리틱스 플랫폼
제품/서비스를 사용자들이 어떻게 쓰는지 굉장히 디테일한 레벨에서
사용자 행동 데이터 수집
위가 넓고 밑으로 갈수록 좁아짐
이렇게 6개의 강의가 추천됐다. 나에게 노출됐는데 (임프레션) 그중에 하나를 클릭. 혹은 2개 클릭
추천 퍼널관점에서
6개 추천에서, 1~2개 클릭, 그중에 1개 구매, 구매한 걸 몇분이나 소비.
산 강의 오픈율이 25%도 안됨. 끝까지 볼 동기, 재미 있어야 하는데 보통 다 보지 않음.
최종적으로 원하는 행동이 있을경우, 시작 -> 최종 단계까지를 기록하고, 각 단계로 넘어갈 때 이탈률을 계산
어느 단계를 계산할지 알아보는게 퍼널분석
상품 구매도 여러단계, 각 단계별로 몇퍼센트 사람이 남는지.
분석 - > 최적화 -> 방법 도출
유데미의 경우 추천되는 강의 하나하나가 임프레션
클릭이 되는것과 안되는것을 각각 집계하면 사용자의 선호도를 알 수 있음.
(모바일 프로그래밍 관련 강의만 클릭, 디자인 강의는 절대 클릭 안함)
이 자체로 AB테스트를 가능하게 함
코호트 분석이 가능함
사용자들이 얼마나 재방문, 재구매를 하는지 쉽게 분석
시각화, 리포트
다른 툴과 통합. 더 많은 데이터가 흘러들어와서
분석을 더 용의하게 해서
CPC
우리 제품을 클릭하는데 평균적으로 얼마의 돈이 들어가느냐
구매하는데 얼마 비용이 들어가냐
두가지 단점
이것을 통해서 돈을 벌었는지는 모르고 얼마나 썼는지만 알음
CPC가 더 안 좋은지표
보통은 이걸 씀
마케팅 캠페인에 들어간 돈 = 분모
매출액 = 분자
마케팅 팀은 퍼포먼스를 분석함.
나중에 데이터팀 일 시작하고 마케팅 팀에서 많이 들음
보통 버튼 클릭, 키보드 타이핑
패시브하게 시스템에서 추천하는 것을 보는 행위(임프레션)
광의의 사용자 이켄트 - 노출 정보
데이터 관점에서는 어컬 컬럼을 갖냐
크게 두종류
user
ID, 어디에 있는지, 기기 종류
event
어떤 이벤트고, 언제 발생
어느 세션, 그전 페이지는 뭐
이후 앰플리튜드로 예를 들어볼 예정
데이터 레이크라 부르는 스토리지에 저장해놓고, 그걸 가공해서 데이터 양을 줄이고 의미있게 만든 다음에 데이터 웨어하우스에 적재가 일반적.
스파크, 하둡, 하이브, 프레스토를 많이 사용
구글 애널리틱스를 많이 씀
다 비슷함
결국 차이점은 얼마나 더 많은 기능이 있냐. 비싸냐.
한때는 믹스패널이 많이 쓰였으나 앰플리튜드가 치고들어옴. 1달에 1천만개 이벤트까지는 공짜임. 이후부터 과금. 어느정도 규모되는 서비스가 아니고서야 천만개 안씀. 이후 서비스가 커지면 이미 앰플리튜드에 빠지게 됨. (이미 이걸 처리할 프로레스 구성. 스위칭 코스트가 커짐)
믹스패널이 뒤늦게 비슷한 전략 따라했지만 늦은 감이 있음.
오늘은 구글 애널리틱스, 앰플리튜드
유데미는 어떻게 발전했는가?
입사 초기엔 그렇게 발달되어 있지 않았음. 구글 애널리틱스, 믹스패널 정도. 유료는 못씀.
자체적으로 오픈소스 써서 만듦
이벤트 정보를 mysql에 테이블로 다 저장해버림 (나쁜 디자인)
경험이 없는 젊은 친구들이 엔지니어로 일할때 처리해버림. 사용자 수가 늘어나며 데이터가 차지하는 공간이 기하급수적으로 늘어남.
맥스님 조인 후
mysql 사용자 이벤트 이벤트 정보를 로그파일로 띄어내 s3에 저장.
로깅만 전담하는 팀 구성. 로깅 API -> 카프카에 저장 -> s3
나중에 카프카 배울 시간 있음
나쁜 데이터 쏴도 다 들어감.
사용자가 클릭할 때마다 생성이라 데이터 감당이 안됨.
서버 400GB 여서 더 설치할 수 없었음
엔진 엑스에 달고, 로그 스토리지에 저장 최종적으로 s3에 저장. 데이터 파이프라인 구성
수집 전담 팀 구성
카프카에 저장(토픽들)
컨슈머들이 있어 s3에 쏘게 하고, 다르게 사용하는 컨슈머도 있었음
카프카, 스파크는 강의 막바지에
서비스가 발전하면, 웹앱, 모바일 앱을 통틀어서 이벤트를 잘 정의할 수 있느냐가 중요함.
새로운 이벤트가 생겼을 때 쉽게 붙일 수 있느냐
이벤트 QA. 잘못된 코드 push 했을 때 얼마나 빨리 알아내느냐.
테스트에 미리 깨지는 걸 막을 수 있느냐
스트리밍 시스템 형태로 가는게 디자인 측면에서 제일 좋았음.
전담 팀이 필요하다는 것을 느낌.
이벤트만 정의하고 수집하는거 전담하는 팀 별도로 있음.(쿠팡에 데이터엔지니어링팀)
엔지니어 없으면 바로 시작 가능
무료버전 있어서 매력적임
하이레벨에서 적당히 보기 좋음
서비스르 쓰는 사용자 수 알 수 있음 (dau, wau, mau)
어떤 터치포인트를 보고 우리 사이트를 오는지 (직접방문, 구글 검색 광고, 구글 검색 organic) 소스별 트래픽 분석 가능. 캠페인 분석도 자동으로 해줌.
어떤 채널 어떤캠패인을 보고 오는지.
개인 레벨로는 안되지만 집계 레벨 수준에서 볼 수 있음
데이터팀이 발전, 마케팀팀 발전하면
데이터웨어하우스에 온갖 데이터 쏟아넣고 분석함
비용도 어디서 읽어올 수 있음
사용자별로 어떻게 발견 내부에서 어떤일을 했는지
지표 중에 roas 분석을 할 수 있게됨.
데이터 엔지니어들이 성장하는 스타트업. 마케팅 많이 하는 회사라면 이런 데이터 파이프라인 만드는 일을 하게됨.
서비스들이 다 api가 있음
다 가져오게 한다음. 조인해서 분석하면 roas 정보
구글 애드, 페이스북이랑 연동하는게 어려움 API 버전도 계속 업그레이드. 개발자들이 직접 구현보단 SaaS 연동 (생각보다 비쌈. 회사 형편이 좋아지면 가능)
Airflow보면 잘 찾아보면 잘 만들어놓은거 가져다 쓰면 됨.
ROAS 안보면 마케팅 비용 없이 서비스 세이터베이스, 사용자 접점정보로 분석함.
데이터 엔지니어는 ETL정도
회사가 어느정도 커지면 직접 만듦.
시각화 -> 채널, 캠페인별로 어느게 효율적인지
생각보다 쓰이는 곳이 많음.
많은 회사들이 사용하고 있음. 설치하기게 굉장히 쉽게 되어있음. 특히 웹서비스는 자바스크립트 따다가 임베드만 시켜놓으면 됨.
자세하게 들어가려면 구글에게 사용자 아이디도 알려주고, 비용도 주고 함.
구글이 보는 관점에서 몇개의 디바이스가 우리 사이트를 방문했는지, 어느페이지를 방문했는지 알고싶다면 거의 할일이 없음
굉장히 많은 사람들이 구글 서비스를 쓰고 있음 (구글 시스템에 로그인한 상태)
구글은 사용자가 누군지 알고 있음.
어디 살고, 대략적인 데모그래픽 정보를 알고 있음
이런 정보를 갖고, 우리 사이트를 방문하는 사람이 누구고, 자주 방문하는지, 리텐션 같은거 계산
소스 트래픽 얻어올 수 있기에 마케티 관련 효율성.
구글이 처음부터 만든게 아니고 2005년에 회사 인수하면서 시작됨.
UTM 파라미터를 처음 만든 회사
몇명의 방문자, 몇개의 세션
어디서 방문 (터치포인트, 마케팅 채널)
얼마나 오래:? (세션 듀레이션)
어느 페이지를 방문
어느 페이지에서 사이트를 나가는지. 문제가 많은 페이지에서 그 페이지를 마지막으로 나가버림(페이지 뜨는 속도가 굉장히 느린경우)
구글에 로그인한 경우 정보 제공
로그인한 사람 X
디바이스를 얘기. 내 맥북에서 서비스 방문 -> 애널리틱스는 브라우저에 ID를 부여. 쿠키를 통해서 부여. 쿠키의 카운트.
모바일이면 앱 상의 브라우저, 앱이면 디바이스에 할당된 ID를 가지고 카운트
로그인 한사람들만 보려면 코드 고쳐야함(많이 안씀)
시간기반:30분 이상 아무행동 X, 자정을 넘어가면 세션 종료(사용자가 액티브라도)
캠페인 기반: 다른 곳에서 터치포인트를 발견해서 또 넘어왔다고 하면 세션 열음.
모든 인터넷 서비스, 모바일앱은 위의 정의를 사용
세션이 3개 열림.
마지막에
최초 세션 1개 열림
아직 30분이 안지났지만 자정이 넘어가면, 액티브라도 무조건 세션 닫고 새로 열음.
최초 생성.
30분 안지났지만 페이스북 광고 보고 또 들어옴.
캠페인을 보고 들어온거기에 세션이 새로 열림.
세션 3개 생성
채널, 터치 포인트
채널, 캠페인. 링크가 여러개 중 어느 링크 클릭.
이미지 링크, 비디오링크, 텍스트링크 중 어느게 좋은지 분석 가능.
B 사이트 관리자 관점에선 앞단 페이지는 알 수 있으나, 구체적으로 그 페이지의 어느 광고, 어느켐페인을 보고 왔는지 모름. 어느 사이트에서만 왔는지 아는 정도.
이를 메꾸기 위해 UTM 파라미터 사용.
링크 자체를 캠페인 정보 등등을 다 넣어서 링크를 구성해줌.
사용자 이벤트 분석 플랫폼에서 분석해, 세션마다 정보를 채워줌.
실수로 이 링크를 복붙해 추천했다면 마치 이 채널의 광고를 눌러서 온 것처럼 인식됨.
링크가 굉장히 긴것들을 볼 수 있는데, 죄다 UTM 파라미터임.
리터럴 약점 보완 -> UTM.
보통 무료 씀
큰 회사 아니면 account 하나
다수의 프로퍼티
네이버 밑에 블로그, 쇼핑 각각의 프로퍼티 구성
별개의 독립적인 분석에 쓰임
다 묶어서 보고싶다? 가능하지 않음
별도의 서비스. 같은 서비스라고 해도 구분
한 프로퍼티 안에서 다양한 view 생성. 필터를 적용하는 것. 네이버 블로그 페이지로 오는 트래픽을 나라별, 내부 직원 엑세스 뺴고, 등 다양한 각도에서 볼 수 있게함.
앰플리튜드의 경우, 현업에 쓸 일 있음.
모든 것을 알 필요는 없음.
나중에 다시 들었을 때 도움됨.
구글 애널리틱스
데모 사이트가 있기에 그걸 중심으로 어떤정보 획득하는지 확인
계정을 먼저 생성
타겟 웹사이트에 GA 자바스크립트를 하나 임베드
html 헤더에 추가
웹은 쉬움
모바일은 애널리틱스 라이브러리 임포트
유저 아이디, 판매정보를 넘기고 싶다면 해야될 코딩이 있음
프로퍼티 밑에 뷰
자바 스크립트는? admin 버튼
헤더에 넣으면 정보가 구글로 넘어감
헤더에가 GA서 받은 코드 넣음
쿠키로 저장된 값이 구글 서버로
GA 웹 콘솔로 리포트를 볼 수 있음.
정보 자체를 덤프 받을 수 있음
GA 360
내가 아무런 세팅을 안해도
GA가 어떤건지 데모계정
8만명
지난 4주동안 기록
리텐션이 낮은 서비스 이대로가면 망함.
점선으로 표시된건 8주~4주 사이의 정보. 실선은 지난 4주 정보
Wau로 확인
리포트에 들어가
리포트 종류들이 보임
Acquisition을 많이 봄.
직접방문
cross-network
검색엔진 결과
광고 눌러서 들어온사람
어디선가 링크 눌러서 들어온사람
나라별로 볼 수 있음
디테일하게 시간순으로
프로퍼티 밑에 뷰가 있음
여러가지 형태로 필터링을 다르게
프로퍼티 선택해서 들어가서 뷰 확인
트래픽들이 어떻게 우리를 찾았는지, 재방문하는지 확인
GA다가 매출고 관계된 로깅하면 돈 어떻게 벌었느지
대부분은 직접 타이핑해서 옴
똑같은 정보를 세션기준
전체 유저를 날짜별로 몇명이나 방문했는지
cohort 분석
첫날 100명
그중에 4번째 날 아직도 방문하는 사람 몇명 5% 정도로 떨어진게 보임
Day 32가 되니 0에 수렴
망해가는 서비스의 예
마케팅 비용써서 사람데리고 와바야
잘되는곳은 확 내려가지만
남은 10%가 나중엔 올라감
10% 남아도 엄청 좋음
코호트 분석 후 - 그래프를 그려보면 잘되는 서비스인지 알 수 있음.
80포트에 앱 뜨께 함
자브스크립트를
base.html
이 웹서비스의 헤더
\ 뒤에
앰플리튜드에서 받은 자바스크립트 붙여넣기
GA 사용할 때도 마찬가지.
sudo 써야하는 이유: 포트 80은 어드민 권한이 있는 계정만 쓸 수 있음.
권한을 검증받아야 함.
앞에 등록했던 이메일로 쓰면, 웹, 모바일 선택
어떻게 설치할 것인지.
제일 간단한건 브라우저 SDK
아까 GA처럼 자바 스크림트를 복붙하라고 줌
그대로 붙여넣기
뷰 라이브 데이터를 클릭하면
뭔가 액션을 취했을 때 라이브로 이벤트들이 생기는 것을 볼 수 있음.
정보들을 덤프를 받아서 데이터 웨어하우스로 저장해 내부정보와 JOIN 하고 싶은 요구가 생김
ETL을 작성하다보면 이런 API 키를 받아야하는 경우가 많음
이 서버에, 수집된 데이터들을 읽을 권한이 있다.
우측상단 프로필, Organization settigng
좌측 project
API key, secret key를 show를 누르면 보임
복사.
나중에 API를 부를 수 있음
엔드포인트는 위와 같고, API key, secret key를 넣고
start, end 파라미터에 지정. UTC 기준의 시간을 넣어준다.
년도 월 일 사이에 아무것도 없음. /도 없음
뒤에는 00시
20230529T00
압축된 파일로 저장.
폴더를 열면 시간대마다 JSON 파일이 있음
많은 정보가 있음
캘리포니아, 서버쪽에서 받은 시간
이벤트 정보는 별게 없음. 디폴트. 세션 스타트.(세션이 하나 만들어졌다.)
좀 더 의미가 있으려면 코드에서
amplitude.track(새로운이벤트)
커스텀 프로퍼티를 추가할 수 있음.
이렇게 해야지 비로소 의미있는 정보를 만들 수 있음
기본적인 정보들로는 큰 의미를 만들기 어려움
트랙은 어디서 구하는가? 임프레션이 생길 때마다 트랙 이벤트를 걸고, 클릭하면 이벤트 걸고, purchase 누르면 트랙 이벤트 걸고.
이러면 앰플리튜드에 수집 정보가 쌓임. 그게 퍼널 분석이 됨.