본문 바로가기
카테고리 없음

구글 시트로 블로그 성과 기록 관리하기

by richjin7285 2025. 10. 10.

구글 시트로 블로그 성과 기록 관리 사진

블로그 성과 관리는 단순히 “조회수가 늘었나?”를 보는 일이 아닙니다. 어떤 글이 유입을 만들었는지, 유입이 어떤 행동(구독/문의/구매)으로 이어졌는지, 그리고 우리가 반복해야 할 콘텐츠 패턴이 무엇인지까지 파고드는 과정입니다. 문제는 이 모든 지표가 여기저기 흩어져 있다는 것—네이버/티스토리/워드프레스 자체 통계, 구글 애널리틱스(GA4), 서치 콘솔, 링크트래커, 뉴스레터, CRM… 한 화면에서 종합적으로 보지 않으면 방향을 잃기 쉽습니다. 이때 구글 시트는 가장 가벼운 콘텐츠 운영 시스템이 됩니다. 원천 데이터를 표준화해 담고(포스트/날짜/채널/세션/전환), QUERY/SUMIFS로 주·월 집계를 자동화하며, 슬라이서·차트로 회의용 대시보드를 구성하면 됩니다. 여기에 Apps Script까지 얹으면 작성/발행/홍보/성과를 하나의 루프로 묶어, 매주 “써야 할 글, 꺼야 할 글, 고쳐야 할 글”을 명확하게 보여줄 수 있습니다.

이 글은 처음부터 끝까지 따라 할 수 있도록 ① 설계: 지표·표준·입력 구조② 자동화: 수집·스냅숏·알림③ 분석/대시보드: 퍼널·주간 보고·리라이트 우선순위 순서로 구성했습니다. 복붙 가능한 수식과 템플릿 패턴, 팀 규칙 예시를 풍성하게 담았고, 실제 운영에서 자주 생기는 함정(텍스트 날짜, 채널 라벨 분산, 중복 UTM)의 해결책까지 정리했습니다. 목표는 단 하나, 링크 한 장으로 매주 콘텐츠 의사결정을 끝내는 것입니다.

 

1) 설계: 지표 정의·표준 라벨·입력 구조로 ‘한 번 입력, 여러 번 활용’

성과 기록은 설계에서 80%가 결정됩니다. 같은 데이터를 넣어도 열 구조, 라벨, 형식이 제각각이면 요약도, 비교도, 자동화도 불가능해집니다. 먼저 무엇을 기록할지, 어떤 표로 정리할 지부터 정리해 봅시다.

① 핵심 지표 정의(콘텐츠 퍼널 중심)

  • 노출/클릭: 검색 노출수, 클릭수(서치 콘솔), SNS 클릭(링크트래커/UTM).
  • 세션/사용자: GA4 기본. 랜딩 페이지 기준으로 기사별 유입을 봅니다.
  • 참여: 평균 체류, 스크롤 깊이(가능하면), 이탈률.
  • 전환: 구독, 문의, 다운로드, 회원가입 등 이벤트 수.
  • 수익/가치: 광고 RPM, 리드 가치(가중치), 판매액(있다면).

원칙: 포스트(콘텐츠)를 기준 엔티티로 두고, 날짜/채널/소스/캠페인(UTM)을 차원, 노출/클릭/세션/전환/수익을 지표로 분리합니다.

② 탭 구조(역할 분리)

  • Posts: 포스트 마스터(슬러그, 제목, 카테고리, 발행일, 상태, 담당, 목표 키워드).
  • Logs: 일별 성과 로그(날짜, 포스트 ID, 채널, 소스/미디엄, 세션, 전환, 클릭, 노출, 수익).
  • Codes: 코드표(채널/소스/미디엄/카테고리/상태/담당자 등 드롭다운 목록).
  • Model: 가공/파생열(월, 주, 퍼널 전환율, TOP-N 플래그).
  • Dashboard: KPI 카드, 추세/비중/랭킹 차트, TO-DO 리스트.

③ 포스트 마스터(Posts) 설계

  • 열 예시: PostID(고유), URL, Slug, Title, Category, Author, PublishDate, TargetKW, Status(초안/발행/리라이트), Notes.
  • Slug 자동 추출(워드프레스 등 URL에서): =ARRAYFORMULA(IF(B2:B="", "", REGEXEXTRACT(B2:B, "https?://[^/]+/(.+)")))
  • Status는 드롭다운 칩(코드표 연결)으로 표준화.

④ 성과 로그(Logs) 설계

  • 열 예시: Date(YYYY-MM-DD), PostID, Channel(Organic/SNS/Ads/Newsletter 등), Source, Medium, Sessions, Users, Conversions, Clicks, Impressions, Revenue.
  • 날짜는 반드시 날짜 형식으로. 텍스트 날짜 금지.
  • 채널/소스/미디엄은 코드표로 드롭다운, 오타를 봉쇄합니다.

⑤ 파생열로 집계에 유리한 표 만들기

=ARRAYFORMULA(IF(ROW(Logs!A:A)=1,"Month", IF(Logs!A:A="",,TEXT(Logs!A:A,"yyyy-mm"))))
=ARRAYFORMULA(IF(ROW(Logs!A:A)=1,"Week", IF(Logs!A:A="",,WEEKNUM(Logs!A:A))))
=ARRAYFORMULA(IF(ROW(Logs!A:A)=1,"ConvRate", IF(Logs!F:F+Logs!G:G=0,, Logs!H:H / Logs!F:F )))

위처럼 월/주/전환율(예시)을 Model 탭에서 자동 계산해 두면 QUERY/피벗이 간단해집니다.

⑥ UTM 표준(채널 분류 규칙)

  • utm_source / utm_medium / utm_campaign / utm_content를 미리 표준화하고, 채널 매핑 테이블을 둡니다.
  • 예: medium=organic → Channel=Organic, medium=cpc → Ads, source=newsletter → Newsletter 등.
  • 시트에서 VLOOKUP 또는 XLOOKUP으로 Source/Medium→Channel을 자동 변환.

⑦ 데이터 유효성·조건부 서식으로 품질 확보

  • 유효성: 채널/소스/미디엄/상태/카테고리 드롭다운(코드표 참조), 숫자만 허용 열 지정.
  • 조건부 서식 예:
    • ConvRate >= 3% → 초록, < 1% → 주황.
    • Impressions=0 또는 Sessions=0 → 연노랑 배경(데이터 누락 경고).

⑧ 기본 집계 수식(보고서 뼈대)

  • 월 ×채널 집계:
    =QUERY(Logs!A:K,
    "select TEXT(A,'yyyy-mm'), C, sum(F), sum(H)
     group by TEXT(A,'yyyy-mm'), C
     order by TEXT(A,'yyyy-mm')", 0)
  • 포스트 Top 20(이번 달 세션 기준):
    =QUERY(Logs!A:K,
    "select B, sum(F)
     where A >= date '"&TEXT(EOMONTH(TODAY(),-1)+1,"yyyy-mm-dd")&"'
     group by B
     order by sum(F) desc
     limit 20", 0)
  • 포스트별 전환율:
    =QUERY(Logs!A:K,
    "select B, sum(F), sum(H), sum(H)/sum(F)
     group by B
     order by sum(H)/sum(F) desc", 0)

⑨ 설계 체크리스트

  • PostID는 고유한가? URL/Slug와 1:1로 매칭되는가?
  • 날짜/숫자 형식을 통일했는가? 텍스트 숫자/날짜는 없는가?
  • 채널/소스/미디엄 라벨은 코드표로 표준화했는가?
  • 월/주/전환율 등 파생열을 자동화했는가?
한 줄 요약마스터(Posts)는 기준, 로그(Logs)는 사실, 모델(Model)은 계산, 대시보드는 결론. 이 분할이 유지보수를 구원합니다.

 

2) 자동화: 수집 루틴·스냅숏·알림(리라이트/이상치)로 매주 보고를 ‘원클릭’

자동화 원클릭 사진

설계가 끝났다면, 이제 반복을 줄이는 자동화를 얹을 차례입니다. 데이터 수집 루틴을 가볍게 만들고, 주/월 스냅숏을 찍어 “어제 데이터가 변해도 어제의 보고서는 그대로” 남도록 하며, 성과 급등/급락, 리라이트 후보를 자동으로 표시해 주세요.

① 수집 루틴(3가지 경로)

  • 수동 CSV 임포트: GA4(탐색/보고서)와 서치콘솔에서 CSV로 내보낸 뒤, Logs에 붙여 넣기. 간단하지만 일관된 헤더가 중요합니다.
  • Looker Studio 커넥터 + 스프레드시트 추출: 주기적으로 추출표를 덤프해 Logs로 붙이는 방식.
  • Apps Script: 서치 콘솔 API/GA4 API를 사용할 수 있으나, 초보라면 CSV→붙여 넣기부터 안정적으로 운영하는 것을 권장합니다.

② ARRAYFORMULA/QUERY로 자동 집계

  • 앞서 만든 파생열과 QUERY 표는 데이터가 추가될 때 자동 확장됩니다.
  • 보고서용 표는 Model에 만들고, 대시보드 차트는 이 표를 바라보게 연결합니다.

③ Apps Script로 주간 스냅숏(백업) 저장

function snapshotWeekly() {
  const ss = SpreadsheetApp.getActive();
  const dash = ss.getSheetByName('Dashboard');
  const snap = ss.getSheetByName('Snapshot') || ss.insertSheet('Snapshot');
  const week = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'YYYY-"W"ww');
  const kpi = dash.getRange('B2:B6').getValues().flat(); // KPI 카드 5개 예시
  snap.appendRow([week].concat(kpi).concat(new Date()));
}

주/월이 바뀌더라도 스냅숏이 있으면 “그때의 화면”을 손쉽게 재현할 수 있습니다.

④ 급등/급락·이상치 감지(간단 규칙)

  • 전주 대비 세션 증가율:
    =ARRAYFORMULA(IF(A2:A="",, (F2:F - OFFSET(F2:F,-7,0)) / OFFSET(F2:F,-7,0) ))
    (일간 데이터 기준, -7일 비교. 주간 집계면 -1주 비교)
  • 이상치 플래그(평균±표준편차):
    =ARRAYFORMULA(IF(A2:A="",, IF(F2:F > AVERAGE(F:F)+2*STDEV(F:F),"상승이상",
     IF(F2:F < AVERAGE(F:F)-2*STDEV(F:F),"하락이상",""))))
  • 조건부 서식으로 “상승이상” 파랑, “하락이상” 주황 표시.

⑤ 리라이트 후보 자동 선별

  • 규칙 예: 발행일 90일 경과 & 검색 노출은 유지 & 클릭률(CTR) 하락 & 세션↓.
  • 서치 콘솔 CTR/노출/클릭을 Logs에 합산해 두고, =IF(AND(조건들), "리라이트", "") 플래그 열을 만듭니다.
  • 대시보드에 “리라이트 큐” 리스트를 표로 고정합니다.

⑥ 알림(이메일) — 요약/경보

function mailWeeklyDigest() {
  const ss = SpreadsheetApp.getActive();
  const model = ss.getSheetByName('Model');
  const top = model.getRange('A1:D11').getDisplayValues(); // 예: Top10 표
  let html = '<h3>주간 블로그 요약</h3><table border=1 cellspacing=0 cellpadding=6>';
  top.forEach(r => html += `<tr><td>${r.join('</td><td>')}</td></tr>`);
  html += '</table>';
  GmailApp.sendEmail(Session.getActiveUser().getEmail(), '[블로그] 주간 요약', 'HTML 보기 필요', {htmlBody: html});
}

트리거(시간 기반)를 주 1회 설정해 자동 발송되게 하면 회의 준비가 크게 줄어듭니다.

⑦ 수집/자동화 체크리스트

  • 헤더는 항상 동일한가(붙여 넣기 실패 방지)?
  • 날짜/숫자 형식 깨짐은 없는가? 텍스트 숫자 처리?
  • 스냅숏이 주/월 단위로 쌓이고 있는가?
  • 리라이트/이상치 플래그가 정상 동작하는가?
현장 예시 — 월요일 9시: 스냅샷+주간 메일 자동 발송. 대시보드엔 “신규 상위 유입 글 5개”, “전환 기여 Top5”, “리라이트 후보 7개”가 떠 있고, 팀 회의는 이 리스트를 기반으로 바로 액션을 정합니다.

 

3) 분석·대시보드: 퍼널·랭킹·비중·성장·TO-DO로 ‘바로 결정되는’ 화면 만들기

대시보드는 “숫자 모음”이 아니라 “결정의 트리거”여야 합니다. 상단에 KPI, 가운데에 추세/비중, 우측에 랭킹/TO-DO를 배치해 5분 안에 결정을 끝내는 구성을 추천합니다.

① 상단 KPI(3~6개)

  • 이번 달: 세션, 전환, 전환율, 신규 포스트 수, 검색 클릭수, 상위 3 채널 비중.
  • 전월 대비 증감(화살표/색상)으로 상태를 직관적으로 표시합니다.

② 퍼널(노출→클릭→세션→전환) 시각화

  • 서치 콘솔 노출/클릭 + GA4 세션 + 이벤트 전환을 하나의 표로 묶고, 콤보(막대+선) 또는 퍼널 차트로 전환율을 드러냅니다.
  • 포스트 그룹(카테고리/토픽 클러스터) 별 퍼널도 추가하면 “어떤 주제가 효율적인지” 보입니다.

③ 채널/소스 비중(도넛/누적 막대)

  • 이번 달 세션/전환 기준으로 채널 비중을 도넛으로 표시.
  • 지난 6개월 채널 추세는 누적 막대로. 광고 의존도가 과도하면 색으로 경고.

④ 포스트 랭킹(Top/Drop/Rise)

  • Top 10: 세션/전환 기준 상위. 타이틀·카테고리·발행일·전환율 표시.
  • Rising: 전주 대비 세션 +50% 이상.
  • Dropping: 전주 대비 세션 -30% 이하(리라이트 후보).

표는 QUERYSORT 조합으로 자동 생성하고, 조건부 서식으로 상승/하락을 색으로 표시합니다.

⑤ 키워드/검색 쿼리 요약

  • 가능하면 쿼리-포스트 매핑 표를 만들어, 포스트별 상위 쿼리 5개와 CTR을 표시합니다.
  • CTR 하락/노출 증가 조합은 타이틀/디스크립션 개선 TO-DO로 연결.

⑥ TO-DO 자동 생성(조건 기반)

  • 규칙 예시:
    • 발행 90일↑ & CTR 하락 & 세션 하락 → 리라이트
    • Rising 2주 연속 & 전환율 높음 → 확장 포스트(시리즈)
    • 광고 비중 60%↑ & 전환 낮음 → 유기 채널 강화
  • TO-DO 표는 =FILTER로 조건을 만족하는 포스트만 추출, 담당자 칩(@사람)과 마감일을 붙여 운영합니다.

⑦ 회의용 레이아웃 추천

  • 상단: KPI 카드 4~6개.
  • 좌측: 6개월 세션/전환 추세(선/영역).
  • 우측: 채널 비중(도넛), 퍼널(막대+선).
  • 하단 좌: Top/Rising/Dropping 표.
  • 하단 우: TO-DO(리라이트 큐).

⑧ 함수/표 레시피 모음

  • 지난달 대비 증감률:
    =IFERROR((이번달 - 지난달) / 지난달, )
  • 포스트별 최근 30일 전환율:
    =QUERY(Logs!A:K,
    "select B, sum(H)/sum(F)
     where A > date '"&TEXT(TODAY()-30,"yyyy-mm-dd")&"'
     group by B
     order by sum(H)/sum(F) desc", 0)
  • 카테고리별 퍼널(피벗):
    =QUERY(Logs!A:K,
    "select D, sum(J), sum(I), sum(F), sum(H)
     group by D
     label sum(J) 'Impr', sum(I) 'Clicks', sum(F) 'Sessions', sum(H) 'Conv'", 0)

⑨ 팀 규칙(운영 표준)

  1. Logs는 원천 — 수치 직접 수정 금지(정정은 정정행으로).
  2. 코드표 표준 — 채널/소스/미디엄/카테고리는 드롭다운만.
  3. 대시보드 보호 — 보기 전용 공유 + 시트/범위 보호.
  4. 주간 스냅숏 — 월요일 오전 자동 저장.
  5. TO-DO는 @담당 + 마감 — 댓글/작업으로 추적.
대시보드 문구 팁 — “이번 달 전환 18%↑ (신규 포스트 A·B 기여), 광고 의존 62% → 유기 채널 리라이트 3건 실행 필요”. 숫자 옆에 결론을 문장으로 붙이면 회의가 빨라집니다.

 

결론: ‘한 장 짜리 시트’로 콘텐츠 의사결정을 빠르게

한 장짜리 시트 사진

블로그는 “발행이 목표”가 아닙니다. 의도한 독자를 움직이는가가 목표입니다. 그 판단을 빠르게 해주는 도구가 바로 구글 시트입니다. 이 글에서 정리한 대로 Posts-Logs-Codes-Model-Dashboard로 역할을 분리하고, 날짜/라벨/지표 형식을 표준화하면 어떤 채널에서 가져온 데이터라도 곧바로 합쳐지고 비교됩니다. ARRAYFORMULA/QUERY로 집계를 자동화하고, 주간 스냅숏과 메일 요약, 리라이트/이상치 플래그를 얹으면 매주 회의가 “느낌”이 아니라 데이터에 근거한 액션으로 채워집니다.

오늘은 포스트 마스터를 만들고, Logs에 지난 4주의 핵심 지표(세션/전환/노출/클릭)를 붙여 보세요. 내일은 Model에서 월/주/전환율 파생열을 구성하고, Dashboard에 KPI/추세/랭킹/TO-DO를 배치하세요. 모레는 스냅숏과 주간 요약 메일 트리거를 켭니다. 불과 며칠이면 “무엇을 더 쓰고, 무엇을 고치고, 무엇을 멈출지”가 분명해질 것입니다. 마지막으로 이 원칙을 잊지 마세요. 원천은 사실, 모델은 계산, 대시보드는 결론. 이 질서만 지키면 구글 시트는 가장 가벼운 콘텐츠 운영 시스템이 됩니다.