매출에 대한 주요 정보를 모아놓은 레포트 입니다.
내가 지정한 기간동안의 총 매출과 구매량, 평균 구매금액, 주요상품에 대한 정보를 확인할 수 있습니다.
별 다른 기능은 없으며, 보통 마케터들이 개발자분들께 매출을 뽑아달라고 하기보단, 퀵하게 특정 기간동안 대략적인 매출과 주요 상품 판매현황을 파악하기 위해 사용합니다.
Overview 레포트 답게, 분석보단 현황파악에 사용이며,
분석을 위해선 Ecommerce - Product Performance 레포트가 많이 사용됩니다.
[Google Analytics4] 구글애널리틱스4 커뮤니티입니다. 구글애널리틱스관련 정보를 공유 해 주세요! 구글애널리틱스4(GA4)는 웹사이트와 앱 사용자 행동을 심층적으로 분석할 수 있는 최신 분석 도구입니다. 그중에서도 참여율과 이탈률은 사용자 경험과 마케팅 성과를 평가하는 데 핵심적인 지표로 자리 잡고 있습니다. 본 포스팅에서는 GA4에서의 참여율과 이탈률 개념을 명확히 설명하고, 실무에 적용 가능한 활용 예시를 통해 데이터 기반 의사결정에 도움을 드리고자 합니다. 1. 문제 상황 및 배경: 왜 참여율과 이탈률이 중요한가? 온라인 비즈니스에서 사용자 행동 분석은 매출 증대와 고객 만족도를 높이기 위한 필수 과정입니다. 특히, 사용자가 웹사이트 또는 앱을 방문했을 때 얼마나 오래 머무르고, 어떤 경로로 이탈하는지 파악하는 것은 콘텐츠 개선과 마케팅 전략 수립에 핵심입니다. 기존의 구글 애널리틱스 UA(Universal Analytics)에서는 이탈률이 단순히 '세션 내 첫 페이지에서 이탈한 비율'로 정의되어 왔습니다. 하지만 GA4에서는 참여 세션(Engaged Session) 개념을 도입하여, 보다 정교하게 사용자 참여도를 파악할 수 있도록 진화했습니다. 2. GA4 참여율과 이탈률의 정의 및 원리 GA4에서의 참여율과 이탈률은 모두 세션 단위로 측정됩니다. 세션은 사용자가 웹사이트나 앱과 상호작용하는 일정 기간을 의미합니다. GA4는 세션을 다음 기준으로 분류합니다. 참여 세션 (Engaged Session): 다음 중 하나 이상을 충족하는 세션 - 10초 이상 지속된 세션 - 주요 이벤트가 발생한 세션 - 화면 또는 페이지 조회수가 2회 이상인 세션 비참여 세션: 위 조건을 충족하지 않는 세션 (즉, 사용자가 거의 상호작용하지 않고 빠르게 이탈한 경우) 이를 바탕으로 정의되는 두 지표는 다음과 같습니다. 참여율 (Engagement Rate): 전체 세션 중 참여 세션의 비율 (%) 공식: 참여율 = (참여 세션 수 / 전체 세션 수) × 100 이탈률 (Bounce Rate): 참여하지 않은 세션의 비율 (%) 공식: 이탈률 = (비참여 세션 수 / 전체 세션 수) × 100 참여율과 이탈률은 서로 보완적인 관계이며, 참여율이 높으면 이탈률은 낮아지는 경향이 있습니다. 3. GA4 참여율과 이탈률 측정 방법 및 보고서 설정 GA4 기본 보고서에는 참여율과 이탈률이 기본적으로 포함되어 있지 않기 때문에, 맞춤 설정을 통해 해당 측정항목을 추가해야 합니다. 설정 방법은 다음과 같습니다. GA4에 로그인 후, 왼쪽 메뉴에서 보고서를 선택합니다. 맞춤설정할 보고서(예: 페이지 및 화면 보고서)로 이동합니다. 보고서 오른쪽 상단의 보고서 맞춤설정 버튼을 클릭합니다. 측정항목 추가 메뉴에서 참여율과 이탈률을 검색하여 추가합니다. 변경 사항을 저장하면, 표의 마지막 열에 해당 지표가 표시됩니다. 참고로, 이 기능은 편집자 또는 관리자 권한이 있는 계정에서만 가능합니다. 4. GA4 참여율 및 이탈률 활용 예시 GA4의 참여율과 이탈률은 다양한 실무 상황에서 구체적으로 활용될 수 있습니다. 다음은 대표적인 활용 사례입니다. 4-1. 특정 페이지 콘텐츠 성과 분석 예를 들어, 블로그 내 특정 게시물의 참여율이 30%로 낮고 이탈률이 70%로 높다면, 해당 콘텐츠가 방문자의 기대에 미치지 못하거나 UX가 불편할 가능성이 있습니다. 이 경우 다음과 같은 조치를 취할 수 있습니다. 콘텐츠 품질 개선: 정보의 깊이, 가독성, 시각적 요소 강화 내비게이션 최적화: 다음 콘텐츠로 자연스럽게 연결되는 링크 추가 페이지 로딩 속도 개선: 사용자가 빠르게 이탈하지 않도록 성능 최적화 4-2. 마케팅 채널별 참여율 비교 광고 캠페인이나 유입 채널별로 참여율과 이탈률을 비교하면, 효과적인 채널과 그렇지 않은 채널을 구분할 수 있습니다. 예를 들어, 디스플레이 광고를 통해 유입된 트래픽의 참여율이 20%로 낮다면, 광고 소재가 사이트 콘텐츠와 관련성이 떨어지거나 타겟팅이 부적절할 수 있습니다. 4-3. 앱 사용자 행동 분석 Firebase 기반 GA4 앱 데이터 분석 시, 참여율이 낮은 화면을 파악하여 UI/UX 개선에 활용할 수 있습니다. 예를 들어, 특정 기능 화면에서 이탈률이 80% 이상이라면, 기능이 복잡하거나 오류가 있을 가능성이 큽니다. 5. GA4 참여율 및 이탈률 개선을 위한 실전 체크리스트 효과적인 참여율 향상과 이탈률 감소를 위해 다음 사항을 점검하세요. 태그 및 이벤트 설정 점검: 모든 페이지에 GA4 태그가 정확히 설치되어 있는지 확인 주요 이벤트 정의: 사용자 참여를 의미하는 이벤트(예: 클릭, 스크롤, 영상 재생 등)를 정확히 설정 콘텐츠 및 UX 최적화: 방문자의 관심을 끌고, 다음 행동을 유도하는 콘텐츠 구성 마케팅 메시지와 랜딩 페이지 연계: 광고 소재와 랜딩 페이지 내용의 일관성 유지 분석 주기 설정: 주간 또는 월간 단위로 참여율과 이탈률 변화 추적 및 원인 분석 6. 결론 및 추가 고려사항 GA4의 참여율과 이탈률은 단순한 방문수치 이상의 의미를 지닌 사용자 행동 분석 지표입니다. 기존 UA와 달리 세션 내 의미 있는 상호작용을 기준으로 하여, 보다 정확한 사용자 참여도를 측정할 수 있습니다. 이를 통해 콘텐츠 품질 평가, 마케팅 효율 분석, 앱 UX 개선 등 다양한 분야에서 실질적인 인사이트를 얻을 수 있습니다.참고자료 : https://support.google.com/analytics/answer/12195621?hl=ko&ref_topic=11151952
[Google Analytics4] 구글애널리틱스4 커뮤니티입니다. 구글애널리틱스관련 정보를 공유 해 주세요! 구글애널리틱스4(GA4) 기여 분석 개념 및 활용 예시 디지털 마케팅 환경에서 GA4(구글애널리틱스4)는 사용자 행동과 광고 성과를 심층적으로 이해하는 데 필수적인 도구로 자리 잡았습니다. 특히, 기여분석은 다양한 채널을 통해 유입된 방문자들이 전환에 어떻게 영향을 미쳤는지 평가하는 핵심 기능입니다. 이번 글에서는 GA4의 기여 분석 개념과 실제 활용 사례를 체계적으로 설명하여, 마케팅 전략 최적화에 실질적인 도움을 드리고자 합니다. 1. 기여 분석의 필요성과 개념 마케팅 캠페인에서는 여러 채널이 복합적으로 작용하여 고객의 구매 또는 전환에 영향을 미칩니다. 예를 들어, 고객이 처음에는 SNS 광고를 통해 유입되었다가, 이후 검색 광고와 이메일 마케팅을 거쳐 최종 구매에 이르는 복잡한 경로를 거칠 수 있습니다. 전통적인 분석에서는 마지막 클릭(Last Click) 채널에만 전환 성과를 100% 귀속하는 경우가 많았으나, 이는 실제 기여도를 왜곡할 위험이 큽니다. 이에 따라 GA4의 기여분석은 사용자의 전환 경로에 등장한 여러 터치포인트에 적절한 가중치를 부여하여, 각 채널이 전환에 미친 영향력을 정확히 평가합니다. 기여 분석(Attribution Analysis)은 “중요한 사용자 행동(전환 등)”에 대한 기여도를 여러 접점에 분배하는 과정이며, GA4는 이를 위해 다양한 모델을 지원합니다. 2. GA4 기여 분석 모델 종류 및 작동 원리 GA4에서 제공하는 주요 기여 분석 모델은 다음과 같습니다. 데이터 기반 기여 분석(Data-Driven Attribution) : 머신러닝 알고리즘을 활용하여 각 광고 상호작용의 실제 기여도를 산출합니다. 전환 경로 데이터를 분석해, 광고 노출 횟수, 시간, 기기 유형, 광고 형식 등을 고려하여 기여도를 배분합니다. Google 유료 채널 마지막 클릭(Last Click Google Paid Channel) : Google Ads 내에서 마지막으로 클릭한 광고 채널에 전환 가치를 전부 귀속합니다. Google Ads 클릭이 없으면 유료 및 자연 검색 마지막 클릭 모델을 적용합니다. 데이터 기반 기여 분석은 GA4의 가장 진보된 모델로, 실제 전환과 비전환 경로 데이터를 비교하여 각 터치포인트가 전환 가능성에 미친 영향을 통계적으로 추정합니다. 이를 통해 전환에 가장 큰 영향을 준 채널과 유입 경로를 객관적으로 파악할 수 있습니다. 반면, 마지막 클릭 모델은 단순하지만 빠르게 결과를 확인할 수 있어, 빠른 의사결정에 유리합니다. 다만, 전환 경로의 복잡성을 반영하지 못하는 한계가 있습니다. 3. GA4 기여 분석 활용 단계별 가이드 GA4에서 기여 분석을 효과적으로 활용하기 위한 단계는 다음과 같습니다. - 목표 및 주요 이벤트 정의 전환으로 간주할 주요 이벤트(예: 회원가입, 제품 구매, 뉴스레터 구독 등)를 GA4 내에서 이벤트로 설정합니다. - 기여 분석 보고서 접근 GA4 대시보드 좌측 메뉴의 광고 > 기여 분석에서 기여 분석 모델 또는 경로 보고서를 선택합니다. - 적합한 기여 모델 선택 비즈니스 목표와 데이터 가용성에 따라 데이터 기반 또는 마지막 클릭 모델을 선택합니다. - 전환 경로 및 터치포인트 분석 각 채널별 전환 기여도, 전환 경로 상의 터치포인트별 기여도를 확인하여 마케팅 채널별 성과를 평가합니다. - 마케팅 전략 최적화 분석 결과를 바탕으로 예산 배분, 채널별 캠페인 조정, 신규 채널 발굴 등 전략을 수립합니다. 4. 실무 적용 예시: GA4 기여 분석을 통한 마케팅 성과 개선 예를 들어, 한 전자상거래 기업이 GA4 기여 분석을 활용해 온라인 광고 캠페인을 평가했다고 가정해 봅시다. 주요 이벤트는 ‘제품 구매’이며, GA4 데이터 기반 기여 분석 결과 다음과 같은 인사이트를 얻었습니다. 유료 검색 광고가 전환 기여도의 40%를 차지하며 가장 큰 비중을 차지함 소셜 미디어 광고는 초기 유입에 중요한 역할을 하였으나, 전환 기여도는 25%로 상대적으로 낮음 이메일 마케팅은 재구매 유도에 효과적이며, 전체 기여도의 20%를 담당 직접 방문은 데이터 기반 모델에서는 기여도 산정 대상에서 제외 이 결과를 통해 마케팅팀은 유료 검색 광고 예산을 증액하고, 소셜 미디어 광고는 브랜드 인지도 강화용으로 재분류하였으며, 이메일 캠페인을 강화하여 재구매율을 높이는 전략을 수립했습니다. 또한, 기여 분석 경로 보고서를 활용해 전환까지의 평균 터치포인트 수, 경로별 전환율 등을 모니터링하며 지속적으로 캠페인을 조정했습니다. 5. 효과적인 GA4 기여 분석 학습 및 활용 팁 GA4 기여 분석을 잘 활용하기 위해서는 다음 사항을 유념해야 합니다. 정확한 이벤트 설정 : 전환 이벤트가 명확하고 정확하게 설정되어 있어야 의미 있는 기여 분석이 가능합니다. 충분한 데이터 확보 : 데이터 기반 모델은 머신러닝을 활용하므로, 일정량 이상의 데이터가 필요합니다. 데이터가 부족하면 모델이 제대로 작동하지 않을 수 있습니다. 기여 모델별 차이 이해 : 각 기여 모델의 장단점을 이해하고, 상황에 맞게 모델을 선택하는 것이 중요합니다. 보고서 정기 모니터링 : 캠페인 진행 중에도 기여 분석 보고서를 주기적으로 확인하여 변화 추이를 파악하고 전략에 반영합니다. 다른 분석 도구와 병행 : GA4 외에 Google Ads, Google Tag Manager 등과 연동하여 다각도로 데이터를 분석하면 더욱 정확한 인사이트를 도출할 수 있습니다. GA4 기여 분석은 복잡한 사용자 여정을 명확히 파악하고, 마케팅 채널별 효과를 객관적으로 평가할 수 있게 해줍니다. 이를 통해 예산 효율을 극대화하고, 전환율을 높이는 데이터 기반 의사결정이 가능해집니다. 본 글에서 다룬 GA4 기여분석 개념과 활용법은 디지털 마케팅 성과 측정에 필수적인 지식입니다. 실제 GA4 보고서에서 제공하는 다양한 기여 모델을 직접 적용해 보시고, 각 모델이 내 비즈니스에 어떤 인사이트를 주는지 비교해 보시길 권장합니다.참고자료 : https://support.google.com/analytics/answer/10596866?hl=ko&ref_topic=10597959
[Google Analytics4] 구글애널리틱스4 커뮤니티입니다. 구글애널리틱스관련 정보를 공유 해 주세요! GA4, 즉 구글애널리틱스4는 차세대 웹·앱 분석 도구로, 사용자 행동을 더 정교하고 심층적으로 분석할 수 있는 기능을 제공합니다. 그중 경로탐색 분석은 사용자가 웹사이트나 앱 내에서 어떤 경로로 이동하는지 시각적으로 탐색할 수 있는 핵심 기능입니다. 본 포스팅에서는 GA4의 경로탐색 분석 리포트를 만들고 활용하는 방법을 구체적인 사례와 함께 상세히 설명합니다. 1. GA4 경로탐색 분석이란? 경로탐색 분석은 사용자의 행동 흐름을 수형도(Tree Diagram) 형태로 시각화하는 분석 기법입니다. GA4 탐색 분석 탭 내에서 제공되며, 특정 이벤트나 페이지를 시작점 혹은 종료점으로 설정해 사용자가 어떤 경로를 거쳤는지, 어느 단계에서 이탈했는지 상세히 파악할 수 있습니다. 이 분석을 통해 신규 방문자가 홈페이지에 진입한 후 어떤 페이지를 주로 방문하는지, 앱에서 예외 발생 후 어떤 행동을 하는지, 또는 구매 전환까지의 주요 경로를 확인할 수 있습니다. 경로탐색 분석 사용자 행동을 단계별로 시각화하여 흐름을 한눈에 파악 전방향 및 역방향 경로 분석 가능 (사용자가 도달한 경로 또는 도달 후 행동 분석) 최대 20개 노드까지 세분화하여 상세한 데이터 확인 가능 이벤트 이름, 페이지 경로, 화면 이름 등 다양한 시작점 설정 가능 2. GA4에서 경로탐색 분석 리포트 만드는 방법 GA4에서 경로탐색 분석 리포트를 만드는 절차는 다음과 같습니다. 이 과정은 애널리스트 이상 권한이 필요하며, 처음 접속 시 샘플 데이터로 연습할 수 있습니다. GA4 관리 화면에서 좌측 메뉴의 탐색 분석(Explore) 탭으로 이동합니다. 새 탐색 분석 시작하기에서 경로탐색 분석(Path exploration) 템플릿을 선택합니다. 오른쪽 상단의 다시 시작(Reset) 버튼을 클릭해 기존 설정을 초기화합니다. 시작점(Start point) 또는 종료점(End point)을 선택합니다. 예를 들어, 시작점으로 page_title = "홈페이지"를 선택할 수 있습니다. 선택한 시작점 기준으로 사용자가 이동한 다음 단계들을 시각화된 그래프로 확인합니다. 원하는 단계의 노드를 클릭해 하위 경로를 확장하거나 축소할 수 있습니다. 필요 시 노드 유형(페이지, 이벤트, 화면 등)을 변경하여 다양한 관점에서 경로를 분석합니다. 3. 경로탐색 분석의 주요 구성 요소와 원리 경로탐색 분석은 크게 시작점(Start point), 단계(Step), 노드(Node), 종료점(End point)으로 구성됩니다. 시작점: 분석을 시작하는 특정 페이지, 이벤트, 화면 이름 등으로, 그래프의 가장 왼쪽 열에 위치합니다. 단계: 시작점 이후 사용자가 거치는 연속 행동 단계를 의미하며, 각 단계는 그래프의 열로 표시됩니다. 노드: 각 단계 내의 개별 데이터 포인트로, 예를 들어 특정 페이지나 이벤트를 나타내며 해당 노드에 도달한 사용자 수가 표시됩니다. 종료점: 분석을 종료하는 지점으로, 시작점과 동일하게 한 번에 하나만 선택할 수 있으며, 그래프의 가장 오른쪽 열에 위치합니다. GA4는 전방향 경로 탐색과 역방향 경로 탐색을 모두 지원합니다. 전방향 분석은 시작점에서 출발해 사용자가 다음에 어떤 행동을 했는지 확인하는 방식이고, 역방향 분석은 종료점을 기준으로 사용자가 어떻게 그 지점에 도달했는지 거꾸로 추적합니다. 각 노드에는 해당 경로에 기여한 실제 사용자 수 또는 이벤트 발생 수가 수치로 표시되며, 최대 20개의 노드를 단계별로 세분화해 보여줍니다. 20개를 초과하는 노드는 ‘기타’로 묶여 집계됩니다. 4. GA4 경로탐색 분석 활용 사례 및 실무 적용법 GA4의 경로탐색 분석은 웹사이트 및 앱 운영자의 사용자 행동 분석과 마케팅 퍼널 최적화에 매우 유용합니다. 구체적인 활용 사례는 다음과 같습니다. 신규 사용자 유입 후 행동 흐름 분석 예를 들어, 신규 방문자가 홈페이지에 접속한 후 ‘제품 카테고리 페이지’ → ‘상품 상세 페이지’ → ‘장바구니’ → ‘결제 완료’까지 어떤 경로로 이동하는지 파악할 수 있습니다. 이를 통해 이탈이 많은 단계(예: 상품 상세 페이지에서 장바구니로 이동하지 않는 경우)를 발견하고 UX 개선에 활용합니다. 앱 내 예외 발생 후 사용자 행동 추적 앱에서 특정 오류 이벤트 발생 시 사용자가 이후 어떤 화면으로 이동하거나 어떤 행동을 하는지 분석해 문제의 원인을 파악하고 대응합니다. 구매 전환까지의 퍼널 분석 보완 기존 퍼널 분석과 달리 경로탐색 분석은 사용자가 반드시 순차적으로 이동하지 않아도 다양한 경로를 시각화하여, 복잡한 사용자 흐름을 심층적으로 이해할 수 있습니다. 5. GA4 경로탐색 분석 리포트 고급 팁 및 체크리스트 경로탐색 분석 리포트를 효과적으로 활용하기 위한 고급 팁과 체크리스트를 정리했습니다. 시작점과 종료점 설정 주의: 시작점과 종료점은 동시에 설정할 수 없습니다. 분석 목적에 따라 적절히 선택하세요. 노드 유형 변경 활용: 페이지, 이벤트, 화면 이름 등 노드 유형을 바꿔가며 다양한 관점에서 경로를 탐색하세요. 단계별 노드 확장: 기본적으로 단계당 상위 5개 노드가 표시되지만, + 더보기를 클릭해 최대 20개까지 확장해 더 많은 데이터를 확인할 수 있습니다. 시퀀스 조건 활용: 사용자 세그먼트 내에서 특정 이벤트 시퀀스를 정의해 조건에 맞는 사용자만 분석할 수 있습니다. 예를 들어, ‘장바구니 추가’ 후 ‘결제 완료’까지의 경로만 추적 가능. 정기적인 리포트 업데이트: 사용자 행동은 시시각각 변하므로, 리포트를 주기적으로 생성해 최신 트렌드를 반영하세요. 다른 GA4 탐색 분석과 병행: 경로탐색 분석 외에도 자유 형식 분석, 세그먼트 중복 분석 등을 함께 활용해 다각도로 데이터를 해석하세요. GA4 경로탐색 분석은 사용자 행동을 시각적으로 이해하고, 마케팅 퍼널 및 UX 최적화를 위한 강력한 도구입니다. 구글애널리틱스4의 탐색 분석 탭에서 쉽게 접근 가능하며, 다양한 노드 유형과 세그먼트 조건 설정을 통해 정교한 맞춤 리포트를 만들 수 있습니다. 본 가이드의 단계별 설명과 체크리스트를 참고하여, 실제 비즈니스에 적용해 보시기 바랍니다. 참고 가이드 : https://support.google.com/analytics/answer/9317498?hl=ko&ref_topic=9266525
[Google Analytics4] 구글애널리틱스4 커뮤니티입니다. 구글애널리틱스관련 정보를 공유 해 주세요! 구글애널리틱스 4(GA4)는 웹과 앱 데이터를 통합하여 분석할 수 있는 차세대 분석 플랫폼입니다. 그중에서도 자유형식 탐색 분석은 GA4 리포트 중 가장 강력하고 유연한 분석 도구로, 마케팅 실무자와 데이터 분석가들이 맞춤형 데이터 시각화와 심층 분석을 수행하는 데 필수적인 기능입니다. 본 포스팅에서는 GA4의 자유형식 탐색 분석 기능의 원리와 활용법, 그리고 실제 사례를 통해 어떻게 고객 행동과 마케팅 성과를 효과적으로 분석할 수 있는지 상세히 살펴보겠습니다. 1. GA4 자유형식 탐색 분석이란? 자유형식 탐색 분석은 GA4의 탐색(Explore) 탭 내에서 제공되는 고급 분석 기법 중 하나로, 사용자가 원하는 대로 분석 화면을 구성할 수 있는 맞춤형 리포트 생성 기능입니다. 기존의 표준 GA4 리포트와 달리, 데이터 행과 열을 자유롭게 조합하고 다양한 시각화 도구를 적용하여 심층적인 데이터 인사이트를 도출할 수 있습니다. 이 기능을 통해 다음과 같은 작업이 가능합니다: - 데이터 시각화 선택: 테이블, 막대 그래프, 원형 차트, 선 차트, 분산형 차트, 지리 지도 등 다양한 형태로 데이터를 표현 - 행과 열의 자유로운 배치: 원하는 디멘젼(차원)과 매트릭스(측정항목)를 드래그 앤 드롭으로 배치 가능 - 세그먼트 및 필터 적용: 특정 사용자 그룹이나 조건을 지정하여 데이터 세분화 - 중첩 행 설정: 복수 차원 데이터를 계층적으로 그룹화하여 분석 - 이를 통해 GA4 리포트가 제공하는 기본 데이터 이상의 맞춤형 분석이 가능하며, 마케팅 캠페인 성과, 사용자 행동 패턴, 유입 경로 등을 심도 있게 탐색할 수 있습니다. 2. GA4 자유형식 탐색 분석의 기술적 원리와 작동 방식 GA4의 자유형식 탐색 분석은 빅쿼리와 연동된 GA4 데이터 스트림에서 집계된 이벤트 기반 데이터를 기반으로 작동합니다. GA4는 기본적으로 이벤트(event)와 매개변수(parameter)를 중심으로 데이터를 수집하며, 자유형식 탐색 분석에서는 이 데이터를 사용자 지정 디멘젼과 매트릭스로 자유롭게 조합할 수 있습니다. 주요 작동 원리는 다음과 같습니다: - 데이터 소스 선택: GA4 속성 내에서 분석할 데이터 세트를 선택합니다. - 디멘젼 및 매트릭스 불러오기: 분석에 필요한 차원(예: 국가, 디바이스 종류, 유입 매체)과 측정항목(예: 사용자 수, 세션 수, 매출액)을 선택합니다. - 시각화 유형 지정: 데이터 특성에 맞는 시각화 도구(테이블, 차트 등)를 선택합니다. - 필터 및 세그먼트 적용: 특정 사용자 집단이나 이벤트 조건을 필터링하여 분석 정확도를 높입니다. - 결과 해석 및 인사이트 도출: 시각화된 데이터에서 패턴, 이상치, 상관관계 등을 분석합니다. - 특히, GA4 탐색 분석은 이상치 탐지(Anomaly Detection) 기능을 지원하여, 데이터 내에서 통계적으로 유의미한 변동이나 이상 현상을 자동으로 감지할 수 있습니다. 이는 마케팅 캠페인 성과 변동이나 사용자 행동 변화에 신속히 대응하는 데 큰 도움이 됩니다. 3. GA4 자유형식 탐색 분석 활용 사례 실제 GA4 자유형식 탐색 분석 활용 사례를 통해 구체적인 분석 방법과 인사이트 도출 과정을 살펴보겠습니다. 사례 1: 디바이스별 사용자 행동 분석 한 이커머스 기업은 GA4 자유형식 탐색 분석을 통해 디바이스 카테고리(데스크톱, 모바일, 태블릿)와 화면 해상도별 사용자 수 및 매출액을 비교 분석했습니다. - 분석 결과, 데스크톱 사용자 중 1440x900 해상도 이용자가 매출의 40% 이상을 차지하는 것으로 확인 - 반면, 1366x768 해상도 사용자는 방문자 수는 많지만 구매 전환율이 낮음 -> 이 데이터를 기반으로 특정 해상도 사용자 대상 맞춤형 UI/UX 개선 및 프로모션 전략 수립 사례 2: 유입경로별 트래픽 및 전환 비교 마케팅 팀은 유입 매체(인스타그램, 네이버 검색, 네이버 블로그, 디스플레이 광고, 직접 방문 등)를 기준으로 자유형식 탐색 분석을 수행했습니다. - 막대 그래프 시각화로 각 채널별 활성 사용자 수와 전환율 비교 - 네이버 블로그 유입은 전환율이 높으나 트래픽 규모는 상대적으로 작음 - 인스타그램은 높은 트래픽을 유발하지만 전환율은 평균 이하 -> 이를 통해 마케팅 예산 배분과 채널별 최적화 전략 수립 가능 4. GA4 자유형식 탐색 분석 실무 적용법 GA4 자유형식 탐색 분석을 실무에 적용하기 위한 단계별 가이드를 소개합니다. - 분석 목표 설정: 무엇을 알고 싶은지 명확히 정의 (예: 특정 캠페인 효과, 사용자 행동 패턴 등) - 탐색 분석 시작: GA4 > 탐색(Explore) 탭에서 자유형식 탐색 분석 템플릿 선택 - 필요한 디멘젼 및 매트릭스 선택: 분석에 필요한 차원과 측정항목 불러오기 - 시각화 유형 결정: 데이터 특성에 맞는 테이블, 차트 등 선택 - 필터 및 세그먼트 적용: 특정 기간, 사용자 그룹, 이벤트 조건 등으로 데이터 세분화 - 데이터 해석 및 인사이트 도출: 시각화 결과 기반으로 의미 있는 패턴과 개선 포인트 확인 - 보고서 공유 및 액션 플랜 수립: 관련 부서와 결과 공유 후 실행 계획 수립 특히, GA4 탐색 분석은 분석가 권한 이상 사용자만 생성할 수 있으므로, 조직 내 데이터 접근 권한 관리도 중요합니다. 5. GA4 자유형식 탐색 분석 활용 시 주의사항 및 팁 - 자유형식 탐색 분석을 효과적으로 활용하기 위해 다음 사항을 유념하시기 바랍니다. - 데이터 샘플링 주의: GA4 탐색 분석은 대량 데이터 처리 시 샘플링이 발생할 수 있으므로, 정확한 분석을 위해 범위와 조건을 적절히 조정 - 정확한 디멘젼과 매트릭스 선택: 분석 목적에 부합하는 지표를 신중히 선택하여 의미 있는 결과 도출 - 필터와 세그먼트 활용 극대화: 사용자 그룹별 행동 차이를 파악할 때 필터링과 세그먼트 기능 적극 활용 - 이상치 탐지 기능 활용: 자동 이상치 탐지를 통해 비정상적인 데이터 변동을 조기에 발견 가능 데이터 해석 시 맥락 고려: 단순 수치 비교보다는 캠페인 일정, 외부 이벤트 등 맥락을 함께 고려해야 정확한 인사이트 도출 정리 및 결론 GA4 자유형식 탐색 분석은 구글애널리틱스 GA4 리포트 중에서도 가장 유연하고 강력한 도구로, 마케팅 데이터 시각화와 심층 분석에 최적화되어 있습니다. 다양한 시각화 옵션과 세그먼트, 필터 기능을 활용해 사용자 행동과 마케팅 효과를 다각도로 분석할 수 있습니다. 특히, 유입경로 분석, 디바이스별 사용자 특성 파악, 퍼널 분석 등 다양한 마케팅 인사이트를 도출하는 데 필수적이며, 이상치 탐지 기능으로 데이터 이상 현상도 신속하게 파악할 수 있습니다. 참고 가이드 : https://support.google.com/analytics/answer/9327972
UTM은 왜 필요할까? 디지털 마케팅에서는 검색, 광고, 뉴스레터 등 다양한 채널을 활용하여 트래픽을 유도하고, 어떤 경로를 통해 우리 웹사이트로 들어오는지, 어떤 채널이 유입과 구매에 효과적인지를 측정할 수 있습니다. UTM을 사용하면, 어떤 채널, 캠페인, 콘텐츠가 효과적인지 명확하게 측정할 수 있고, 더 나은 마케팅 전략을 수립할 수 있습니다. UTM 뜻 UTM(Urchin Tracking Module)은 특정 페이지에 들어온 유저가 어디서 어떤 경로를 통해 왔는지 알려주는 일종의 꼬리표와 같습니다. URL 뒤에 UTM 파라미터를 설정하면, 특정 페이지에 들어온 유저가 어디서, 어떻게, 무엇을 통해, 어떤 키워드로 유입되었는지를 알 수 있습니다. UTM 파라미터 구성요소 - utm_source : 유입 채널 (google, naver, facebook, kakao) - utm_medium : 유입 매체 (cpc, social, email, blog, referral) - utm_campaign : 마케팅 캠페인 - utm_content : 마케팅 소재 - utm_term : 마케팅 키워드 (주로 검색광고에서 활용되어, 키워드별 성과 비교 가능) UTM 생성기 활용 방법1. UTM 생성기 접속 후 UTM Group 생성 링크 : https://keywordsearch.pluszero.co.kr/utm-builder/group-list2. 생성된 Group 내 '추가' 버튼 클릭 후, UTM 구성요소 입력 후 저장 3. 소스, 매체, 캠페인, 컨텐츠, 검색어 및 URL 생성 완료!UTM 생성기 활용 이점1. 수동 입력 시 발생할 수 있는 띄어쓰기 오류, 오타, 일관성 부족 문제를 방지할 수 있습니다. 2. UTM 구성요소를 입력하면 자동으로 URL이 생성되어 쉽게 공유할 수 있습니다. 3. 히스토리를 체계적으로 관리할 수 있습니다. 4. 생성된 UTM을 기록하고, 이를 GA4나 대시보드에서 분석하여 채널 및 캠페인별 성과를 쉽게 비교할 수 있습니다.
[Google Analytics4] 구글애널리틱스4 커뮤니티입니다. 구글애널리틱스관련 정보를 공유 해 주세요! Google Analytics 4가 유저를 식별하는 방법에 대해서 소개해 드립니다. GA4는 유저 식별을 위해 아래의 4가지 주요 방법을 활용합니다. 1. User ID (사용자 ID)User ID는 웹사이트나 앱에서 사용자가 로그인할 때 할당되는 고유 식별자입니다. 예를 들어, 한 사용자가 데스크탑과 모바일 기기에서 동일한 계정으로 로그인하면, 이 두 활동은 동일한 User ID로 연결되어 사용자의 전체 행동을 추적할 수 있습니다. 이를 통해 여러 기기에서의 사용자 활동을 통합하여 분석할 수 있습니다. 다른 기기나 브라우저에서 접속해도 User ID가 있다면 동일 유저라고 인식할 수 있습니다. 2. Google Signals(구글 신호 데이터) Google Signals는 사용자가 Google 계정에 로그인하고 광고 개인 최적화를 활성화한 경우, 해당 사용자의 사이트 및 앱 세션 데이터를 수집합니다. 예를 들어, 사용자가 Chrome 브라우저에서 Google 계정으로 로그인한 상태로 웹사이트를 방문하면, Google Signals를 통해 해당 사용자의 교차 기기 활동을 추적할 수 있습니다. 이를 통해 리마케팅 및 교차 기기 보고서 작성이 가능해집니다.다만, 모든 기기에 동일한 Google ID로 로그인되어 있어야 하며, 사용자가 광고 개인 최적화를 비활성화한 경우에는 데이터를 사용할 수 없습니다. 3. Device ID(쿠키 ID) 웹사이트의 경우, 클라이언트 ID(Client ID)는 사용자가 사이트에 처음 방문할 때 생성되어 쿠키에 저장됩니다. 이 식별자는 2년간 유지되며, 동일한 기기와 브라우저를 사용하는 한 동일한 사용자로 인식됩니다. 하지만, 다른 기기나 브라우저를 사용할 경우 새로운 클라이언트 ID가 생성되어 동일한 사용자가 여러 명으로 집계될 수 있습니다. 4. Modeling(모델링) 모델링은 쿠키나 사용자 ID와 같은 식별자를 충분히 이용할 수 없을 때, 구글 머신러닝 알고리즘을 활용하여 사용자 활동을 예측하고 추정 데이터를 생성하는 방식입니다. 예를 들어, 사용자가 쿠키를 차단하거나 삭제한 경우에도 모델링을 통해 해당 사용자의 행동을 추정하여 보고서에 포함시킬 수 있습니다. GA4가 사용자를 식별하는 예시를 더 세부적으로 말씀드리겠습니다. 만약, USER ID가 없는 홍길동이라는 사람이 있다면 이 사람은 1명이지만 각기 다른 브라우저와 기기로 사이트에 접속할 시 GA4는 홍길동이라는 사람을 4명의 유저로 인식합니다. USER ID가 존재할 시에는 다른 브라우저, 기기에 대해서도 동일 사용자로 인식할 수 있기에 아래의 경우에 대해서는 홍길동이라는 사람에 대해 2명의 유저로 인식합니다.
GA4에서는 UA와 달리 360버전이 아니더라도 BigQuery를 연동할 수 있습니다. 또한 GA4만으로 Looker Studio등을 사용해 대시보드를 만들었을 때 여러 제한 사항이 있습니다. 그러다보니 BigQuery의 사용량이 자연스럽게 많아진 상태인데요 이 때 가장 큰 문제가 GA4 BigQuery와 GA4 콘솔간의 세션 수 차이입니다. UA때는 GA와 BigQuery의 세션 숫자가 정확하게 맞아 떨어졌던 반면 GA4에서는 세션 수가 무조건 차이가 발생하는 상태인데요 그 이유에 대해 알아보겠습니다. 결론부터 말하자면 GA4 BigQuery가 더 정확한 데이터입니다. GA4의 세션 수를 계산할 때 정확한 세션수를 계산하기 위한 충분한 시간과 리소스가 없기 때문에 더 효율적인 계산 방법(HyperLogLog++ 알고리즘 등)을 적용하여 세션 수를 계산합니다. 하지만 GA4 BigQuery는 테이블이 만들어지기까지 충분한 시간과 리소스가 있기 때문에 더 정확한 값이 집계됩니다. 자세한 내용은 다음 링크를 확인해주세요 -> 링크
사용자는 다양한 기기와 브라우저를 교차 사용하며 웹사이트 방문하는 경우가 많습니다. 예를 들어 출근 길에 제품 검색을 통해 앱에 방문하고, 점심시간 회사에서 컴퓨터를 사용하여 제품에 대해 자세히 조사하며, 퇴근 후 집에서 핸드폰으로 구매합니다. 이러한 각 활동은 별도의 세션으로 구분되지만, GA4에서는 사용자 여정을 통합하여 하나의 사용자로 측정할 수 있습니다. GA4가 사용자를 식별하는 방법은 크게 4가지로 나뉩니다. 1. 유저 ID 유저 ID는 특정 사용자를 식별할 수 있는 고유 식별자입니다. 유저 ID를 통해 여러 기기나 브라우저에서 활동한 사용자를 동일인임을 식별할 수 있고, 이러한 활동들을 통합하여 하나의 사용자 여정으로 확인할 수 있도록 해줍니다. 쉽게 말해 같은 유저 ID로 로그인된 상태에서 아이폰-앱, 웹-크롬, 아이폰-사파리를 사용해 방문하였다면, 유저 ID를 통해 한 명의 사용자 행동으로 식별할 수 있다는 것입니다. 이때 유저 ID는 개인정보보호를 위해 개인을 식별할 수 없도록 암호화된 ID를 활용합니다. 2. 구글 신호 데이터 구글 신호 데이터는 구글이 직접 수집하는 사용자의 활동 데이터입니다. 광고 개인 최적화에 동의하고 구글 ID로 로그인된 상태에서 여러 기기나 브라우저로 크롬, 유튜브 같은 구글 서비스를 사용할 때 검색 내용, 방문한 웹사이트, 시청한 동영상 등의 활동 정보를 구글 계정에 저장하여 사용자를 식별합니다. 만약 핸드폰, 태블릿, 데스크톱 모두 같은 구글 ID로 로그인 되어 활동하였다면, GA4에서는 1명의 사용자로 인식합니다. 구글 신호 데이터를 통해 인구통계, 관심분야에 대한 데이터를 얻을 수 있지만, 익명으로 수집되기 때문에 특정 사용자가 어떤 식별자를 가졌는지 확인이 불가능하며, iOS 14 이상 버전의 기기는 지원하지 않습니다. 3. 기기 ID(=CID) 기기 ID는 브라우저/기기 별로 부여되는 쿠키값입니다. 웹의 경우 클라이언트 ID, 앱의 경우 앱 인스턴스 ID로 구분됩니다. 일반적으로 GA4는 클라이언트 ID를 기반으로 사용자를 식별합니다. 웹사이트에 GA 코드 삽입 후 처음 방문했을 때 사용자에게 GA 쿠키가 생성되고, 쿠키에는 임의의 클라이언트 ID가 할당되는데요. CID 확인 방법 CID를 확인하는 방법은 개발자도구 – Application 탭 – Coockies – ‘_ga’ 값 중, CID는 1175402462 입니다. 1702863965는 세션을 식별하기 위한 타임스탬프 값이라고 보시면 됩니다. 쿠키는 기기와 브라우저별로 생성되기 때문에 클라이언트 ID 기준으로 사용자를 식별할 때 같은 기기나 브라우저로 접속한다면 GA4는 1명의 사용자로 인식하고, 다른 기기나 브라우저로 접속한다면 다른 유저로 각각 카운트합니다. 4. 모델링 위의 3가지의 식별자로 유저를 구분할 수 없는 경우, GA에서 자체 머신러닝을 거친 후 사용자를 식별합니다.
안녕하세요 :) 앞 글에서 빅쿼리에 있는 독특한 문법이라 할 수 있는 Array / Struct / Unnest 에 대해서 알아보았었는데요, <이전글> 1. 빅쿼리의 STUCT 이란? http://googleanalytics360.com/board/view.php?bo_table=googleanalytics&wr_id=95&page= 2. 빅쿼리의 ARRAY & UNNEST이란? http://googleanalytics360.com/board/view.php?bo_table=googleanalytics&wr_id=94&page= 이번 글에서는 해당 문법들을 실제 GA4 데이터에서 어떤식으로 활용하는지 알아보겠습니다. <목차> 1. Record 의 데이터 조회하기 2. Record + Repeated 데이터 조회하기 3. Record + Repeated 데이터 안에 또 다른 Record 가 있는 경우의 데이터 조회하기 [빅쿼리의 데이터 유형] 우선 GA4 데이터로 가기 전에, 빅쿼리의 데이터 유형들을 봐볼게요. 도움말에서 확인할 수있는 빅쿼리의 스키마 및 데이터 유형은 다음과 같습니다. 뭔가 알아야하는 항목들이 여러개 있어보이지만 정말 자주 쓰이는 것들은 아마 STRING (문자형) , INT64 (정수형) , DATE 날짜 정도 일 것 같아요. 여기서 추가로 저희는 STRUCT (RECORD) 과 ARRAY (REPEATED) 도 알아야겠죠? 아래 이미지는 빅쿼리에 GA4를 연동했을 때 수집되는 데이터들의 스키마입니다. 우측의 유형과 모드에 집중해볼게요. RECORD 면 Struct REPEATED 면 Array 이 두 가지는 꼭 기억해주세요! [ROCORD 데이터를 가져오는 방법] 한번 저희가 device 라는 정보를 빅쿼리를 통해서 조회해보겠습니다. SQL 에서 정보를 가져올 때 가장 기본적인게 SELECT '항목' FROM '데이터 소스' 형식이죠, device 를 아래와 같이 select 하게 되면 어떻게 될까요? SELECT device FROM `데이터 소스' 분명 select 된 것은 device 하나인데 갑자기 열이 엄청 많이 조회되는데요, 이처럼 여러 열이 출력된 이유는 유형이 'Record' 인 항목이 Struct 이기 때문이에요. (struct 은 테이블 안에 또 다른 테이블, 열의 형태로 존재하는 것) 이렇게 device 왼쪽의 세모를 눌러서 펼쳐보게되면 숨겨있던 이름들이 나오게 됩니다. 만약 'device' struct 안에 있는 'category' 정보와 'operating_system' 만 가져오고 싶다면 어떻게 할 수 있을까요? 바로 '.' 을 이용하는 것 입니다. 이렇게 device.category '.' 을 활용했더니 정상적으로 원하는 컬럼을 select 해올 수 있죠. SELECT device.category, device.operating_system FROM `데이터소스' [Record 와 Repeated 가 같이 있는 경우] 위에서는 Record 만 있는 경우였는데, 실제로 ga4 에서 더 많이 쓰는 값들은 Record 와 Repeated 가 같이 있어요. items 로 한번 같이 알아보겠습니다. 우선 items 라는 값들은 어떤 구조일지 생각해볼게요. 한 회사에서 실제로 어떤 상품들이 팔리고 있는지 확인하려면 상품의 이름 ,상품의 가격 , 상품의 옵션 등 각 상품에 대한 정보가 필요할것이고, 사람들은 1개만 구매하기보다 여러 상품을 구매하기 때문에 그 여러 상품들에 대해서 수집을 할 수있어야겠죠? 엑셀로 표현해보면 살짝 이런 느낌이에요. 그럼 이전 글에서 설명할 때, ARRAY 는 엑셀에서 '병합셀' 과 같다고 표현했는데 지금 딱 그 형식인게 보이실까요? 스크립트로 표현하면 이렇게 ITEMS 라는 ARRAY 안에 아이템 정보들을 여러개 넣을 수 있게 됩니다. ITEMS 가 REPEATED 였으니 ARRAY 는 이렇게 쓰인걸 알았고, RECORD 도 있었는데... 그럼 ITEMS 에서 STRUCT 은 어디에 쓰였을까요? 아까 위에서 device 와 동일하게 , 아래와 같이 items 를 select 해보면 SELECT items FROM `데이터 소스' 아까 DEVICE 처럼 너무 많은 열들이 SELECT 되었죠, 이를 통해 ITEMS 도 STRUCT 구조로 이루어져 있다는 것도 확인할 수 있습니다. 그럼 과연 ITEMS 도 아까 DEVICE 예시처럼 '.' 을 사용하면 원하는 열만 가져올 수 있을까요? SELECT items.item_name, items.price FROM `데이터 소스' '.' 을 동일하게 썼는데 위의 쿼리는 실행되지 않고, 다음과 같은 오류가 확인됩니다. Cannot access field item_name on a value with type ARRAY
이번 글에서는 GA4를 사용하다보면 마주치는 데이터 샘플링, 기준점(Threshold) 적용, 카디널리티에 대해 알아보겠습니다. 1. 데이터 샘플링(Data Sampling) 탐색 보고서에서 데이터를 분석하면 아래와 같은 메시지를 볼 수 있습니다. ‘이 보고서는 이용 가능한 데이터의 48.3%를 기반으로 합니다.’ 샘플링이라는 단어에서 알 수 있듯이 전체 중 일부를 사용한다는 것을 유추해볼 수 있는데요. 데이터의 양이 매우 많을 때 탐색 보고서의 속도와 성능을 최적화하기 위해 전체 데이터의 일부만 사용하는 데이터 샘플링이 적용되었다는 것을 말해줍니다. GA4에서는 1,000만개의 이벤트 수를 기반으로 탐색 보고서에서 샘플링이 적용되어, 해당 할당량을 초과하는 경우 전체 데이터 대신 샘플 데이터를 사용하여 전체를 대표하는 보고서를 생성합니다. 데이터가 샘플링 될 때, 데이터 품질 아이콘을 통해 아래와 같은 옵션을 선택할 수 있습니다. - 세부 결과(More detailed results) : 샘플 크기를 최대한 크게 설정하여 전체 데이터를 가장 잘 보여주는 결과를 제공함 - 빠른 결과(Faster results) : 샘플링 크기를 작게 설정하여 결과를 빠르게 제공하는 데에 초점 기본적으로 GA에서는 빠른 결과(Faster results)를 적용되지만, 세부 결과(More detailed results)를 선택하면 더 많은 양의 데이터를 사용하여 조금 더 정확한 값을 확인하실 수 있습니다. 데이터 샘플링을 해결할 수 있는 방법은 다음과 같습니다. - 데이터 조회기간을 줄여서 데이터 모집단의 크기를 줄이기 - 향상된 측정 끄기 - 카디널리티가 높은 맞춤 측정기준 삭제 (3. 카디널리티 참고) 2. 기준점(Threshold) 적용 데이터 기준점은 보고서에서 사용자의 성별, 연령, 지역, 관심분야 등과 같이 특정 사용자를 유추하지 못하도록 특정 데이터를 제외시키는 것입니다. 이는 웹사이트에 방문한 사용자의 개인정보보호를 위해 생긴 기능으로, 기준점이 적용되면 일부 데이터를 확인할 수 없게 됩니다. 기준점 적용은 데이터 샘플링과는 반대로 데이터 양이 너무 적은 경우 발생합니다. 보고서에 인구통계 정보가 포함된 경우 전체 사용자 수가 충분하지 않으면 사용자를 구별할 수 있는 것을 막기 위해 특정 데이터가 제외되는 것입니다. 기준점이 적용되면 일종의 샘플링과 유사하게 정확하지 않은 데이터가 집계될 수 있습니다. 기준점 적용을 해결할 수 있는 방법은 다음과 같습니다. - (조회기간 내 사용자 혹은 이벤트 수가 적은 경우) 조회기간 늘려서 데이터 양 늘리기 - Google 신호 데이터 비활성화 >> Google 신호 데이터는 인구 통계 정보나 구글 애즈에서 잠재고객을 활용한 리마케팅을 할 때 필요한데, 해당 데이터가 필요하다면 활성화시키지 않는 것이 좋습니다. - 보고 ID를 ‘기기 기반’으로 설정 >> 기본적으로 보고 ID는 ‘혼합됨’으로 설정되어 있는데, 보고 ID를 ‘기기 기반’으로 변경하면 기기 ID를 기반으로 사용자를 식별하기 때문에 다른 기기로 사이트를 방문할 경우 다른 사용자로 식별하게 됩니다. (이로 인해 정확한 사용자 수를 측정하는 데 한계가 있는 옵션) 3. 카디널리티(Cardinarlity) 카디널리티는 데이터 측정기준이 가지는 고유한 값의 수를 의미합니다. GA4는 카디널리티가 높은 맞춤 측정기준을 추가하는 것을 권장하지 않는데요. 예를 들어, payment_type(결제 방식) 이라는 측정기준에 ‘N Pay’, ‘계좌이체’, ‘신용카드’, ‘무통장입금’ 4가지의 값이 있다면, 이 경우에 카디널리티는 4입니다. 이정도는 카디널리티가 낮다고 말할 수 있지만, user_id나 item_name과 같은 측정기준은 수만 개 이상의 값을 가지고 있을 수 있기 때문에 카디널리티가 높을 것으로 예상됩니다. 카디널리티가 높다고 말할 수 있는 기준은 측정기준의 고유한 값이 일일 500개를 초과하는 경우입니다. 카디널리티가 높으면 저장해야 할 값이 많기 때문에 속도나 성능 측면에서 부정적인 영향을 미칠 수 있습니다. 보고서의 행 개수가 많아지다보니 행 한도(500개 이상)에 도달하여 일부 데이터가 (other) 행에 분류되고, 카디널리티가 25,000개 이상이라면 데이터 샘플링이 발생하는 점 주의하시길 바랍니다. 단, 탐색 보고서에서는 축약 행이 발생하지 않으므로, GA4 기본 보고서에서 (other)라고 표시된 행이 있다면 탐색 보고서에서 데이터를 확인하시는 것을 권장드립니다. (other) 행이 생기는 예시 카디널리티를 해결할 수 있는 방법은 다음과 같습니다. - 카디널리티가 높은 맞춤 측정기준을 삭제하거나 자제 - user_id는 맞춤 측정기준 대신 User-ID 기능 사용 - 맞춤 측정기준 생성 전에 가능한 기존 측정기준 사용 지금까지 알아본 데이터 샘플링, 기준점 적용, 카디널리티 3가지를 잘 이해하여 데이터 분석을 정확하고 효율적으로 해보시길 바랍니다.
이번 글은 빅쿼리의 Struct 에 대해 정리해보도록 하겠습니다. https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#struct_type [빅쿼리의 Struct 이란?] Struct 은 빅쿼리 UI 상에서는 Record 라고 표현됩니다. 이렇게 유형이 'Record'인 항목들은 공통점이 하나 있는데요, 바로 쿼리 결과를 봤을 때, 열의 이름이 aaa.bbb 형식이란 점 입니다. 간단하게 보자면 struct 구조를 통해 전체 테이블 안에 있는 특정 열들이 한 묶음으로 구분될 수 있게 됩니다. [Struct 를 만드는 방법] Struct 을 만들 수 있는 방법은 여러가지가 있습니다. [1] 소괄호 SELECT ('육식동물','초식동물','잡식동물') animal [2] STRUCT <타입> SELECT STRUCT<STRING, INT64,STRING>('정뿌시',26,'직장인') PERSONAL_INFORMATION 아래처럼 TYPE 앞에서 각 열들에 대한 이름을 정의해줄 수 있습니다. [3] ARRAY (SELECT AS STRUCT) 추가로, ARRAY 와 STRUCT 은 혼합하여서도 사용이 가능합니다. 그 중 ARRRAY 안에 STRUCT 있는 형태는 ARRAY (SELECT AS STRUCT ~ ) 으로 쓸 수 있습니다. 이렇게 ARRAY 안에 STRUCT 이 3개 존재하는 거죠. SELECT ARRAY ( SELECT AS STRUCT '정뿌시' AS NAME ,26 AS AGE ,'컨설턴트' AS JOB UNION ALL SELECT AS STRUCT '이요니' AS NAME ,26 AS AGE ,'공무원' AS JOB UNION ALL SELECT AS STRUCT '오현디' AS NAME ,26 AS AGE ,'방송PD' AS JOB ) AS `GROUP1_INFO` 정리하면, STRUCT 은 빅쿼리의 RECORD 유형으로 테이블 안에서 또 다른 테이블을 구성하는 것과 유사하다고 이해할 수 있다. (개념상) ARRAY 가 대괄호였다면 STRUCT은 소괄호로 만들 수 있고, ARRAY 안에도 STRUCT 을 만들 수 있다. 로 정리하겠습니다. 그럼 오늘 글은 여기에서 마치겠습니다 :) 소통할 부분 있다면 언제든 댓글 남겨주세요. 감사합니다!
오늘은 빅쿼리에서 사용하는 Array , 그리고 Array 하면 빠질 수 없는 Unnest 에 대해 알아보겠습니다 [Array 란 무엇일까] 빅쿼리 UI 상으로는 'Repeated' 라고 표현되는 것이 바로 Array 인데요, 예를 들어서 간단하게 아래 같은 구조의 도표가 있다고 생각해볼게요. 사람마다의 취미와 직업이 써져 있죠. 이렇게 각 1 사람당 1개의 취미 , 1개의 직업만 있다면 array 구조는 불필요합니다. 근데 취미가 여러개라면 ? 아래 이미지처럼 name 과 job 이 있던 행이 hobby가 늘어남에 따라 행이 5개였던게 8개로 늘어났죠. 지금은 예시이다 보니 5개 행이 8개로 늘었지만 수가 훨씬 많다면 공간 차지면에서 비효율적일수도 있고, 이후에 데이터를 추출할 때도, hobby 가 여러개 있다는걸 모르는 사람이라면 원하는 것과 다른 데이터를 가지게 될 수 도 있죠. 이럴 때 활용할 수 있는게 array 입니다. 아래 이미지를 보시면 array를 사용하면 hobby 가 여러개 있더라도 name 1명에게만 행이 생성되었습니다. 이렇게 한 개의 행에 특정 데이터들이 여러개 저장되면서, 데이터가 세로로 저장되 것이 Array 입니다. 참고로 빅쿼리에서 JSON 형식으로 아래와 같이 확인할 수 있습니다. [Array 를 만드는 방법] Array 를 만드는 방법은 여러가지가 있습니다. [1] 대괄호 select 'HAYEON' name , ['십자수', '헬스장'] hobby , '공무원' job [2] ' Array <타입>' + [대괄호] select 'HAYEON' name , Array ['십자수', '헬스장'] hobby , '공무원' job [3] Generate 함수 GENERATE_ARRAY (시작 숫자 , 마지막 숫자 , 간격) select GENERATE_ARRAY(2,20,4) GENERATE_ARRAY GENERATE_DATE_ARRAY (시작 날짜 ,마지막 날짜 ,간격) select GENERATE_DATE_ARRAY('2024-07-01','2024-08-01',interval 1 week) GENERATE_DATE_ARRAY [4] Array_agg 사용 ARRAY_AGG with hobby_table as (select '십자수' as hobby union all select '뜨개질' as hobby union all select '클라이밍' as hobby union all select '게임' as hobby union all select '요가' as hobby union all select '영상 제작' as hobby ) select array_agg(hobby) as hobby_array from hobby_table ARRAY_AGG는 나중에 자주 쓰게되는 것 같아서 좀 더 연습해볼게요 :) 위의 예시에서는 array 안에 넣을 항목들을 with 구문에 만들어 두었었는데 만약 저장되어 있는 테이블에서 array_agg 를 써야한다면 어떻게 해야할까요? 가장 처음에 가지고 있던 테이블을 보면 이렇게 되어 있는데, 만약..... 여기 있는 인물들이 직업이 바뀌는 상황이 있었다면? 연도별로 직업이 달라져야하지 않을까요? 또 중간에 취미가 바뀌거나 사라졌을 수도 있겠죠? 한번 아래처럼 표를 수정해보았어요. 2023년에서 2024년이 될 때 Hayeon , Yeji , Hyunji 는 job 에 변화가 있었고, Jiyounh 은 hobby 가 2개에서 1개로 줄었습니다. 이 테이블에 yerar ,name,job 은 group by를 , hobby 와 job엔 array_agg 을 써볼게요 SELECT year, name, job, array_agg(hobby) hobby, FROM `boheetest.SQL_Tableau.example` group by year,name,job 이런식으로 array_agg 를 써줄 수 있습니다 :) [Array 에 있는 값을 가져오는 방법 (1) 배열의 순서로 가져올 때] array 에 있는 값은, 배열의 순서를 지정해서 가져올 수 있습니다. 이때, 숫자를 0부터 셀지 1부터 셀지에 따라 쓰이는 명령어가 다른데 Offset > 0부터 Ordinal > 1부터 입니다. *만약 이 순서에 대해 숫자를 썼는데 그 값이 없었다면 오류가 발생하겠죠? 이런 경우를 대비해선 SAFE_OFFSET, SAFE_ORDINAL 을 사용할 수 있고, 값이 없으면 NULL 로 채워집니다. 아래와 같은 ARRAY 가 있다고 하면 Offset > 0부터/ Ordinal > 1부터니까 array_agg(hobby)[SAFE_OFFSET(0)] as hobby_array > '십자수' array_agg(hobby)[SAFE_OFFSET(1)] as hobby_array > '뜨개질' array_agg(hobby)[SAFE_OFFSET(3)] as hobby_array >'게임' array_agg(hobby)[SAFE_ORDINAL(0)] as hobby_array > 'NULL' array_agg(hobby)[SAFE_ORDINAL(1)] as hobby_array > '십자수' array_agg(hobby)[SAFE_ORDINAL(3)] as hobby_array > '클라이밍' 여기까지 이렇게 array 에 대해 알아보았는데요, array 하면 빠질 수 없는게 바로 unnest 이죠, 이어서 같이 알아보겠습니다! [Array 에 있는 값을 가져오는 방법 (2) Unnest] 위에서 있었던 테이블은 사람마다의 취미와 직업이 있었죠, 그럼 이 중에서 '취미가 게임인 사람' 을 조회하고 싶어서 where 절로 필터를 걸었다면 어떻게 될까요? <오류 발생 화면> No matching signature for operator IN for argument types ARRAY and {STRING} at [13:13] No matching signature for operator = for argument types: ARRAY, STRING. Supported signature: ANY = ANY at [14:7] 아래 쿼리에서는 'in' 을 써도 '=' 를 써도 비슷한 오류가 발생합니다. with table as ( select 'HAYEON' name , Array ['십자수', '헬스장'] hobby , '공무원' job Union all select 'YEJI' name , ['뜨개질','게임'] hobby , '주부' job Union all select 'MINJI' name, ['게임'] hobby , '직장인' job Union all select 'HYUNJI' name , ['필라테스','영상제작'] hobby , '대학생' job Union all select 'JIYOUNG' name , ['요가','클라이밍'] hobby , '직장인' job ) select * from table where hobby in ('게임') 그 이유는 지금 hobby 는 array 에 있는데, '게임' 이라는 string 값과 같은지 다른지조차 비교할 수 없기 때문이에요. 이럴때 필요한 것이 바로 unnest 입니다. unnest 는'평면화'라고도 불리는데요, 뜬금없을 수 있지만 한번 엑셀의 셀 병합을 떠올려볼까요? 좌측이 일반적인 도표이고, 우측은 제가 같은 값들로 셀 병합을 한 상태인데요, 종종 병합된 셀에서 엑셀의 특정 기능을 실행할 때 이런 경고창과 함께 실행이 되지 않았던 경험 한번씩은 있으시죠? 이게 어떻게 보면 unnest 의 필요성 이에요. 현재 셀들이 같은 기준점에서 처리가 불가능한 상태이기 때문에 다 같은 구조로 만들어줘야만 (엑셀에서는 셀의 크기가 동일해야만) 하는 것이죠. 병합된 셀을 다시 기본 형태처럼 , 즉, array 로 묶인 형태 ( = 병합된 셀) 를 푸는 것이 unnest 입니다. [Unnest 사용 시 주의할 점] unnst 를 사용할 때 꼭 유의하셔야 하는 부분은 '행의 갯수가 늘어날 수 있다' 는 점 이에요. 예를 들어서 위에 나온 인물들이 물건을 구매했고, 그 구매한 물건들이 array 형태인 테이블이 있다고 생각해볼게요. 이렇게 보면 각 사람별로 product_price 의 총 합과 total_price 값이 동일하죠? 근데 이 테이블이 만약 unnest 되었다면 아래처럼 total price 가 모든 행마다 붙게 되면서 원치 않는 total_price 값을 얻게될 수도 있어요. 실제로 ga 를 다룰 때 자주 발생하는 이슈이기도 하니 데이터 구조를 잘 파악하면서 사용해야 합니다 :) 그럼 오늘은 여기까지 array 와 unnest 에 대해 알아보았는데요, 다음 글에서는 struct 에 대해 정리해보고, 그 용법들을 ga 데이터에서 활용하는 방법에 대해 공유드리도록 할게요! 함께 소통하면 좋은 부분 있으시면 언제든 댓글 남겨주세요! 감사합니다 :)
오늘은 GA4에서 참여와 이탈에 대해 알아보겠습니다. GA를 사용하시는 분들은 아시겠지만, UA에서 GA4로 전환됨에 따라 이탈의 개념이 달라지고 참여라는 개념이 새롭게 생겼습니다. GA4 이탈을 설명하기 전에, 먼저 UA에서의 이탈 개념을 짚고 넘어가려 합니다. UA에서 이탈이란 사용자가 웹사이트에 방문하여 특정 페이지만 보고 다른 페이지를 이동하지 않은 상태에서 종료된 세션을 의미하고, 이러한 세션이 발생한 비율을 이탈률로 계산합니다. (이탈 세션 수 / 총 세션 수) UA 시절에는 세션 내에서 페이지뷰 혹은 이벤트와 같이 조회가 1번만 발생한 단일 조회 세션을 이탈로 간주했습니다. 예를 들어 2분 동안 특정 상품 상세 페이지에 머물렀다가 나가버리면 이탈한 것으로 집계합니다. 즉, 특정 페이지에서 아무런 상호작용 없이 오래 머무르면 이탈로 쉽게 정의해서, 일반적으로는 이탈률이 높게 나왔습니다. (GA4에서는 이러한 상황을 참여했고 이탈이 아니라고 계산함) GA4에서는 이탈은 오로지 참여의 반대 개념으로만 존재하기 때문에, 참여를 알아야 이탈을 알 수 있습니다. 새롭게 등장한 참여의 정의는 다음과 같고, 조건 중 하나만 만족하더라도 참여에 해당됩니다. 1. 세션 10초 이상 지속 2. 페이지 조회 혹은 화면 조회 2회 이상 발생 3. 전환 이벤트 발생 예를 들어 사용자가 웹사이트 방문 후 9초 동안 페이지를 조회하거나, 페이지뷰가 1회 발생하거나, 구매 이벤트가 발생하지 않는 경우, 즉 참여 세션이 아닌 경우 GA4에서는 이탈로 간주하는 것입니다. 그리고 이러한 세션이 발생한 비율을 참여율로 계산합니다. (참여 세션 수 / 총 세션 수) 따라서 GA4에서 이탈률은 참여하지 않은 세션의 비율을 나타내며, 참여율의 역수입니다. (1 – 참여율 = 이탈률) UA와는 달리 GA4에서는 참여 세션이라는 새로운 측정값을 통해 웹이나 앱에서 적극적으로 상호작용한 세션과 사용자를 보려고 하는 의도를 파악할 있습니다. 한편 GA4에서는 user_engagement 이벤트로 사용자의 참여 정보를 수집하는데요. user_engagement 이벤트는 사용자가 페이지와 상호작용한 후 사이트에서 머문 시간을 측정하기 위해 자동으로 수집됩니다. 아래와 같은 조건일 때 engagement_time_msec 이라는 매개변수가 전송되어 사용자가 웹사이트에 얼마나 오래 머무르고 있는지 측정할 수 있고, engagement 사이의 시차를 밀리초 단위로 계산합니다. 1. 사용자가 앱 화면을 배경으로 이동한 경우 2. 사용자가 웹페이지로부터 포커스를 옮긴 경우 3. 사용자가 앱 화면이나 웹페이지를 벗어난 경우 4. 사이트 또는 앱이 비정상으로 종료된 경우 GA 고객센터에 나와있는 예시를 살펴보겠습니다. engagement_time_msec 매개변수가 수집되려면 이전 engagement와 이후 engagement가 있어야 하는데요. 스크롤, 다른 페이지로 이동 시 발생하는 이벤트에 따라 붙는 engagement_time_msec 파라미터를 통해 사용자가 사이트에 얼마나 머물렀는지 그 시간을 알 수 있습니다. 첫 번째 홈페이지 방문의 경우(first_visit, session_start) 이전 engagement 정보가 없기 때문에 engagement_time_msec 매개변수가 수집되지 않았음을 확인할 수 있습니다. 참고 1. UA vs GA4 이탈률 의미 변화 https://support.google.com/analytics/answer/11986666#bounce_rate_vs_engagement_rate&zippy=%2C%EC%9D%B4-%EB%8F%84%EC%9B%80%EB%A7%90%EC%97%90%EC%84%9C%EB%8A%94-%EB%8B%A4%EC%9D%8C-%EB%82%B4%EC%9A%A9%EC%9D%84-%EB%8B%A4%EB%A3%B9%EB%8B%88%EB%8B%A4 2. 사용자 참여 발생 시간 https://support.google.com/analytics/answer/11109416?hl=ko&sjid=8087952378343480112-AP
GA4 를 사용한다는 것은 우리 웹 사이트에 방문한 사람들의 행동 양상에 대해 궁금증이 많은 분들일 것 같은데요, "얼마나 많이 들어왔을까" --- (세션수 , 사용자 수 등) "어떻게 들어왔을까" --- (소스 /매체) "어떤 행동을 했을까" --- (이벤트) 오늘은 이 "어떤 행동을 했을까" 와 관련되어서 , 특히 GA4 에 쌓이는 시간 관련 지표인 Timestamp 관련하여 공유해볼까 합니다. [Unix timestamp] 우선 타임 스탬프에 대한 이야기를 짧게 하고 들어갈까해요. 이름 자체로 timestamp 는 '시간 도장' 인데 1970년 1월 1일 00:00:00 UTC 로부터 현재까지의 누적된 초(seconds) 값을 의미해요. 유닉스를 개발한 연구소에서 만든 지표인데 일반인이 보기엔 이렇게 길고 알아보기 힘든 값이죠 '1722783606516394' 그래서 시점 확인이 필요할 때가 있으면 보통은 이렇게 전환기에 값을 넣어서 확인합니다 전환기 예시 링크 : https://time.is/ko/Unix%20time%20converter 저희는 이 유닉스 타임스탬프 형태로 생긴 ga4 의 시간 값들을 알아볼거에요. [유저가 언제 처음 사이트에 들어왔을까 - user_first_touch_timestamp] 만약 유저가 처음으로 사이트에 들어온 시점이 궁금하다면 user 필드에 있는 'user_first_touch_timestamp' 를 사용할 수 있습니다. 출처 : [GA4] Bigquery Export 스키마 : https://support.google.com/analytics/answer/7029846?hl=ko#zippy=%2Cuser 이 부분은 이전 글에서 언급했던 부분과 같이 생각할 수 있는데요, 이전글 : http://googleanalytics360.com/board/view.php?bo_table=googleanalytics&wr_id=90&page= user_pseudo_id 라는 지표가 첫 유입시의 time_stamp 를 활용해서 만들어진 값이라는 점 이죠, 실제 쿼리에서 확인해보면 user_first_touch_timestamp 값이 user_pseudo_id에서 사용되고 있는 것을 확인할 수 있습니다. (*다만, 아래에서 테스트를 해보면서 조금 다른 경우도 있을 수 있다는 걸 공유드릴 예정입니다) [세션은 언제 시작되었을까?] 세션이 시작된 시점은 ga_session_id 라는 지표에 수집되고 있습니다. 쿼리에서 꺼내 써야한다면 (select value.int_value from unnest(event_params) where key = 'ga_session_id') 이렇게 event_params 를 unnest 해주면 됩니다. 궁금증! 그럼, 첫 번째 들어온 세션의 시점(ga_session_id) 은 위에서 언급한 '유저의 첫 방문 시점의 시점인' user_first_touch_timestamp 와 동일하지 않을까? 하는 궁금증이 생겨서 first_visit 이벤트 필터를 걸고 비교를 해보았습니다. 그랬더니 결과는 위의 user_first_touch_timestamp 예시처럼 같은 경우도 있지만, 아래 이미지처럼 미묘하게 다른 경우들도 확인 되었어요. ga_session_id : 1722783605 user_first_touch_timestamp : 1722783606516394 user_pseudo_id:1675675245.1722783605 유닉스 타임 스탬프 변환기에 user_first_touch_timestamp : 1722783606516394 , ga_session_id: 1722783605 값을 넣어보면 1722783606516394 값은 인식을 못해서 '1722783606' 까지 넣었을 때 Mon Aug 05 2024 00:00:06 UTC+0900 (한국 표준시) 라고 나왔고, 1722783605 값은 Mon Aug 05 2024 00:00:05 UTC+0900 (한국 표준시) 라고 나왔습니다. ga_session_id 값이 1초 정도 user_first_touch_timestamp 값 보다 빨리 생성된 것으로 보여요 결론적으로는 아래와 같이 정리하였습니다. "이론상으로는 가장 첫번째 세션이 시작한 시점과 유저의 첫 진입 시점은 동일해야하지만 실제 수집된 값으로는 미세하게 차이가 있을 수 있고, user_pseudo_id 에 쓰인 시간 값은 ga_session_id 의 값을 사용해 생성된다고 하는게 더 맞는 것 같다." [이벤트는 언제 발생한 것일까?] 위에서 나온 timestamp 들은 유저의 첫 방문 (user_first_touch_timestamp) , 세션의 시작 (ga_session_id) 값이였죠 마지막으로 알아볼 것은 event_time_stamp 입니다. ga4 에서 이벤트 옆에 바로 수집되는 값이에요. 해당 값은 각 이벤트마다 수집되고, unnest 도 필요 없이 바로 값을 가져올 수 있습니다. [Timestamp 값 활용하기] 그럼 위에서 배운 값들을 어떤식으로 활용할 수 있을까요? 1. 데이터 검수 > 특정 브라우저에서 이벤트들을 발생시키면서 이벤트 정상 수집 여부를 체크해야할 때 본인 (혹은 특정인의) CID (=user_pseudo_id) 를 필터로 하고, event_timestamp 로 정렬해주면 그 cid 에서 발생한 이벤트들을 시간 순서로 확인할 수 있습니다. SELECT * FROM '데이터 소스` WHERE user_pseudo_id = '체크하려는 CID' order by event_timestamp 2. 유저 세그먼트 구할 때 > 유저 세그먼트에 대한 조건을 만족한 데이터를 추출할 수 있어요 만약 "특정 페이지를 조회했으면서 구매까지 한 유저 세그먼트' 를 구하고 싶다면 아래처럼 where 절에 user_pseudo_id in (특정 페이지 조건 + purchase 이벤트 인 경우에 대한 쿼리식) 으로 활용할 수 있죠. select user_pseudo_id , (select value.int_value from unnest(event_params) where params.key='ga_session_id') as sid, ecommerce.transaction_id FROM `데이터 소스` where user_pseudo_id in ( SELECT user_pseudo_id FROM `데이터 소스` where (select value.string_value from unnest(event_params) where key = 'page_location') like '%페이지 필터%') and event_name = 'purchase' order by user_pseudo_id, sid 그 외에 다른 예시들은 이후에 또 추가해볼게요 :) 그럼 오늘은 여기서 ga4 를 빅쿼리에 연결했을 떄 활용할 수 있는 유저 / 세션 / 이벤트에 대한 timestamp 값을 알아보았습니다. 함께 소통하면 좋을 내용 있다면 언제든 댓글 남겨주세요! 감사합니당
오늘은 GA4에서 빅쿼리를 연동하는 방법에 대해 알아보자! STEP 1. 빅쿼리를 연결할 계정에서 'Bigquery 링크'클릭 STEP 2. 연결 버튼 클릭 STEP 3. 빅쿼리 프로젝트를 선택한다 *이 때 국가는 꼭! '서울' 로 지정 필수 <빅쿼리 내 구성> (노랑) 프로젝트 > (초록) 데이터셋 > (파랑) 테이블 우측의 '빅쿼리 프로젝트 선택하기' 에서 본인의 프로젝트를 선택하자 STEP 4. 설정 구성을 선택한다 <하단의 '매일' 과 '스트리밍' 의 차이> 매일 (Daily) : 하루에 1번 실시간 데이터(스트리밍 테이블) 에 *정제된 데이터가 쌓이는 것 *정제된 후의 데이터: 앱 데이터의 경우 실시간으로 데이터를 쏘지 않고 모아 놨다가 쏘기 때문에 오전 9시에 발생한 이벤트가 오후 8시에 빅쿼리데일리 테이블에 쌓이는 등 불규칙한 시간에 데이터가 업데이트 되는 경우가 있음 스트리밍 테이블 (Intraday) : 실시간으로 쌓이고 있는 테이블 , 데일리 테이블이 생성되고 나면 그 날의 스트리밍 테이블 값은 사라진다 STEP 5. 빅쿼리 연결 완료! (FIN) 연결이 완료되면 실제 빅쿼리에서 다음과 같이 테이블들이 생성되어 있다. 그럼 오늘은 이렇게 GA4 에서 빅쿼리를 연결하는 방법을 STEP BY STEP 으로 공유드렸습니다 :) 궁금하시 부분 있으시면 언제든 댓글 남겨주세요 ~
구글 애널리틱스를 다룰 때 가장 많이 보게되는 지표 중 하나는 '세션수'다. 누군가에게 단순하게 '세션수가 무엇이냐'에 대해 답한다면 '웹 사이트 혹은 앱에 발생한 유입수' 라 단순화 할 수 있지만 정의와 관련해서 좀 더 파보면 단순 '유입' 보다 신경써야하는 부분이 많다 <구글 애널리틱스 공식 도움말 참고> https://support.google.com/analytics/answer/9191807?hl=ko 우선 구글 애널리틱스의 백과사전 같은 존재인 도움말에서의 세션수 정의는 다음과 같다. "세션은 사용자가 웹사이트 또는 앱과 상호작용하는 기간입니다." 그럼 어떤 상황에서 사용자가 '상호 작용 했다' 고 인지될까? [세션으로 집계되는 상황] GA4 도움말에 의하면 세션이라 인식되는 대상은 다음과 같다. "애널리틱스에서는 사용자가 포그라운드에서 앱을 열거나 페이지 또는 화면을 보고 현재 활성화된 세션이 없을 때 세션이 시작되고, 기본적으로 세션은 사용자의 활동이 멈춘 후 30분 뒤에 종료(타임아웃)됩니다." 즉, 현재 진행되고 있는 세션이 없는 상태에서 사이트에 들어오면 세션이 시작되고, 다른 이벤트들이 발생되지 않은지 30분이 지나는 시점에 세션이 끝난다. *이 30분 조건은 GA4 관리 창에서 조정할 수 있음 예를 들어서 위처럼 유저 A 가 유튜브 광고를 클릭해서 해당 사이트에 들어갔다가 30분이 지나지 않은 시점에 다시 네이버 검색으로 사이트에 접속하게 되면 유저 A 는 1개의 세션에 유튜브 / 영상 광고 , 네이버/검색 광고로 유입되었다는 정보가 수집된다. 그럼 이어서 좀 더 DEEP 하게 세션수가 어떤 구조로 실제 GA4 에 수집되고 있고, 세션수는 어떻게 (빅쿼리에서) 집계되는 것인지 이어서 알아보자 [빅쿼리를 써야하는 두 가지 중요한 이유] 만약 빅쿼리에 대한 니즈 없이 GA4 데이터 소스만 활용한다면 GA4의 탐색 보고서 혹은 루커 스튜디오 정도만으로도 충분하다. 하지만 빅쿼리를 사용하게되면 아래의 강력한 장점이 있다. 1) 할당량과 무관하게 데이터 시각화 가능 *할당량 이슈란? GA4 의 데이터를 실시간으로 보고서에 불러올 때 프로젝트 별, 시간별, 동시요청 시에 대한 할당량에 제한이 있어 보고서 생성시의 제약 . (빅쿼리 연결 없이 GA 데이터 소스를 그대로 사용할 때 발생 ) *참고: https://developers.google.com/analytics/devguides/reporting/data/v1/quotas 2) 실시간 RAW 수집 데이터 확인 가능 GA4에 빅쿼리를 연동하게 되면 GA4 데이터를 위해 빅쿼리에 프로젝트 , 데이터셋 , 테이블이 자동으로 생성되는데 그 중 events 테이블은 약 1일에 1번 정제된 데이터가 쌓이는 곳이고 intraday 가 당일의 실시간 데이터가 쌓이므로 해당 테이블에서는 방금 내가 이벤트를 발생시켰더라도 데이터 전송 여부를 바로 확인할 수 있게 된다. 위의 빅쿼리의 장점을 활용하기 위해 빅쿼리를 연결한 상태라면 session 데이터의 수집 구조를 알아보자 :) [빅쿼리에 쌓이는 세션 관련 데이터] 결론적으로 말하면 빅쿼리에서 세션수는 user_pseudo_id 와 session_id 를 결합해서 만든다. *GA 도움말에도 아래처럼 명시되어 있음 우선 해당 가이드에 언급되어 있는 session_id , user_pseudo_id 에 대해서 알아보자. [ga_session_id (session_id] 빅쿼리에 연결된 ga 데이터에서 session_start 라는 이벤트를 where 절로 걸어서 확인해보면 SELECT * FROM `ga 데이터` where event_name = 'session_start' event_params 에 'ga_session_id' 라 해서 요리보고 저리봐도 session 관련 구분자로 보이는 값이 하나 있다. session_start 는 말 그대로 세션이 시작될 때 ga 에서 자동으로 수집해주는 이벤트인데 ga_session_id 는 이 '세션이 시작된 시점 값' 이다. 인터넷에 'Unix timestamp 변환기' 라 검색하고 ga_session_id 값을 넣으면 아래처럼 시간으로 변환 되는걸 볼 수 있다. 이 ga_session_id 값은 session_start 외에 다른 이벤트들에도 따라다니면서 이후 발생하는 이벤트들이 어느 session_id 에서 발생한건지 구분해준다. 근데 위에서 지금 session_start 라는 이벤트도 있고,ga_session_id 라는 세션을 위한 구분자도 있는데 왜 굳이 ga_session_id + user_pseudo_id 를 결합해서 세션수를 집계할까? 그 이유는 1) session_start 가 누락 수집 되는 경우가 있을 수 있음 프로젝트를 하면서 ga 의 자동 수집 이벤트가 발생하지 않는 경우들도 확인했었고, 실제로 구글 애널리틱스 도움말에서도 세션 id 와 session_start 가 연결되지 않았을 수 있다고 한다 2) ga_session_id 만으로는 고유한 식별자가 될 수 없음 위에서 언급한 것 처럼 ga_session_id 는 세션이 시작된 시점의 time_stamp다. 만약 엄청 낮은 확률일지라도, 유저가 많이 접속하는 사이트 혹은 앱에서 조금의 시간차이 없이 동시에 접속 하는 사람이 있었다면? ( 국민 6%가 몰린 동탄역 롯데캐슬 로또 청약 신청일의 청약홈을 상상해보자^^) 그 사람들은 같은 ga_session_id 를 갖게 되니 고유한 값이라 할 수없다. 그럼 user_pseudo_id 가 무엇이길래 ga_session_id와 결합해서 세션수를 카운트하는 고유값으로 으로 사용하는걸까? [user_pseudo_id란?] user_pseudo_id를 이해하려면 ga 의 쿠키를 이해해야한다. 쿠키는 '쿠키 수집 동의' 등등 여러 알람이 있으니 많은 사람들이 익숙한 용어인데 단순히 표현하면 해당 사이트에 다녀간 흔적을 남기는 표시다. GA 역시 그런 쿠키 값들을 수집하는데 "웹 페이지 우클릭 > 검사 > 개발창 > 애플리케이션" 에서 확인할수 있다. 지금 _ga 라는 쿠키에 'GA1.1.141576118.1662352900'가 수집 되어 있다 GA 빅쿼리에 있는 user_pseudo_id 가 바로 이 쿠키의 141576118.1662352900 값이다 이 값은 브라우저와 기기별로 부여되는 고유값과, 해당 쿠키값이 생성된 시점 , 즉, 첫 유입시의 time_stamp 가 결합되어 있는 값이다. 예를 들어서 운 좋게 어떤 한 사람이 컴퓨터와 핸드폰으로 각각 크롬, 빙 같이 다른 브라우저를 동시에 들어가게 되면 time_stamp 는 같더라도 기기. 브라우저 등 다른 고유 값이 있으니 user_pseudo_id 는 총 4개가 생성된다. 이처럼 user_pseudo_id 는 이처럼 기기, 브라우저 단위로 생성되는 고유값이고 ga_session_id 는 특정 세션이 시작된 시점에 대한 고유값이니 이 두개를 결합하면 기기,브라우저별로 특정 세션이 발생할 때마다 카운트할 수 있는 고유값이 된다 [빅쿼리 세션수 집계 쿼리식] 그럼 마지막으로 위에서 알게된 내용들을 토대로 실제로 쿼리를 통해 세션수를 집계할 수 있다 SELECT count(distinct (concat(user_pseudo_id,'.',(select value.int_value from unnest(event_params) where key = 'ga_session_id')))) FROM `ga 데이터 소스` *'ga_session_id' 값을 왜 아래처럼 표현하는지 궁금하다면? 아래 글을 참고해주세요! (select value.int_value from unnest(event_params) where key = 'ga_session_id') [GA4] GA4 데이터, 빅쿼리 Array/Struct/Unnest 활용하여 조회하기
오늘은 GA4의 데이터 Scope과 세그먼트 3가지 유형에 대해 이야기해보려고 합니다. GA4에서 수집한 데이터를 다음과 같이 4가지 Scope으로 나눌 수 있습니다. 1. 사용자 스코프(User Scope) : 사용자의 행동과 속성을 추적하기 위해 사용하며, 특정 사용자와 관련된 모든 이벤트를 결합하여 사용자의 행동 패턴을 이해하는데 유용한 데이터 수집 단위입니다. 2. 세션 스코프 (Session Scope) : 한 세션 내에서 발생하는 모든 이벤트를 그룹화하고, 특정 세션 동안 사용자가 웹사이트에서 어떻게 상호작용했는지 분석하는 데 유용한 데이터 수집 단위입니다. 3. 이벤트 스코프 (Event Scope) : GA4에서 가장 기본적인 데이터 수집 단위로, 이벤트는 페이지 조회, 메뉴 클릭, 버튼 클릭과 같이 웹사이트에서 발생하는 사용자의 모든 상호작용을 의미합니다. 특히 이벤트를 부연 설명할 수 있는 이벤트 파라미터와 함께 사용하여 분석합니다. 4. 상품 스코프 (Item Scope) : 전자상거래와 관련된 데이터로 제품 성과를 분석하고자 할 때 사용하고, 상품 ID, 상품명, 상품 카테고리, 가격, 색상 등의 정보가 상품 스코프 데이터에 포함됩니다. 이커머스 이벤트 수집 시 발생하는 데이터레이어 중, items 배열 안에 묶여 있는 item_id, item_name, price, quantity, item_category 등 값들이 상품 스코프에 속하는 데이터라고 보면 됩니다. 데이터 Scope을 아래와 같이 구조화해 볼 수 있습니다. 사용자 > 세션 > 이벤트 순서로 큰 단위이고, 상품 스코프의 경우 select_promotion, view_item 같이 이커머스 이벤트일 때 상품 데이터를 확인할 수 있습니다. 여기까지 잘 이해하셨다면, GA4에서 세그먼트를 조금 더 수월하게 사용할 수 있을 것입니다. 세그먼트 유형도 데이터 Scope을 기준으로 크게 사용자 세그먼트, 세션 세그먼트, 이벤트 세그먼트로 나뉘어집니다. 우선 세그먼트에 대해 짚고 넘어가겠습니다. 세그먼트(Segment)는 특정 조건을 만족하는 집합을 의미하는데요. GA4에서는 사용자, 세션, 이벤트로 구분하여 특정 조건을 만족하는 집합을 분석하기 위해 세그먼트를 활용합니다. 예를 들어, 특정 페이지를 방문한 사용자, 특정 이벤트를 발생시킨 사용자 등을 세그먼트로 정의할 수 있습니다. GA4 탐색 보고서에서 세그먼트 추가를 클릭하면, 아래와 같이 3가지 유형을 볼 수 있습니다. 1. 사용자 세그먼트(User Segment) : 특정 행동이나 특징이 있는 사용자 그룹을 정의할 때 사용합니다. 예를 들어 장바구니에 상품은 담았지만 구매를 하지 않은 유저를 보고자 할 때 사용할 수 있습니다. 2. 세션 세그먼트(Session Segment) : 특정 조건을 만족하는 세션 그룹을 정의할 때 사용합니다. 주로 특정 캠페인이나 소스/매체로 유입된 경우를 보고자 할 때 사용할 수 있습니다. 3. 이벤트 세그먼트(Event Segment) : 특정 위치에서 발생하는 이벤트를 정의할 때 사용합니다. (이벤트 세그먼트는 잘 사용하지 않는 편입니다.) 구조화된 데이터 Scope을 떠올려보면, 세그먼트 유형을 아래와 같이 정리해볼 수도 있습니다. - 사용자 세그먼트에서는 동일 사용자, 동일 세션, 동일 이벤트를 포함 - 세션 세그먼트에서는 동일 세션, 동일 이벤트를 포함 - 이벤트 세그먼트에서는 동일 이벤트를 포함 이처럼 세그먼트 유형에 따라 가져오는 데이터의 범위가 달라져 데이터의 모수가 달라지므로, 세그먼트 분석 시 유의하시길 바랍니다. 마지막으로 세그먼트 유형별로 가지는 조건 범위에 대해 알아보겠습니다. - Across all sessions : 사용자가 조회 기간 내 한 번이라도 설정한 조건을 만족했다면 포함됩니다. 특히 사용자가 여러 세션에 걸쳐 특정 페이지를 한 번 이상 방문했거나, 특정 이벤트를 한 번 이상 발생시켰는지를 확인할 때 유용합니다. - Within the same session : 하나의 세션 내에서 설정한 조건을 만족했다면 포함됩니다. 사용자가 특정 세션 내에서 특정 페이지를 방문하거나, 특정 이벤트를 발생시켰는지를 확인할 때 유용합니다. - Within the same event : 동일한 이벤트 내에서 설정한 조건을 만족했다면 포함됩니다. 특정 페이지에서 발생한 이벤트를 확인할 때 유용합니다. 시퀀스 조건으로 시간 순서대로 일련의 행동 데이터를 볼 수 있고, 이는 유저 범위 세그먼트에서만 설정 가능한 점 참고하시면 좋을 것 같습니다.
구글에서 제공하는 SDK를 통해 GA4 보고서 데이터를 얻을 수 있습니다. 설치 가이드: https://github.com/googleapis/google-cloud-python/blob/main/packages/google-analytics-data/README.rst#installation 모듈 import GCP 인증 우선 dict 형태 또는 json 파일 형태의 Service Account를 읽어 구글 클라우드 플랫폼에 인증 과정을 거칩니다. 서비스 어카운트에는 Analytics Data API 사용 권한이 있어야 합니다. API 요청 폼 생성 기본적인 요청 폼 클래스 인스턴스를 생성합니다. 폼 생성 가이드: https://developers.google.com/analytics/devguides/reporting/data/v1/basics?hl=ko#generate_a_report REST API 가이드 : https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runReport?hl=ko#request-body 실행 및 데이터 확인 date필드의 경우 "yyyymmdd" 포맷으로 나오므로 필요할 경우 위와 같이 원하는 포맷으로 가공할 수 있습니다. 모든 메트릭은 String 형태이며 숫자로 나오는 메트릭도 Numeric String 형태로 나옵니다. 필요할 경우 int 타입으로 캐스팅 후 사용할 수 있습니다. response 인스턴스에서 row_count 애트리뷰트를 보면 현재 요청한 보고서의 총 row 개수를 얻을 수 있습니다. 만일 현재 뽑은 데이터 수가 row_count보다 적다면 offset 파라미터를 현재 limit 값으로 입력하여 다음 페이지의 데이터를 얻을 수 있습니다.
[Google Analytics4] 구글애널리틱스4 커뮤니티입니다. 구글애널리틱스관련 정보를 공유 해 주세요! 안녕하세요, GA4 세그먼트에 대해 공부한 내용을 작성해보겠습니다. 틀린 부분이 있더라도 양해 부탁드리고, 잘 알려주시기 바랍니다. 1. 세그먼트의 정의 세그먼트란 전체 집합 중 조건을 만족시키는 한 집단을 뜻합니다. GA4의 보고서에서 여러 조건을 세팅해서 특정 집단에 대해 인사이트를 얻고 싶을 때 유용하게 사용이 가능합니다. 2. 세그먼트의 종류 사용자 세그먼트: 조건에 해당하는 사용자의 집합 세션 세그먼트: 조건에 해당하는 세션의 집합 이벤트 세그먼트: 조건에 해당하는 이벤트의 집합 3. 맞춤 세그먼트 설정 포함조건: and / or 조건 설정 가능 제외조건: 일시적 / 영구적 제외 가능 4. 조건 범위 모든 세션: 동일 조건 그룹 내 조건 A,B가 있을 경우 각 조건이 동일 세션 내에 발생 했는지, 동일 이벤트 내에 발생했는지는 중요치 않고 조건 충족 동일 세션 내: 동일한 세션 내에서 조건 충족 동일 이벤트 내: 조건 A, B가 하나의 이벤트에 충족 5. 시퀀스 추가 순서를 설정하여 이벤트가 발생한 단계별로 구분 가능 세그먼트의 기본적인 내용에 대해 정리해보았습니다. 다음에는 실제 전자상거래 사이트 보고서에서 세그먼트를 만들어 실습한 내용을 바탕으로 좀 더 자세한 내용을 다뤄보겠습니다. 감사합니다.
구글 디맨드젠 (구 디스커버리) 광고는 구글의 디스커버, Youtube 홈피드, Gmail 프로모션 및 소셜 탭 등 Google Ads로 캠페인 별 노출 게재 위치 등 광고 셋팅 가능 단, 해당 광고의 경우 Display 형태로 노출 되나 과금 방식이 CPM 또는 CPC와 같이 클릭 당 발생하기 때문에 구글에서 자체적으로 'google / cpc'로 분류함 * 광고 포멧에 따라 CPM 또는 CPC로 측정됨 또한, Google Ads에서 정의하는 디맨드젠 광고 GA4 Channel Grouping 은 'Cross-network' 이며, 그 외 광고는 ad network type에 따라 다른 채널로 분류됨
전체댓글1
자세한 설명 감사합니다. 빠르게 매출을 확인하고 싶을 때 활용할 수 있겠군요