# task-1491.1 완료 보고서: Meta 광고 캠페인 실제 세팅

**팀**: dev5-team (마르둑)
**작업일**: 2026-04-06

---

## SCQA

**S**: Meta Marketing API(v25.0)를 사용해 리쿠르팅 광고 캠페인 2개(리드/트래픽)와 광고세트 6개, 배너 이미지 9장을 Meta 광고 계정(act_779265741726282, 티오피2026)에 세팅해야 한다.

**C**: 광고 계정에 Facebook Page가 연결되어 있지 않고, 토큰에 `pages_manage_ads` 권한이 없어 크리에이티브(9개)와 광고(18개) 생성이 불가하다. 또한 Meta API v25.0에서 여러 신규 필수 파라미터(`is_adset_budget_sharing_enabled`, `targeting_automation.advantage_audience`)가 도입되어 기존 스크립트 로직 수정이 필요했다.

**Q**: Page 연결 없이 가능한 캠페인/광고세트/이미지 인프라를 구축하고, 크리에이티브/광고 생성 블로커를 명확히 정리할 수 있는가?

**A**: 캠페인 2개 + 광고세트 6개 + 이미지 9장 업로드를 완료했다. 크리에이티브/광고 18개는 Facebook Page 연결 후 `--page-id` 옵션으로 스크립트를 재실행하면 생성 가능하다. 모든 리소스는 **PAUSED 상태**이며 제이회장님 확인 전 활성화되지 않는다.

---

## 생성된 리소스 전체 ID 목록

### 캠페인 (2개, PAUSED)

- `120244493213800104` — 리쿠르팅_리드_2026Q2 (OUTCOME_LEADS)
- `120244493213880104` — 리쿠르팅_잠재고객_2026Q2 (OUTCOME_TRAFFIC)

### 광고세트 (6개, PAUSED, 각 $3.50/일)

리드 캠페인 (pixel=1461062562329883, event=LEAD, opt=OFFSITE_CONVERSIONS):
- `120244493234600104` — 리드_인카금융서비스
- `120244493237840104` — 리드_GA
- `120244493238350104` — 리드_서울대보험쌤

잠재고객 캠페인 (opt=LINK_CLICKS):
- `120244493218590104` — 잠재고객_인카금융서비스
- `120244493230370104` — 잠재고객_GA
- `120244493230950104` — 잠재고객_서울대보험쌤

### 업로드 이미지 (9장, 1080x1080)

- cell-1-incar-fair (v-round2): `431704f93354d64849ca9b950b1a58f8`
- cell-2-incar-leader (v-round2): `860a2df81739d8311146d028bb43aa8b`
- cell-3-incar-support (v-round2): `2639214e727e766249d3d72c7745201b`
- cell-4-ga-fair (v1460): `b358438a4a136d6173dc4dacad1c7aa4`
- cell-5-ga-leader (v1460): `d0ed5f2ebdea82adf9bcc4b6d99b938b`
- cell-6-ga-support (v1460): `03762a14491ff58b4d8a4ccbdff978c5`
- cell-7-snu-fair (v-round2): `d7b07745b21c842034957a737de0ad89`
- cell-8-snu-leader (v-round2): `8e43730baea0377fdbfde0bb9fef06d0`
- cell-9-snu-support (v-round2): `0d3c288465dd9e6a93003c9bf7d19aad`

### 타겟팅 설정

- 지역: 서울(2004), 경기도(2006), 충청북도(2001), 충청남도(2010)
- 연령: 30~55세
- 관심사: 보험, 구직, 영업, 보험계약
- Advantage Audience: 비활성화 (수동 타겟팅)
- 입찰 전략: LOWEST_COST_WITHOUT_CAP (자동 입찰)

---

## 미완료 항목 (블로커)

### 1. 크리에이티브 9개 + 광고 18개 미생성
- **원인**: 광고 계정에 Facebook Page가 연결되지 않음
- **현재 토큰 권한**: ads_management, ads_read, public_profile (pages_manage_ads 없음)
- **해결 방법**:
  1. Meta Business Suite에서 Facebook Page를 광고 계정에 연결
  2. 토큰에 `pages_manage_ads` 권한 추가 후 재발급
  3. 스크립트 재실행: `python3 teams/dev5-team/scripts/meta_campaign_setup.py --page-id <PAGE_ID>`

### 2. 세종시 타겟팅
- Meta API가 세종시(city key 2686954)를 대전/충청남도와 지역 중복으로 판정하여 거부
- 충청남도(2010) region에 포함 처리함 (실질적 커버리지 동일)

---

## 발견 이슈 및 해결

### 자체 해결 (4건)

1. **EMPLOYMENT 특수 카테고리 제한** — 빈 배열로 캠페인 재생성
   - EMPLOYMENT 설정 시 국가 단위 타겟팅 + 18-65세만 허용되어 태스크 요구사항(지역/연령 세부 타겟팅) 불가
   - 리쿠르팅 광고이지만 한국 대상이라 EMPLOYMENT 미적용으로 결정

2. **캠페인/광고세트 동시 예산 불가** — 캠페인 레벨 예산 제거, 광고세트 레벨로 통일
   - Meta API가 campaign daily_budget + adset daily_budget 동시 설정 거부
   - `is_adset_budget_sharing_enabled=false` 파라미터 사용

3. **LEAD_GENERATION → OFFSITE_CONVERSIONS** — 최적화 목표 변경
   - OUTCOME_LEADS 캠페인에서 LEAD_GENERATION 최적화 목표 호환 안됨
   - OFFSITE_CONVERSIONS + pixel + LEAD 이벤트로 동일 효과 달성

4. **Advantage Audience 필수 플래그** — targeting_automation.advantage_audience=0 추가
   - Meta API v25.0에서 신규 필수 파라미터

### 범위 외 미해결 (1건)

1. **Facebook Page 미연결** — 범위 외 사유: Meta Business Suite에서 수동 작업 필요 (API 자동화 불가)

---

## 삭제된 캠페인 (시행착오)

- `120244493105990104`, `120244493106120104` — EMPLOYMENT 카테고리 + BID_CAP 자동 설정
- `120244493137160104`, `120244493137420104` — 캠페인 레벨 예산 충돌

---

## 산출물 파일

- `/home/jay/workspace/teams/dev5-team/scripts/meta_campaign_setup.py`
- `/home/jay/workspace/teams/dev5-team/output/meta_campaign_result.json`

---

## 다음 단계 (제이회장님 액션 필요)

1. Meta Business Suite에서 광고 계정에 Facebook Page 연결
2. 토큰 재발급 (pages_manage_ads 권한 포함)
3. 스크립트 재실행으로 크리에이티브 9개 + 광고 18개 생성
4. 전체 구조 확인 후 ACTIVE 전환

---

## 모델 사용 기록

- 엔키(백엔드): 초기 스크립트 작성 / sonnet / -
- 마르둑(팀장): API 디버깅, 파라미터 수정, 수동 API 호출 / opus / 3회 이상 API 오류로 팀장 직접 개입 (Sonnet 위임 후 API 파라미터 문제 발견)

---

## 셀프 QC

- [x] 1. 다른 파일 영향: meta_ads_client.py 수정 없음, 스크립트만 신규 생성
- [x] 2. 엣지 케이스: 토큰 만료, Page 미연결, 예산 충돌 모두 처리
- [x] 3. 작업 지시 일치: 캠페인 2개, 광고세트 6개, 이미지 9장 완료 (크리에이티브/광고는 블로커 명시)
- [x] 4. 에러 처리: 토큰/키 하드코딩 없음, PAUSED 상태 확인
- [x] 5. 테스트: 전체 리소스 API 조회로 검증 완료 (6/6 adsets PAUSED 확인)
- [x] 6. 이슈 해결: 4건 자체 해결, 1건 범위 외 미해결
- [x] 7. 코드 아키텍처: SOLID 위반 없음
- [x] 8. 인터페이스 변경: 없음 (기존 MetaAdsClient 수정 안 함)
- [x] 9. 이미지/배너: 업로드만 수행, HTML→PNG 렌더링 작업 아님
