안녕하세요! 3-13 리텐션 과제 제출합니다. 2, 3번 과제의 경우 클로드의 도움을 조금 받았으며, 최대한 스스로 생각하고 검토만 받는 방향으로 진행하였습니다. 부족한 부분이나 더 생각해볼 수 있는 부분들 피드백 주시면 감사하겠습니다! 과제 링크 https://inquisitive-toy-5d0.notion.site/3c6bc12dee6d80dc9b2ed0e7d1c9a33c?source=copy_link
안녕하세요 카일님, 잘 듣고 있습니다. 강의 말미에서 app logs 데이터로 쿼리 연습 해보라고 말씀주셔서 아래와 같이 몇 가지 연습해 보았습니다. 더 정확한, 효율적인 쿼리가 있는지, 틀린 부분이 있다면 피드백 부탁드립니다. 1. Screen 탐색량이 가장 많은 유저 찾기 질문: 어떤 유저가 앱 내 screen을 가장 많이 탐색했는가? 목적: 유저별 screen 조회 횟수를 집계하여 heavy user 탐색. SELECT user_id, -- IF(event_params.key="firebase_screen", event_params.value.string_value, null) as screen, COUNT(*) as cnt_screen FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params WHERE event_params.key='firebase_screen' GROUP BY ALL HAVING user_id is not null ORDER BY cnt_screen DESC 2. 날짜별 Screen 조회량 및 Screen 구성 질문: 날짜별 전체 screen 조회량은 어떻게 변화하며, 각 screen은 얼마나 조회되었는가? 목적: Screen View의 시계열 변화와 screen별 조회량을 동시에 분석. double check 컬럼을 통해 정의한 screen들의 합계도 검증. WITH unnest_table as ( SELECT *, IF(event_params.key="firebase_screen", event_params.value.string_value, null) as screen FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params GROUP BY ALL HAVING screen is not null) SELECT event_date, count(screen) as total_screen_view, COUNTIF(screen IN ('cart','welcome', 'food_category', 'home', 'search_result', 'food_detail', 'search','restaurant')) as double_check, --검증용 컬럼 COUNTIF(screen='cart') as cart, COUNTIF(screen='welcome') as welcome, COUNTIF(screen='food_category') as food_category, COUNTIF(screen='home') as home, COUNTIF(screen='search_result') as serach_result, COUNTIF(screen='food_detail') as food_detail, COUNTIF(screen='search') as serach, COUNTIF(screen='restaurant') as restaurant FROM unnest_table GROUP BY ALL 3. Heavy User의 실제 Screen Journey 추적 질문: 특정 heavy user는 실제로 어떤 순서로 screen을 탐색하는가? 목적: Timestamp를 기준으로 사용자의 screen 이동 순서를 확인하고, firebaase screen 퍼널 순서 정의를 위한 탐색 수행. SELECT TIMESTAMP_MICROS(event_timestamp) as timestamp, if(event_params.key="firebase_screen", event_params.value.string_value, null) as screen FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params WHERE user_Id=57410 and event_date between '2022-08-01' and '2023-12-30' GROUP BY ALL HAVING screen is not null ORDER BY timestamp limit 100 4. Cart 도달 유저 vs Non-Cart 유저의 Screen 탐색량 비교 질문: Cart를 한 번이라도 조회한 유저는 그렇지 않은 유저보다 평균적으로 더 많은 screen을 탐색하는가? 목적: 사용자를 has_cart 여부로 segmentation하고 두 그룹의 평균 screen 탐색량 비교. WITH basic AS ( SELECT user_id, COUNT(*) AS screen_cnt_per_user, COUNTIF(event_params.value.string_value='cart') >0 AS has_cart FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params WHERE event_params.key='firebase_screen' GROUP BY user_id) SELECT AVG(IF(has_cart, screen_cnt_per_user,NULL )) as avg_view_cart, AVG(IF( not has_cart, basic.screen_cnt_per_user, null)) as avg_view_non_cart FROM basic unnest 와 집계함수를 연속적으로 쓰려고 할 때나 unnest+집계함수+having 쓰려고 할 때는 반드시 with문으로 분리해서 사용해야 오류가 안 나는 것 같더라고요. 그러다 보니 쿼리가 길어지는데 더 가독성 좋은 쿼리 작성법이 있을 것 같습니다. ㅎㅎ
안녕하세요 카일님, 강의 잘 듣고 있습니다. 연습문제 쿼리 작성해 보았는데 잘못된 부분이 있는지, 더 나은 쿼리 방식이 있다면 피드백 부탁드립니다 감사합니다. WITH basic AS (SELECT event_date, event_name, user_pseudo_id, event_params, if(event_params.key="firebase_screen", event_params.value.string_value, null) as screen FROM advanced.app_logs CROSS JOIN UNNEST(event_params) as event_params WHERE event_date between '2022-08-01' and '2022-08-18' ), basic2 as ( SELECT event_date, concat(event_name, '-', screen) as event_name_with_screen, COUNT(user_pseudo_id) as cnt FROM basic WHERE event_name in ('screen_view', 'click_payment') GROUP BY ALL HAVING event_name_with_screen is not null ORDER BY event_date) SELECT event_date, MAX(if(event_name_with_screen='screen_view-welcome', cnt, null)) as screen_view_welcome, MAX(if(event_name_with_screen='screen_view-restaurant', cnt, null)) as screen_view_restaurant, MAX(if(event_name_with_screen='screen_view-food_category', cnt, null)) as screen_view_food_category, MAX(if(event_name_with_screen='screen_view-food_detail', cnt, null)) as screen_view_food_detail, MAX(if(event_name_with_screen='screen_view-cart', cnt, null)) as screen_view_cart, MAX(if(event_name_with_screen='click_payment-cart', cnt, null)) as click_payment_cart, MAX(if(event_name_with_screen='screen_view-search', cnt, null)) as screen_view_search, MAX(if(event_name_with_screen='screen_view-search_result', cnt, null)) as screen_view_search_result FROM basic2 GROUP BY all ORDER BY event_date
안녕하세요 선생님! 이번에 앱 마케팅을 담당하게 되어서 강의 수강중에 있습니다 그런데 강의 내용 대부분은 쇼핑몰 관련해서 말씀을 주시고 있는데 앱 같은 경우에는 어떻게 적용해볼 수 있을지 여쭤보고 싶습니다ㅜㅜ 태그매니저에 사이트를 연결하거나 할 때에도 앱은 사이트가 있는게 아니다보니 어떤걸 넣어야 할지도 모르겠고, GA4 계정을 생성할 때에도 사이트 주소란에 입력을 어떻게 해야하는지부터 등등 조금 막막합니다.. 제가 신입인데 위에 선임이 없어 혼자 알아내야 해서 여쭤볼게 선생님 밖에 없네요...
실습과 모두 동일하게 실행했고, 그 사이트에서 검색했을 때 제품 수가 몇인지 뜨게하는 매개변수를 셋팅하는 과정에서 태그 미리보기를 시행한 다음, 구글 애널리틱스 보고서를 확인했는데 이벤트 매개변수 값이 선생님처럼 "제품 수"로 뜨는 것이 아니라 copy selecter로 입력한 값으로 뜨고 있습니다... 제 화면 : 선생님 화면: 처음부터 점검해보았는데 선생님과 모두 동일하게 입력했는데 저는 태그에서 이벤트 매개변수의 값을 옆에 레고+ 버튼을 눌러서 새로 셋팅한 변수를 클릭해도 변수 이름으로 안뜨고 저렇게 값이 장황하게 뜨는게 이게 문제일까요? 참고로 값 부분은 직접 복붙한 것이 아니라 강의에서와 동일하게 옆에 +버튼 눌러서 저장된 변수 클릭했는데 저렇게 뜹니다.. 확인 부탁드리겠습니다!ㅜㅜ 제 태그 구성 페이지 : 선생님의 태그 구성 페이지 :
안녕하세요. 강의 중, 구글머천다이즈 스토어 내, F12키를 누르신 다음 옴니버그로 설정을 변경하시는 것을 확인했는데 현재 제 컴퓨터에서는 >> 표시를 눌렀을 때 옴니버그도 없고, 강의하신 것보다는 적은 선택지가 나오고 있습니다.. 옴니버그로 어떻게 해야 볼 수 있는지 여쭤봅니다 강의 : 제 실습 화면:
전환기여 분석 모델 리포트에서 현재 저는 "마지막 클릭"만 선택이 가능한데, 강사님처럼 "첫 클릭"이나 "위치기반", "시간가치 하락" 등이 나오기 위해서는 어떻게 셋팅해야 할지 여쭤봅니다! 저와 유사한 질문을 하신 G&A 글을 읽었는데 처음 연동을 어떻게 해야 하는지 감이 잘 안잡혀서 좀 더 자세히 말씀해주실 수 있으실까요? -> https://www.inflearn.com/community/questions/1603764
퍼널 분석을 통한 Foodie Express의 비즈니스 인사이트를 도출하는 레포트를 작성하였습니다. 아래의 노션 링크 첨부하여 드립니다. 감사합니다. https://app.notion.com/p/6-1-3a96c0de4db680fda4d5f30c3ecc0b43?source=copy_link
구글애널리틱스에서 계정 부분에 DEMO 계정으로 들어가기 위해 구글 애널리틱스 고객센터로 들어간 후, 웹 데이터 링크로 들어가면 데모 계정으로 들어가진다고 하셨는데 저는 해당 링크로 들어가도 아래 이미지처럼 계정이 그냥 빈칸으로 뜨고 있어서요.. 어떻게 해야 수업처럼 Demo 계정으로 들어갈 수 있을까요? 참고로 계정 검색해서 demo-머천다이즈 로 들어가도 페이지에 계정 부분은 계속 빈칸으로 뜹니다
확장프로그램 구글 태그 어시스턴트를 클릭했을 때 아래 이미지와 같이 "태그 문제해결" 이라는 버튼이 떴는데 왜 그럴까요..? Google 태그 찾음 부분은 뜨는데 "페이지를 찾을 수 없음"이라고 뜨고 있습니다 혹시 "문제해결"을 클릭하고 자세히 보니 페이지 표시된 부분이 "/"이 포함되어 들어가서 오류가 뜨는 걸수도 있을 것 같은데 맞을까요..? 맞다면 요 페이지를 수정하고 싶은데 어떻게 해야할까요? (검은 부분은 이름을 가린거고 맨 뒤에 슬래쉬를 없애고 싶습니다)
안녕하세요. 리텐션 과제 제출합니다. 실무 기반의 문제라 그런지 역시 난이도가 있네요. 고민을 많이 해보게 되었습니다. 리텐션 유저 기준은 게임 업계 기준으로 정의하고 문제를 풀었습니다. (플랫폼에 따라서 기준도 다르고 하지만) 보시고 피드백 있으시면 말씀을 부탁드리겠습니다. https://app.notion.com/p/2b00de0d9a16809f94f5e378ee375b2f?source=copy_link
해당 리텐션 연습과제를 아래의 노션 링크에 담아 제출합니다. 2번과 3번과제는 너무 어려워서 AI의 도움을 받아 수행하였습니다. 많이 고민하는 계기가 되었고, 덕분에 노션도 처음 사용해보았습니다. 부족한 점은 없는지 피드백 주시면 감사하겠습니다. https://app.notion.com/p/3-13-3986c0de4db68063b1b9efa55c1d4b4f?source=copy_link
안녕하세요 강사님! 최종 과제 피드백 요청 드립니다🙇♀️ 로그 데이터 분석이 처음이라 데이터 해석부터 분석 스킬까지 부족한 점이 많습니다! 하지만, 강사님께서 처음부터 이해하기 쉽게 알려주신 덕분에 많이 배울 수 있었습니다. 저는 현재 CRM 마케터를 희망하고 있어, CRM 개선 전략을 목표로 분석을 진행해보았습니다. 바쁘시겠지만 피드백 주시면 앞으로의 역량 강화에 큰 도움이 될 것 같습니다 :) 감사합니다~! 과제 링크