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

- **실행 명령**: `python3 /home/jay/workspace/tools/naver-ads/collect_sa_stats.py --days 7`
- **실행 시각(KST)**: 2026-08-13 02:00:28
- **EXIT_CODE**: 0 (성공)
- **결과 파일**: `/home/jay/workspace/dashboard/data/naver-sa-stats.json` — 갱신 확인, JSON 유효
- **소비처**: `dashboard/server_utils.py`

## 수집 결과 요약
- API 연결: NaverSAClient 초기화 완료 (customer_id=1419414)
- 캠페인 감지: 2건 (모두 status=ELIGIBLE, delFlag=False, userLock=False)
- 수집 기간: 2026-08-07 ~ 2026-08-13 (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

## ★ 근본원인 규명 (이번 실행에서 확정)

지난 7/16부터 약 1개월간 매일 전 지표가 0으로 수집돼 왔습니다. 이번에 원본 HTTP 응답까지 확인해 원인을 확정했습니다.

### 1) API는 정상, 데이터가 실제로 없음 (파싱 버그 아님)
`/stats` 원본 응답:

```
HTTP 200
{"data":[],"compTm":"202608130147","cycleBaseTm":"202608130100"}
```

- `timeRange` 교차 검증: 2026-08월 / 07월 전체 / 06월 전체 / 04월 전체 — **모든 구간이 빈 배열**
- `breakdown=day` 로 재조회해도 동일하게 빈 배열
- 즉, 인증·서명·권한은 정상이고 해당 캠페인 ID에 집계된 실적 자체가 없음

### 2) ★ 계정-대시보드 불일치 (핵심)
연결된 광고주 계정(customer_id=1419414)의 실제 구성:

- 캠페인1: `전국민 꿀잠 프로젝트! "나이스드림"` → 광고그룹 `..._광고그룹#1` (ELIGIBLE)
- 캠페인2: `나이스드림 쇼핑검색#1` → 광고그룹 `..._광고그룹#1` (**PAUSED**)

그런데 수집기가 기대하는 키워드 그룹 규칙(`_GROUP_RULES`)은 **보험영업 / 개인사업·지점장 / 무자본창업** (리쿠르팅 키워드)입니다.
→ 광고그룹명에 매칭되는 항목이 **0건**. 대시보드가 보려는 리쿠르팅 캠페인이 이 계정에 존재하지 않습니다.
→ API 키가 다른 광고주 계정(나이스드림)을 가리키고 있을 가능성이 높습니다.

### 3) 부수적으로 발견된 코드 결함 2건 (수정 안 함 — 위임 대상)
설령 실적 데이터가 들어와도 다음 때문에 값이 0으로 표시됩니다.

- `collect_sa_stats.py:99,170` — `group_agg`가 stats 루프에서 **한 번도 갱신되지 않음**. `adgroup_group_map`(82~95행)도 만들기만 하고 사용처 없음 → `keyword_groups`는 구조적으로 항상 0.
- `collect_sa_stats.py:106,115` — `get_stats()`를 `breakdown` 없이 호출하는데, 집계 응답 행에는 `date` 필드가 없음. 그런데 `record.get("date","")`로 날짜를 분기 → `daily_trend` / `today` / `yesterday`가 구조적으로 채워질 수 없음. 일자별 집계에는 `breakdown="day"`가 필요.

## 상태
- **수집·저장 검증: 완료 (지시 범위 100% 이행)** — 스크립트 실행 성공, 파일 갱신 확인
- **데이터 유효성: 0값이 정상 수집 결과이나, 원인은 "무집행"이 아니라 "계정 불일치"로 판단됨**
- 조치는 회장님 판단 필요 사항이라 임의 수정하지 않았습니다.

## 회장님 결정 요청 (2건)
1. **API 계정 확인** — `NAVER_SEARCHAD_CUSTOMER_ID=1419414`가 리쿠르팅 광고를 집행하는 계정이 맞는지. 아니라면 올바른 계정의 CUSTOMER_ID/API_KEY/SECRET_KEY로 교체 필요.
2. **수집기 결함 2건 수정 위임 여부** — 위 3)항 (`group_agg` 미집계 + `breakdown=day` 누락). 계정 교체 후에도 이 결함이 남으면 여전히 0으로 표시됩니다.
