# 네이버 검색광고(SA) 성과 데이터 자동 수집 — 260815

- **실행 명령**: `python3 /home/jay/workspace/tools/naver-ads/collect_sa_stats.py --days 7`
- **실행 시각(KST)**: 2026-08-15 02:00:27
- **EXIT_CODE**: 0
- **결과 파일**: `/home/jay/workspace/dashboard/data/naver-sa-stats.json`
- **소비처**: `dashboard/server_utils.py`
- **코드 변경**: 없음 (read-only 수집 실행)

## 수집 결과 요약
- API 연결: NaverSAClient 초기화 완료 (customer_id=1419414)
- 캠페인 감지 2건 (모두 status=ELIGIBLE)
  - `cmp-a001-01-000000001647137` — 전국민 꿀잠 프로젝트! "나이스드림"
  - `cmp-a001-02-000000001684254` — 나이스드림 쇼핑검색#1
- 수집 기간: 2026-08-09 ~ 2026-08-15 (7일, daily_trend 7개 항목)
- 일일 예산 21,000원 / spent_today 0 / burn_rate 0.0
- today·yesterday 지표: 전부 0 (노출·클릭·비용·전환)
- 7일 합계: imp 0, clk 0, cost 0, conv 0
- keyword_groups: F(보험영업), G(개인사업/지점장), H(무자본창업) — 전부 0

## 저장 검증 근거

파일 갱신은 아래 4개 독립 신호로 확인했습니다.

1. **스크립트 자체 로그** — `naver-sa-stats.json 저장 완료: /home/jay/workspace/dashboard/data/naver-sa-stats.json`, 프로세스 EXIT_CODE 0
2. **파일 내부 `last_collected` 값 변화** — `2026-08-14T02:00:34+09:00` → `2026-08-15T02:00:27+09:00`
3. **내용 해시 변화** — md5 `0dbfef5436b7a69fe607eefba32bb325` → `6f9ce30f72e784b277553a735de7b686`
4. **데이터 범위 이동** — daily_trend 구간이 `08-08 ~ 08-14`에서 `08-09 ~ 08-15`로 하루 전진 (실행 전 사본 `/tmp/naver-sa-stats.before.json`과 diff로 대조)

JSON 파싱 성공, 스키마 6개 키 정상: `last_collected`, `summary`, `keyword_groups`, `daily_trend`, `budget`, `campaigns`.

## 전 지표 0에 대한 판정 — 기지 원인, 재조사 불필요

2026-08-13 회차에서 근본원인이 확정된 사안입니다. 이번 회차의 0 출력은 예상된 동작이며 신규 장애가 아닙니다.

1. **계정 불일치(핵심)** — `NAVER_SEARCHAD_CUSTOMER_ID=1419414` 계정의 실제 캠페인은 "나이스드림" 2건뿐이고, 수집기 `_GROUP_RULES`가 기대하는 리쿠르팅 광고그룹(보험영업 / 개인사업·지점장 / 무자본창업)은 이 계정에 0건. `/stats`는 전 구간에서 HTTP 200 + `{"data":[]}` 반환 → 파싱 버그가 아니라 실적 자체가 없음.
2. **수집기 구조적 결함 2건** — 계정을 교체해도 화면상 0으로 남는 별개 결함.
   - `group_agg`(99행)가 stats 루프에서 한 번도 갱신되지 않고 `adgroup_group_map`(82~95행)도 미사용 → `keyword_groups` 항상 0
   - `get_stats()`를 `breakdown` 없이 호출하는데 집계 응답에는 `date` 필드가 없음. 그런데 `record.get("date","")`로 분기 → `daily_trend` / `today` / `yesterday`가 채워질 수 없음 (일자별 집계엔 `breakdown="day"` 필요)

이번 실행 로그에도 `stats 조회 실패` · `캠페인 조회 실패` 등 예외 경로 로그가 없어, 예외 삼킴이 아닌 정상 경로로 빈 데이터가 반영된 것으로 확인됩니다.

## 회장님 결정 대기 (변동 없음 · 3회차 연속)

- **결정 1** — API 계정 교체 승인 여부: 리쿠르팅 광고가 실제 집행되는 계정의 `CUSTOMER_ID` / API 키로 교체할지
- **결정 2** — 수집기 결함 2건 수정 위임 승인 여부: `group_agg` 결선 + `breakdown="day"` 적용

둘 중 하나라도 해소되기 전까지 다음 회차도 전 지표 0으로 출력됩니다.

## 참고
- 선행 보고서: `memory/reports/naver-sa-collect-260814.md`, `memory/reports/naver-sa-collect-260813.md` (근본원인 규명 원본)
