ChatGPT GA4 데이터 분석 보드 30분 만에 만들기

ChatGPT GA4 데이터 분석 보드 30분 만에 만들기

ChatGPT GA4 데이터 분석 보드 30분 만에 만들기

지난 편에서 깃허브 블로그 자동 배포를 다뤘다면, 이번에는 그 블로그에 쌓인 방문자 데이터를 맛있게 요리해 볼 차례입니다.

구글 애널리틱스(GA4)는 다들 한 번쯤 들어가 보지만, 솔직히 화면이 너무 복잡해서 핵심만 한눈에 보기 어렵더군요. 오늘은 GA4에서 다운로드한 방문 페이지 CSV 파일을 넣으면, 3초 만에 깔끔한 Chart.js 그래프와 '이 키워드로 글을 쓰세요'라는 AI 추천 카드까지 보여주는 로컬 웹앱을 만들어 보겠습니다.

준비물은 간단합니다. 구글 애널리틱스(GA4) 계정에서 내려받은 '페이지 및 화면' 보고서 CSV 파일 하나, 그리고 ChatGPT(또는 Claude나 Cursor 중 편한 도구 하나)만 있으면 됩니다.

1
기본 HTML 뼈대 잡기
AI에게 보낸 프롬프트
GA4 CSV 데이터를 입력받아 화면에 테이블로 파싱해 보여주는 index.html 파일을 하나 만들어줘. Chart.js CDN을 미리 포함하고, 깔끔한 다크 톤 디자인으로 레이아웃을 잡아줘.
왜 이렇게 시켰나: 첫 단계부터 차트와 AI 분석까지 한 번에 넣으면 AI가 쉽게 꼬입니다. 일단 뼈대와 CSV 파일 읽기 로직이 제대로 작동하는지부터 가볍게 확인해야 합니다.
2
Chart.js를 연동해 시각화 차트 그리기
AI에게 보낸 프롬프트
업로드된 CSV의 '페이지 뷰 수'와 '사용자 수' 열 데이터를 파싱해서 Chart.js 막대그래프와 꺾은선그래프 2개로 시각화해줘. 가로축은 페이지 경로(URL), 세로축은 수치가 되도록 구현해줘.
왜 이렇게 시켰나: 그래프를 그리는 핵심 로직만 따로 떼어 집중적으로 작성하게 만들어야 오류 없이 부드럽게 돌아갑니다.
3
AI 콘텐츠 추천 피드백 영역 추가하기
AI에게 보낸 프롬프트
대시보드 하단에 'AI 추천 글감 발굴 카드' 영역을 만들어줘. 방문자가 많은 상위 5개 페이지의 제목과 URL을 바탕으로, '다음에 작성하면 좋은 연관 블로그 주제'를 3개 추천해주는 정적 시뮬레이션 로직을 작성해줘.
왜 이렇게 시켰나: 복잡한 API 연동 없이 프론트엔드 단에서 규칙 기반으로 동작하는 아이디어를 얹어서, 바로 써먹을 수 있는 에이전트 느낌을 빠르게 체감하기 위해서입니다.
4
로컬 웹서버 실행하고 결과 확인하기

만들어진 index.html을 더블클릭해서 열어도 되지만, 보안 문제로 CSV 파싱이 막힐 수 있습니다. 터미널을 열고 파이썬 기본 웹서버를 띄워 봅니다.

파이썬 웹서버 실행 명령어:
python -m http.server 8000

웹 브라우저에서 http://localhost:8000에 접속하고 GA4 CSV 파일을 올려봅니다. 3초 만에 다크 모드의 세련된 대시보드가 뜨면서 내 블로그의 인기 글 순위와 추천 키워드가 차트로 시각화됩니다.

여기서 막히면

오늘 만들 것
여기서 막히면
  • 현상: CSV 파일을 업로드했는데 차트가 전혀 그려지지 않고 빈 화면만 유지됩니다.
    원인: 구글 애널리틱스 CSV 파일의 첫 10줄가량에 메타데이터(보고서 이름, 날짜 범위 등)가 포함되어 있어, 파서가 실제 헤더(페이지 경로, 뷰 등)를 찾지 못하고 에러가 나는 경우입니다.
    해결: 메모장으로 CSV 파일을 열어서 첫 부분의 불필요한 메타데이터 행을 지우고 컬럼명이 있는 줄이 첫 행이 되도록 수정하거나, 파싱 코드에서 '페이지 경로' 문자가 포함된 행부터 읽기 시작하도록 프롬프트에 "CSV 첫 행의 메타데이터를 스킵하는 예외 처리를 추가해줘"라고 명확히 지시해야 합니다.
  • 현상: Chart.js 차트가 깨져 보이거나 한쪽으로 심하게 찌그러집니다.
    원인: 부모 컨테이너(div)에 고정된 크기(width, height)나 반응형 옵션(responsive: true, maintainAspectRatio: false)이 빠져 있어서 브라우저 창 크기에 따라 레이아웃이 무너집니다.
    해결: CSS 파일이나 style 태그 안의 차트 컨테이너 영역에 'position: relative; width: 100%; height: 400px;'를 명시하고, Chart.js의 options 설정에 'responsive: true'를 꼭 켜두어야 깔끔하게 렌더링됩니다.
  • 현상: 브라우저 콘솔에 CORS 에러가 뜨거나 파일 리더 에러(FileReader Error)가 발생합니다.
    원인: 파일 선택이 아니라 로컬 경로의 CSV를 fetch API로 직접 읽으려 하거나 로컬 파일 보안 정책(file:///) 때문에 브라우저가 실행을 차단한 경우입니다.
    해결: input[type=file]을 통해 사용자가 수동으로 파일을 드래그앤드롭하거나 선택해서 FileReader API로 로컬 메모리상에서 파싱하게 하거나, 반드시 Python이나 live server 같은 로컬 서버 환경에서 웹앱을 실행해야 안전하게 작동합니다.
다음에 붙여볼 것

다음에 붙여볼 것

한 걸음 더

여기에 ChatGPT API 연동을 붙이면, 매번 정해진 규칙대로 추천하는 대신 실제 내 블로그 글을 읽고 지금 시점에 더 잘 맞는 키워드를 뽑아주는 실시간 소싱 대시보드로 진화시킬 수 있습니다. 다음 편에서는 이 대시보드에 실제로 OpenAI API를 연동해서 분석을 고도화하는 법을 알아보겠습니다.

관련 검색어

  • 🔍 ChatGPT 사용법
  • 🔍 ChatGPT 비교
  • 🔍 GA4 데이터 분석 사용법
  • 🔍 GA4 데이터 분석 비교
  • 🔍 시각화 대시보드 사용법
  • 🔍 시각화 대시보드 비교

댓글 쓰기

다음 이전