| name | analytics |
| description | 측정 셋팅(장부) — 사이트에 지금 뭐가 깔려 있는지 진단하고, GA4·전환 이벤트·PostHog·네이버 애널리틱스·서치어드바이저를 순서대로 세팅하며, 테스트 전환을 실제로 일으켜 찍히는 걸 확인하고, UTM 명명 규칙을 고정하고, GSC·GA4 주간 자동 회수까지 건다. "GA4 달아줘 / 측정 세팅 / 전환 추적 / 애널리틱스 / 픽셀 심어줘 / UTM 어떻게 / 서치콘솔 등록 / 어디서 온 손님인지 모르겠어 / 데이터가 없어"일 때, 또는 ads 준비도 체크에서 전환 계측 미충족 판정 시. |
마케팅 루프(항상): 감지 → 판단 → 제작 → 배포 → 학습. 측정 없는 게시 금지. 자세히 [[method]].
analytics — "설치했다"가 아니라 "찍히는 걸 봤다"가 완료다 (ANL-01~17)
이 플러그인의 헌법은 측정 없는 게시 금지다([[method]]). 그런데 측정 자체가 안 깔려 있으면 헌법이 빈말이 된다. 그래서 이 스킬이 모든 채널 스킬보다 먼저다 — 뭐가 됐는지 모르면 다음 행동이 전부 감이다. 감으로 고른 채널에 감으로 만든 콘텐츠를 올리고 감으로 광고비를 태우는 것, 그게 측정 없는 마케팅의 실제 모습이다.
비용은 거의 0이다. GA4·PostHog·네이버 애널리틱스·서치어드바이저 전부 무료로 시작한다. 진입장벽은 돈이 아니라 한 번의 세팅이고, 이 스킬은 그 세팅을 진단→코드 생성→검증→자동 회수까지 대신한다.
가장 흔한 함정은 "설치했다"에서 멈추는 것이다. 스니펫은 붙였는데 전환 이벤트가 없거나, 전환은 만들었는데 실제로 찍히는지 한 번도 안 본 채로 광고를 켠다 — 광고비가 나가기 시작한 뒤에야 장부가 비어 있는 걸 발견한다. 그래서 이 스킬의 완료 기준은 설치가 아니라 ★테스트 전환이 보고서에 찍히는 걸 눈으로 본 것이다.
실행 유형: [A] 진단·도구 판정·설치 코드 생성·UTM 규칙·검증·회수 스크립트는 질문 없이 실행 / [P] 사이트 코드 반영·배포, 실결제가 발생하는 테스트는 config approval_mode / [H] 개인정보처리방침·쿠키 고지 게시 확인(법이 요구하는 판정). 유형별 차이는 [[role]].
0. 준비
cat "${MKT_COPILOT_HOME:-$HOME/.marketing-copilot}/context/"{brand,products,audiences,tone,claims}.md 2>/dev/null
marketing-copilot library list content --limit 20
- 사이트 주소·플랫폼(자체 코드/워드프레스/카페24/아임웹/스마트스토어 등)·코드 레포 접근 가능 여부를 확인한다. 레포가 있으면 직접 심고, 없으면 붙여넣을 코드와 정확한 삽입 위치를 준다.
- "돈에 가장 가까운 행동"을 먼저 정한다 — 구매완료·문의 제출·전화 클릭·가입 중 하나. 전환 이벤트는 여기서 1개로 시작한다.
1. 진단 — 지금 뭐가 깔려 있나 (ANL-01~02)
브라우저로 사이트를 열거나 레포를 뒤져 현재 상태를 판정한다(자동).
| 상태 | 판정 | 다음 |
|---|
| 아무것도 없음 | 0단계 | 2절 도구 판정부터 |
| GA4 스니펫만, 전환 이벤트 없음 | 가장 흔함 — 방문자 수만 세는 중 | 3-① |
| 전환 이벤트는 있는데 찍히는 걸 본 적 없음 | 미완료 | ★3-② |
| 전환은 찍히는데 UTM 규칙 없음 | 출처 귀속 불가 | 3-⑤ |
| 다 있음 | 유지 모드 | 월 1회 테스트 전환 + 4절 커버리지 |
- 본 것만 말한다. 계정 안 데이터는 접근 권한이 있어야 보인다 — 없으면 "확인 필요"로 남기고 연결을 요청한다.
2. 도구 판정 (ANL-03)
| 도구 | 무료 | 강점 | 누구에게 |
|---|
| GA4 | 무료 (속성당 이벤트 500종·커스텀 측정기준 50개 한도) | 유입·전환의 공용 장부, GSC·광고 연동 | 전원 기본 |
| PostHog | 월 100만 이벤트 + 세션 리플레이 5천 건 | 와서 뭘 했나 — 퍼널·리플레이 | 웹서비스·앱 |
| Amplitude | 월 200만 이벤트 | 제품 분석 | PostHog 대안 |
| 네이버 애널리틱스 | 무료 | 네이버 유입 검증 | 국내 보조 |
| 네이버 서치어드바이저 | 무료 | 네이버 검색 노출의 전제 | 국내 전원 |
- GA4가 기본값이다 — 광고 판정([[ads]])의 공용 장부가 된다. 데이터 반영은 최대 48시간 걸리지만 실시간 보고서는 즉시 뜬다 — 검증은 실시간으로 한다.
- PostHog 스타트업 프로그램: 창업 2년 미만 + 투자 $500만 미만이면 12개월 $50,000 크레딧 — 해당되면 신청까지 이 스킬이 준비한다.
- Amplitude: 직원 20명 미만 + 투자 $1,000만 미만이면 Growth 1년 무료. 단 종료 후 유료 락인 위험이 보고돼 있다 — 1년 뒤 계획 없이 시작하지 않는다.
- 네이버 애널리틱스는 매출 측정이 사실상 없고 네이버페이·프리미엄로그분석과 동시 사용 불가 — 스마트스토어 중심이면 프리미엄로그분석 쪽을 쓴다.
- 한도·요금·프로그램 조건은 조사 시점 기준 — 신청·결제 전 현재 조건 "확인 필요".
3. ★셋팅 순서 — 이 순서를 바꾸지 않는다 (ANL-04)
| 순서 | 할 일 | 완료 기준 |
|---|
| ① | GA4 설치 + 전환 이벤트 1개 | 스니펫·이벤트 코드가 사이트에 반영됨 |
| ★② | 테스트 전환을 실제로 일으켜 확인 | 실시간 보고서에서 이벤트를 눈으로 봄 |
| ③ | PostHog (+스타트업 크레딧) | 이벤트 수신 확인 |
| ④ | 네이버 애널리틱스·서치어드바이저(국내) | 소유확인 + RSS + 사이트맵 세트 등록 |
| ⑤ | UTM 명명 규칙 고정 | 규칙 문서화 + 이후 모든 링크에 자동 적용 |
| ⑥ | 주간 자동 회수 | [[routine]] 등록 + 첫 회수 성공 |
②를 건너뛰고 ③~⑥으로 가지 않는다. 광고를 켠 뒤 터질 것은 전부 ②에서 미리 터뜨릴 수 있다.
① GA4 + 전환 이벤트 1개 (ANL-05~06)
- 설치 코드는 플랫폼별로 생성한다(자동): 자체 코드는 gtag 스니펫, 워드프레스·카페24·아임웹은 관리자 화면의 삽입 위치까지 지정한다.
- 전환은 1개로 시작한다 — 돈에 가장 가까운 행동. 속성당 이벤트 500종 한도가 있지만 진짜 문제는 한도가 아니라 소음이다. 스크롤·클릭 이벤트 수십 개는 판정에 아무 도움이 안 된다.
- URL 방식보다 이벤트 방식이 기본값이다. 결제완료 페이지 주소가 주문마다 다르거나, 완료가 팝업·모달로 떠서 페이지 이동이 없는 사이트가 흔하다 — 이런 데서 "감사 페이지 도착"으로 전환을 잡으면 영영 안 찍힌다. 완료 시점에 이벤트 코드를 직접 심는다.
- 분석 도구를 심으면 개인정보처리방침에 수집 도구·항목 문안이 필요하다 — 문안 생성은 자동, 방침 게시 확인은 [H].
★② 테스트 전환 — 이 스킬의 심장 (ANL-07)
"설치했다"는 완료가 아니다. 전환을 실제로 일으켜 실시간 보고서에서 찍히는 걸 본 것이 완료다.
브라우저로 사이트 접속 → 전환 행동 수행(문의 폼·가입, 테스트 표시한 더미 데이터)
→ GA4 실시간 보고서 확인 → 이벤트명·파라미터 일치 확인 → 캡처를 기록으로 남김
- 실시간 보고서는 즉시 뜬다 — 48시간을 기다릴 필요 없다. 안 뜨면 지금 고친다.
- 문의·가입 전환은 직접 일으킨다(자동). 실결제가 필요한 구매 전환은 결제 테스트 모드나 최저가 테스트 상품으로 — 실제 결제 발생은 [P] 승인 후.
- 이걸 안 하고 광고를 켜면 터진다: 광고비는 나가는데 전환 0으로 잡혀 매체 최적화가 망가지고, 판정 불가 상태로 예산만 탄다. [[ads]] 준비도 체크 1번이 바로 이것이다.
③ PostHog (ANL-08~09)
- 웹서비스·앱이면 GA4 옆에 더한다 — GA4가 "어디서 왔나"의 장부라면 PostHog는 "와서 뭘 했나"의 장부다. 세션 리플레이 5천 건이면 초기엔 충분하다.
- 리플레이는 입력값 마스킹 기본 설정을 확인한다 — 고객 입력이 녹화에 남으면 개인정보 사고다.
- 스타트업 크레딧(12개월 $50,000)은 조건 해당 시 신청서 초안까지 만든다. 조건 근거(설립일·투자 이력)는 지어내지 않는다 — 사용자에게 확인.
④ 네이버 — 국내 사이트 (ANL-10)
- 서치어드바이저: 소유확인 + RSS + 사이트맵 세트 등록이 네이버 검색 노출의 전제다. 등록 후 노출까지 1~2주 걸리니 블로그·SEO 시작 전에 미리 건다([[blog]]).
- 네이버 애널리틱스는 보조 장부다 — 매출 측정이 사실상 없으니 매출 판정은 GA4·주문 데이터로.
★⑤-0 매체 픽셀·전환API(CAPI) — 광고 판정은 GA4로 하지 않는다 (ANL-10b)
GA4 라스트클릭 하나로 광고를 판정하면 안 된다. GA4는 ‘전환 시점 마지막 클릭 세션’에 공을 몰아주고(다크소셜·직접유입으로 새기 쉬움), 매체는 ‘그 광고를 본/누른 사람이 나중에 산 것’을 뷰스루·모델링까지 얹어 자기 계정에서 판정한다. iOS ATT 이후 유료소셜(메타·틱톡)은 GA4에서 체계적으로 과소보고되고, 그 장부로 “ROAS 낮다”며 멀쩡한 캠페인을 끄게 된다.
그래서 광고를 켤 채널은 픽셀 + 서버사이드 CAPI를 별도로 깐다. GA4는 채널 비교용 공용 장부, 매체 신호는 광고비 판정용 전용 장부 — 둘은 숫자가 다른 게 정상이다.
| 매체 | 브라우저 픽셀 | 서버사이드 | 국내 주의 |
|---|
| 메타 | Meta Pixel | Conversions API — event_id로 dedup, Advanced Matching(해시 이메일·전화)로 매칭률↑ | EMQ(이벤트매칭품질) 점수를 회수 지표로 |
| 구글 | gtag/GTM | Enhanced Conversions + Consent Mode v2 | GA4 전환과 Google Ads 전환은 별 집계 — 판정은 Ads 전환 열로 |
| 틱톡 | TikTok Pixel | Events API | 세팅 가이드로만(런타임 자동화 아님) |
| 카카오 | 카카오 픽셀·SDK | 카카오 전환 API | 모먼트 전환최적화는 픽셀 이벤트 30일 1,000건↑ 필요 |
설치 순서(고정): ⓐ브라우저 픽셀 → ⓑ서버사이드 CAPI → ⓒevent_id 중복제거 검증(같은 구매 1건이 2건으로 안 잡히는지) → ⓓ동의·개인정보 고지[H].
- ⓑ를 건너뛰고 브라우저 픽셀만 깔면 iOS·광고차단·인앱브라우저에서 새는 신호를 잃는다(회수분 계정별 상이 [확인 필요]).
- ⓒ를 안 하면 매출이 2배로 뻥튀기돼 손익분기 ROAS가 통째로 틀어진다.
- 완료 기준(이 스킬 DNA): “설치했다”가 아니라 ★테스트 전환이 브라우저·서버 양쪽으로 찍히고 dedup 후 1건으로 보이는 걸 눈으로 본 것.
marketing-copilot library add performance --json '{"target_kind":"measurement","note":"채널 계측 상태","metrics":{"channel_meta_pixel":1,"channel_meta_capi":1,"dedup_verified":1}}'
dedup_verified=false면 [[ads]]가 “판정 장부 미완”으로 집행을 보류한다.
★매체 대시보드 ROAS도 그대로 믿지 않는다 — 모델링 전환이 후하게 잡힐 수 있다. 최종 손익은 실매출(주문·결제)로 검산하고, 매체 숫자와 실주문의 갭 = 모델링 인플레이션율로 기록한다.
⑤ UTM 명명 규칙 — 한 번 정하면 바꾸지 않는다 (ANL-11~12)
성과는 콘텐츠가 아니라 메시지에 귀속된다([[messages]]) — 그 귀속의 물리적 실체가 UTM이다. 플러그인이 만드는 모든 외부 링크에 이 규칙이 자동 적용된다.
| 파라미터 | 규칙 | 예 |
|---|
| utm_source | 유입처 — 소문자 고정값 목록에서만 | instagram, naver_blog, newsletter |
| utm_medium | 고정 어휘만: social / search / cpc / email / message / referral | social |
| utm_campaign | {YYMM}-{캠페인 슬러그} | 2608-launch |
| utm_content | ★메시지 ID + 변형 — 귀속의 열쇠 | msg014-a |
- 표기가 갈리면 같은 채널이 두 줄로 쪼개진다(instagram ≠ Instagram). 목록 밖 값은 만들지 않는다.
- 규칙은 context에 문서로 남긴다 — 사람이 손으로 링크를 만들 때도 같은 표를 따르게.
⑥ 주간 자동 회수 (ANL-13~14)
숫자를 보러 들어가는 습관은 유지되지 않는다 — 숫자가 오게 만든다.
marketing-copilot library add performance --json '{"target_kind":"content","target_id":"CON-...","message_id":"MSG-...","note":"주간 회수","metrics":{"clicks":0,"impressions":0,"conversions":0}}'
- GSC API(요청당 25,000행)로 쿼리·클릭·노출을, GA4 Data API로 유입·전환을 주간 회수해 로컬 성과 기록으로 쌓고, 요약을 주간 판정([[weekly-review]])에 먹인다.
- [[routine]]으로 주간 등록한다. 회수가 두 번 연속 실패하면 조용히 넘어가지 않고 경보를 남긴다 — 안 오는 숫자는 없는 숫자다.
4. 측정 커버리지 = 1순위 KPI (ANL-15)
매출·문의 중 "어디서 왔는지 아는" 비율. 도구를 다 깔아도 전화 주문·오프라인 소개·DM 구매는 장부 밖이다.
- 커버리지를 올리는 가장 싼 방법은 코드가 아니라 말이다: 주문서·문의 폼에 "어떻게 알고 오셨어요?" 선택지 하나, 전화·상담 첫 인사에 같은 질문 한 마디.
- 폼 선택지는 utm_source 목록과 같은 어휘로 만든다 — 나중에 합산이 된다.
- 이 KPI의 집계·해석은 [[metrics]]가 본체다. 여기서는 커버리지를 올리는 세팅(선택지 추가·이벤트 파라미터)까지.
5. 함정 — 여기서 다 터진다 (ANL-16~17)
| 함정 | 증상 | 처방 |
|---|
| 결제완료 URL이 매번 다름·팝업 완료 | 전환이 0이거나 일부만 | URL 목적지 방식 금지 — 이벤트 방식(3-①) |
| 사이트 개편·스킨 교체 때 태그 증발 | 어느 날부터 데이터 뚝 | 월 1회 테스트 전환을 루틴에 상시 등록, 개편 배포 직후엔 즉시 1회 |
| 부가세 포함 매출로 ROAS 계산 | 실제보다 후한 판정 | 매출은 부가세 뺀 공급가로 통일 — 손익분기 ROAS가 통째로 틀어진다([[ads]]) |
| 어제 숫자로 오늘 판정 | 전환 누락 → 성급한 중단 | GA4 반영 최대 48시간 — 일별 판정은 이틀 여유, 검증만 실시간 보고서로 |
| 이벤트 남발 | 장부가 소음으로 | 전환 1개부터 — 500종 한도보다 판정 불가가 먼저 온다 |
다른 스킬로
| 상황 | 어디로 |
|---|
| 전환 계측 완료 → 광고 준비도 체크·집행 | [[ads]] |
| 쌓인 숫자의 타율·커버리지 집계·월간 리뷰 | [[metrics]] |
| 성과를 소재·타깃·오퍼·랜딩으로 원인 분리 | [[analyze]] |
| 서치어드바이저 등록 후 검색 콘텐츠 | [[blog]] |
| 주간 회수·월 1회 테스트 전환 자동화 | [[routine]] |
| utm_content에 넣을 메시지 ID 원장 | [[messages]] |
한 줄
장부 먼저 깔고, 테스트 전환이 찍히는 걸 눈으로 본 다음에 게시·광고를 시작한다 — 뭐가 됐는지 모르면 다음 행동이 전부 감이다.