[특강] 사용자 행동 데이터의 수집과 분석

data_hamster·2023년 5월 30일
1
post-custom-banner

학습주제

학습내용

  • 행동분석. 마케팅에서 제일 많이 사용
    구글 애널리틱스
    앰플리튜드


벌써 8주차가 되어 간다.


멘토님이 멘토링을 해본결과 5가지 이유가 있음.

  • 나이. 나이가 많다고 생각되어 주저함. 다 오래살게 되기 때문에 상관 없음.
  • 나에 대한 고정관념. 나는 이런걸 못해.
    - 몰두하는 경험, 성취하는 경험이 있어야 함.
    • 공부할꺼 투성이임. 이 공부만 하는게 아니라 다른 공부도 병행해야되는 경우가 많음. 공부에 한도 끝도 없음. 약간 힘을 빼고 사는 것이 좋음.
    • 너무 많은 것을 한꺼번에 공부하려고 하지 말고, 내가 지금 하는 것의 100% 올인해도 충분함.
    • 주니어가 모든것을 알 필요는 없음. 다 따라갈 생각을 하고 스트레스 받지 말고 매일매일 주어진 일을 잘 하기.
    • 자신감은 내가 현재에 집중하지 않으면 얻을 수 없음
  • 과거의 상처. 이번에도 잘 안되지 않을까? 매번 새로 시작하는거니까 상처가 있다면 인지를 하고 치유하려고 노력. 내가 어느순간 자신감이 떨어지고 감정적이다. -> 상처가 있다.
  • 어디엔가 파랑새가 있지 않나?
    - 누군가 나에게 모든 지식을 전수해주지 않을까? 없음. 하루하루 꾸준하게 발전하는지 잘 모르겠어도 그냥 하기. 그러다보면 몰두를 할 수 있는 순간에 도달. 나에 대한 스스로의 고정관념이 있어도 극복할 수 있음.
    - 지금 공부하는게 내게 도움이 될까? 지난 며칠동안 굉장히 많은 DM이 왔었음. 다들 힘들고 고민함. 덜 열심히 하고 덜 걱정하면서 살아도 됨. 한귀로 듣고 한귀로 흘려도 됨. 나중에 들어봤냐가 굉장한 차이를 주고. 반복해서 듣게되는 경우도 많음. 다른 일이 생기다보면 강의 내용을 못 쫓아가는 경우도 많음. 숙제도 못할 수 있음. 그래도 괜찮음. 늦게라도 질문하고 숙제하면 됨. 한번 밀렸다고 포기하지 말기.


배움이 어느 시점부터 어려워짐.

  • 버티는 힘이 중요. 즐기려고 해야함.
  • 내가 뭘 모르는지 자문자답. 동료들에게 많이 물어보기.
  • 티핑 포인트 도달하고 확 올라감. 몰두하는 경험. 성취하는 경험.
  1. 잘 하는 사람 보고 기죽지 않기
  • 어떤 사람은 타고난거 같고, 나는 재능이 없는거 같다.
  • 잘하는 사람들은 앞단에서 그런 일들을 경험해봤을 경우가 많음.
  1. 공부를 못하고 쫒아오지 못할 수도 있지만 늦었다고 포기하지 말기. 다시한번 현재에 집중하기.

힘들고 그러면 채팅, DM주어라.



제품을 분석함.
데이터를 통해서 이루어짐
구글에선 이를 디지털 분석이라고 함.
프로덕트 애널리틱스
디지털 애널리틱스 플랫폼

제품/서비스를 사용자들이 어떻게 쓰는지 굉장히 디테일한 레벨에서

  • 어느나라, 어떤 사람이,
  • 사용자가 액티브하게 한 행동 외에 패시브하게, 서비스에서 추천을 했다 -> 추천된 아이템이 무엇인 지 기록 (임프레션)
  • 왜 사용자에게 노출된 정보를 기록하고 수집할까?
    - 강의나, 영화들이 사용자에게 추천되고 노출됨. 사용자는 무엇에 반응하는가? 사용자의 선호도를 알 수 있음.
    • 사용자가 뭐를 클릭하지 않았는지도 알아야 함.
    • 어떻게 우리 서비스를 발견했는지, 터치포인트.

제품 분석 플랫폼의 주요 특징, 기능


사용자 행동 데이터 수집

  • ETL로 가져올 수 있으면, 다양한 ELT.
  • 앰플리튜드, 믹스패널
  • 구글 애널리틱스도 가능한데 되게 비씀. 구글 덤프
  • 사용자 정보르 보고 페르소나를 만듦. 유데미의 경우 공짜 좋아하는 사람들 등 6가지 정도의 페르소나. 돈내고 유료강의 절대 안듣는 사람들 행동에 따라 분류함 - 사용자 세분화
    퍼널 분석
  • 뒤에서 언급
    코호트 분석
  • 뒤에서 추가 언급.

퍼널 분석(깔대기)

위가 넓고 밑으로 갈수록 좁아짐

이렇게 6개의 강의가 추천됐다. 나에게 노출됐는데 (임프레션) 그중에 하나를 클릭. 혹은 2개 클릭

추천 퍼널관점에서
6개 추천에서, 1~2개 클릭, 그중에 1개 구매, 구매한 걸 몇분이나 소비.
산 강의 오픈율이 25%도 안됨. 끝까지 볼 동기, 재미 있어야 하는데 보통 다 보지 않음.
최종적으로 원하는 행동이 있을경우, 시작 -> 최종 단계까지를 기록하고, 각 단계로 넘어갈 때 이탈률을 계산
어느 단계를 계산할지 알아보는게 퍼널분석
상품 구매도 여러단계, 각 단계별로 몇퍼센트 사람이 남는지.
분석 - > 최적화 -> 방법 도출
유데미의 경우 추천되는 강의 하나하나가 임프레션
클릭이 되는것과 안되는것을 각각 집계하면 사용자의 선호도를 알 수 있음.
(모바일 프로그래밍 관련 강의만 클릭, 디자인 강의는 절대 클릭 안함)


이 자체로 AB테스트를 가능하게 함
코호트 분석이 가능함
사용자들이 얼마나 재방문, 재구매를 하는지 쉽게 분석
시각화, 리포트
다른 툴과 통합. 더 많은 데이터가 흘러들어와서
분석을 더 용의하게 해서


CPC
우리 제품을 클릭하는데 평균적으로 얼마의 돈이 들어가느냐


구매하는데 얼마 비용이 들어가냐

두가지 단점
이것을 통해서 돈을 벌었는지는 모르고 얼마나 썼는지만 알음
CPC가 더 안 좋은지표


보통은 이걸 씀
마케팅 캠페인에 들어간 돈 = 분모
매출액 = 분자
마케팅 팀은 퍼포먼스를 분석함.

나중에 데이터팀 일 시작하고 마케팅 팀에서 많이 들음



보통 버튼 클릭, 키보드 타이핑
패시브하게 시스템에서 추천하는 것을 보는 행위(임프레션)


광의의 사용자 이켄트 - 노출 정보


데이터 관점에서는 어컬 컬럼을 갖냐
크게 두종류
user
ID, 어디에 있는지, 기기 종류
event
어떤 이벤트고, 언제 발생
어느 세션, 그전 페이지는 뭐

이후 앰플리튜드로 예를 들어볼 예정

데이터 레이크라 부르는 스토리지에 저장해놓고, 그걸 가공해서 데이터 양을 줄이고 의미있게 만든 다음에 데이터 웨어하우스에 적재가 일반적.
스파크, 하둡, 하이브, 프레스토를 많이 사용



구글 애널리틱스를 많이 씀

  • 무료버전, 유료버전 차이는, 유료버전은 사용자 행동정보는 개별적으로 덤프를 받을 수 있음. 무료는 집계 정보밖에 못봄. 그러나 유료 1년에 1억~2억. 데이터 양이 불필요하게 많은 경향이 있음.
    간단하게 데모해볼 예정. 데이터 분석가들 마케팅하는 사람들이 봄.
    앰플리튜드
    믹스패널

다 비슷함
결국 차이점은 얼마나 더 많은 기능이 있냐. 비싸냐.
한때는 믹스패널이 많이 쓰였으나 앰플리튜드가 치고들어옴. 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 누르면 트랙 이벤트 걸고.
이러면 앰플리튜드에 수집 정보가 쌓임. 그게 퍼널 분석이 됨.

profile
반갑습니다 햄스터 좋아합니다
post-custom-banner

0개의 댓글