배경
현업 문제 해결 쿼리 작성(1)에서의 분석을 바탕으로 전환율이 떨어지는 부분을 개선하고자 한다.
근래 타 페이지에서 유저에게 스킬셋을 적극 노출해을 때 유저 반응이 좋았다라는 분석이 있었다고 하자.
따라서 PO가 해당 인사이트를 바탕으로 공고리스트 페이지에서 스킬셋을 좀 더 적극적으로 노출하고 하는데,
분석가 입장에서 🎖️공고리스트 페이지에서 동일한 인사이트를 적용해도 좋을지에 대해 판단해보자.
분석 단계
로그 데이터를 바탕으로 적절한 가설을 세워 검토를 진행한다.
1. 현재 공고리스트 페이지에서 스킬을 활용할 수 있는 기능은 무엇인가요?
👉 필터에서 스킬을 고를 수 있음
2. 유저 코호트를 정의해주세요.
👉 팀에서는 ‘스킬셋 활용’이 공고리스트 페이지에 어떠한 영향을 주는지 확인하고자 한다.
따라서, 필터를 사용한 유저와 그 외 나머지(필터를 사용하지 않은 유저)를 코호트로 정의할 수 있다.
3. 확인하고자하는 지표를 정의해주세요.
👉 팀의 목적은 지원 수를 늘리는 것이다. 공고리스트 페이지에서 공고페이지로 전환이 잘 된다면 좋을 것 같다.
따라서, 지표는 ‘공고리스트 페이지에서 공고페이지로의 전환율(공고페이지 세션 수/공고리스트페이지 세션 수)
4. 가설은 무엇인가요?
👉 공고리스트 페이지에서 필터를 사용한 유저가 필터를 사용하지 않은 유저 대비 공고페이지로의 전환율(공고페이지 세션 수/공고리스트페이지 세션 수)이 높을 것이다.
5. 결론을 공유해주세요. (다음 문제들을 해결 후, 마지막에 제시)
문제1. 필터를 사용한 유저와 사용하지 않은 유저 구분
▶︎ event_name=‘jdlist_view’이면서 event_property.use_skill_filter=’used’인 session_id를 구하시오.
- event_property는 값이 json 형식인 컬럼 : 이번 문제에서는 string을 추출해야하므로, json_extract_scalar를 활용
- json_extract_scalar(컬럼명, ‘$.추출하고싶은값’)
WITH
jdlist_usefilter AS (
SELECT
session_id,
JSON_EXTRACT_SCALAR(event_property,'$.use_skill_filter') AS use_skill_filter
FROM
wanted_sample_data.log_data
WHERE
event_name='jdlist_view' )
SELECT
*
FROM
jdlist_usefilter
문제2. 필터 사용자와 미사용자의 전환율 비교
▶︎ use_skill_filter로 GROUP BY 하여 필터를 사용한 유저와 사용하지않은 유저의 전환율을 비교
WITH
jdlist_usefilter AS (
SELECT
session_id,
JSON_EXTRACT_SCALAR(event_property,'$.use_skill_filter') AS use_skill_filter
FROM
wanted_sample_data.log_data
WHERE
event_name='jdlist_view' ),
jdview as (
select session_id
from wanted_sample_data.log_data
where event_name='jd_view'
)
SELECT use_skill_filter,
count(jdlist_usefilter.session_id) as jdlist_session_cnt,
countif(jdview.session_id is not null) as jdview_session_cnt,
round(countif(jdview.session_id is not null)/count(jdlist_usefilter.session_id),3) as jdview_rate
FROM
jdlist_usefilter
LEFT JOIN jdview on jdlist_usefilter.session_id = jdview.session_id
GROUP BY 1
결론 공유
👉 스킬필터를 사용한 유저의 공고의 전환율은 약 80%, 사용하지않은 유저의 전환율은 약 30%
따라서, 스킬필터를 사용했을 때 공고 전환율이 더 높다는 것을 알 수 있음
👉 스킬 필터를 사용하지않은 유저가 스킬 필터를 사용한 유저보다 약 4배 더 많으므로, 유저에게 스킬필터 사용을 독려 혹은 스킬을 적극적으로 노출할 때 전체 공고리스트 페이지의 전환율이 오를 것으로 기대할 수 있음
(유의) 단, 공고페이지에서 확인할 수 있는 지역, 연차 필터 사용여부의 데이터가 확인되지 않음.
해당 데이터가 있다면 ‘필터’를 사용해서 유저의 전환율이 높은건지, ‘스킬필터’를 사용하여 유저의 전환율이 높은건지 더 명확하게 가설을 확인할 수 있을 것으로 기대함.
참고
▶︎ (문제 1의 조건을 만족하면서 event_name=‘jd_view’인 session_id) / (문제 1 조건을 만족하는 session_id)를 구하시오.
- event_property는 값이 json 형식인 컬럼 : 이번 문제에서는 s
with
jdlist_usefilter as (
select session_id
from wanted_sample_data.log_data
where event_name = 'jdlist_view'
and json_extract_scalar(event_property, '$.use_skill_filter') = 'used'
),
jdview as(
select session_id
from wanted_sample_data.log_data
where event_name = 'jdlist_view'
)
select count(jdlist_usefilter.session_id) as jdlist_session_cnt,
countif(jdview.session_id is not null) as jdview_session_cnt,
round(countif(jdview.session_id is not null)/count(jdlist_usefilter.session_id),3) as jdview_rate
from jdlist_usefilter
left join jdview on jdlist_usefilter.session_id = jdview.session_id
where jdview.session_id is not null
'SQL > SQL test' 카테고리의 다른 글
[BigQuery] 현업 문제 해결 쿼리 작성(4) : 성과 확인(A/B test) (1) | 2024.01.14 |
---|---|
[BigQuery] 현업 문제 해결 쿼리 작성(3) : 인사이트 적용 (0) | 2024.01.09 |
[BigQuery] 현업 문제 해결 쿼리 작성(1) : Funnel 분석 (1) | 2024.01.08 |
[HackerRank] Top Earners 풀이 (mySQL) (1) | 2023.12.23 |
[HackerRank] The Blunder 풀이 (1) | 2023.12.23 |