성과가 나는 콘텐츠를 발행하고 싶었어요
한국어 웹사이트의 스크린샷
콘텐츠 마케터로 다양한 콘텐츠를 발행하면서 마주하게되는 고민이 있었어요. "이 글이 진짜 효과가 있을까?"
검색 유입이 많은 글과 적은 글의 차이가 뭔지, 다음에 뭘 써야 하는지
데이터는 Mixpanel과 GSC에 다 있는데 그걸 "다음 글 주제"로 연결하는 과정이 빠져 있었습니다.
GSC에서 검색 유입이 잘 나오는 글과, Threads/Instagram에서 반응이 좋은 글이 다르기때문에
Mixpanel 기준 전환 데이터도 참조하는게 중요했는데요. 그러면 채널별 성과를 한 곳에 모아서 비교할 수 있어야 하고, 그 데이터를 계속 쌓으면서 "잘 되는 콘텐츠의 공식"을 잡아가는 것이 목표였습니다!
그래서 콘텐츠 데이터 파이프라인을 직접 만들기 시작했습니다.
데이터가 다음에 쓸 글을 알려주고, 발행 후 성과를 채널별로 추적해서, 그 결과가 다시 다음 판단에 쓰이는 구조. 감이 아니라 루프로 돌아가는 콘텐츠 운영을 만들고 싶었어요.
결론부터 말하면, 지금은 이런 루프가 돌고 있어요
키워드 기회 발굴 → 콘텐츠 작성 → 발행 & 등록 → 성과 추적 → 다음 키워드 발굴
↑ │
└────────────────────────────────────────────────────┘
Step 1: 주간 리포트 자동화
본 데이터는 가상의 숫자와 분석으로 이루어져있습니다.
처음엔 Node.js 스크립트 하나로 시작했어요
가장 먼저 자동화한 건 주간 트래픽 리포트였어요.
Mixpanel에서 WAU, 채널별 유입, UTM 소스를 뽑고, GSC에서 상위 키워드와 기회 키워드를 조회하는 거죠.
가장 가볍게 구현할 수 있는 슬랙봇으로 구현했습니다.
weekly-report.mjs라는 스크립트를 만들었어요. Mixpanel Raw Export API로 이벤트를 가져와서 Python처럼 직접 집계하는 방식이에요.
// Mixpanel Raw Export → JSONL 파싱 → 이벤트 중복 제거
const rawEvents = await mixpanelExport(from, to, ['$mp_web_page_view'])
const events = deduplicateEvents(rawEvents)
const wau = getUniqueUsers(events)
여기에 GSC API도 붙여서 한 번에 JSON을 출력하도록 했어요.
삽질 1: Mixpanel API 3번 갈아탔어요
이게 처음부터 잘 된 건 아니에요. Mixpanel API를 3번이나 바꿨습니다.
믹스패널 무료 플랜을 사용하면 api 사용이 막혀있는데요. 이 문제를 해결하는데 꽤 오랜 삽질을 ...
순서
시도
결과
1차
Segmentation API
유료 플랜 전용이라 403 에러
2차
Raw Export API
되긴 하는데 집계가 안 돼서 데이터가 날것
3차
Raw Export + Python 집계
무료 플랜에서 유료 API와 동일한 결과
핵심 인사이트: Raw Export API는 무료 플랜에서 쓸 수 있는 유일한 데이터 추출 방법이에요.
대신 JSONL 형태의 원시 이벤트가 나오기 때문에, 중복 제거와 집계를 직접 해야 해요.
"Segmentation API가 해주던 걸 코드로 대체한다"는 발상의 전환이 필요했습니다.
Gemini를 "인사이트 엔진"으로 연결
데이터만 모으면 의미가 없잖아요. 그래서 Gemini를 붙여서
데이터를 넣으면 3줄 요약 + 키워드 기회를 뽑아주는 구조를 만들었어요.
# weekly_slack_report.py
context = prepare_gemini_context(data) # WAU, 채널, 키워드 데이터 정리
insights = generate_insights(context) # Gemini가 3줄 인사이트 + 키워드 기회 생성
blocks = build_slack_blocks(data, insights) # Slack 블록 메시지 조립
send_slack(blocks) # #data 채널에 자동 전송
Node.js가 데이터를 JSON으로 stdout에 출력하면, Python이 stdin으로 받아서 Gemini 인사이트를 붙이고 Slack으로 보내는 파이프라인이에요.
본 데이터는 가상의 숫자와 분석으로 이루어져있습니다.
파이프라인 구축 전에 믹스패널 데이터 기반으로 유입을 분석하고
팀 내에 공유할 수 있는 주간 리포트 자동화를 구현했어요.
Step 2: 콘텐츠 파이프라인 스킬 구축
주간 리포트를 만들다 보니 자연스럽게 다음 질문이 생겼어요.
"그래서 트래픽을 올리기위해 어떤 콘텐츠를 발행할까?"
GSC + Mixpanel 크로스 분석
여기서 만든 게 content_pipeline.py예요. 핵심 아이디어는 이거였어요.
GSC에서 "노출은 많은데 순위가 낮은 키워드"를 찾고, Mixpanel 기준 유입 데이터, 두 데이터를 교차시키면 "지금 당장 개선/ 발행하면 효과 큰 콘텐츠 "가 보인다.
이 두 질문에 답하려면, 키워드 발굴 → 글쓰기 → 등록 → 성과 측정이 하나 로 연결돼야 했어요. 그래서 만든 게 /content-pipeline 이에요. Claude Code에서 명령어 하나로 실행하는 콘텐츠 운영 스킬이에요.
전체 구조는 이렇습니다.
/content-pipeline → 모드 선택
├─ discover → 키워드 기회 발굴 → 글쓰기 연계
│ └─ 기회 키워드 선택 → /gpters-post 스킬로 게시글 작성 → register 자동 등록
├─ register → 발행한 콘텐츠 등록
├─ measure → 등록된 콘텐츠 성과 측정
└─ list → 추적 중인 콘텐츠 목록
1. discover — "다음에 뭘 써야 해?"에 데이터로 답하기
discover는 GSC 검색 데이터와 Mixpanel 행동 데이터를 교차 분석해서,
지금 글을 쓰면 효과가 클 키워드를 찾아줘요.
작동 방식을 쉽게 설명하면 이래요.
1단계: GSC에서 "기회 키워드" 4종류를 뽑아요
유형
의미
예시
노출↑ CTR↓
사람들이 검색은 많이 하는데 우리 글을 안 클릭
"claude code 사용법" 노출 3,000회인데 CTR 1.2%
순위 4~15위
조금만 올리면 1페이지 상단에 갈 수 있는 글
"AI 글쓰기 도구" 현재 순위 7위
신규 키워드
최근에 처음 노출되기 시작 한 키워드
"gemini 2.5 활용법" 지난주부터 등장
급성장 키워드
전주 대비 노출이 급격히 늘어난 키워드
"바이브코딩" 전주 대비 +340%
2단계: Mixpanel에서 "유입 데이터"를 가져와요
구글 direct 유입, threads 유입, AI 플랫폼 유입 등 다양한 유입 채널의 데이터를 확인하고
각 채널별로 잘 된 콘텐츠를 발굴해요.
3단계: 두 데이터를 합쳐서 Opportunity Score를 매겨요