---
name: bomnuri-ads
description: 쿠팡 파트너스 링크 하나로 봄누리(bomnuri.com, 한국 육아 정보 사이트 네트워크)에 문맥 광고를 만들고 검토에 제출한다. 광고주가 「이 쿠팡 링크로 광고 올려줘」「봄누리 광고 상태·성과 알려줘」「거절된 소재 고쳐줘」라고 할 때 쓴다. MCP 서버 bomnuri-ads(https://bomnuri.com/mcp)가 연결돼 있어야 한다.
---

# 봄누리 광고 — 쿠팡 링크 하나로 광고 올리기

광고주가 준 **쿠팡 파트너스 링크**로 캠페인 초안 → 소재 → 정책 검사 → 검토 제출까지 하고, 결과를 사람 말로 전한다.
**돈이 나가는 일은 이 스킬로 하지 않는다** — 만들기는 늘 초안이고, 검토를 통과해도 「결제 연결 전」에서 멈춘다. 집행 시작은 사람이 콘솔에서 한다.

## 0. 연결 확인

- 도구 이름이 `mcp__bomnuri-ads__…`(또는 클라이언트가 붙인 다른 접두사 + `get_account` 등)로 보여야 한다. 없으면 연결 방법을 알려 주고 멈춘다:
  - API 키: 콘솔(https://console.bomnuri.com/keys/)에서 발급 → `claude mcp add --transport http bomnuri-ads https://bomnuri.com/mcp --header "Authorization: Bearer pcads_…"`
  - 키를 못 넣는 클라이언트는 주소(`https://bomnuri.com/mcp`)만 넣으면 OAuth 로그인·동의 화면이 뜬다.
- 처음에는 **`get_account`** 를 한 번 부른다 — 광고주 이름, 스코프(`ads:read`/`ads:write`), 한도, 집행 순서가 온다.
  `ads:write` 가 없으면 만들 수 없다고 말하고 읽기(상태·성과)만 한다.
- 키 값(`pcads_…`)은 대화·파일·커밋에 다시 적지 않는다.

## 1. 받을 것 — 링크만 있으면 시작한다

| 항목 | 필수 | 없을 때 |
|---|---|---|
| 쿠팡 파트너스 링크(`https://link.coupang.com/a/…` 또는 `https://coupa.ng/…`) | **필수** | 묻는다. 일반 쿠팡 상품 주소·다른 단축 주소는 안 된다 — 파트너스에서 만든 링크를 그대로 달라고 한다 |
| 상품명 | 필수 | 사용자 문장에서 뽑는다. 없으면 묻는다(링크 안을 열어 추측하지 않는다) |
| 기간 | 선택 | 오늘(KST)부터 7일. 「3일」「일주일」「이번 달」은 날짜로 바꿔 `startDate`·`endDate`(끝 날 포함) |
| 예산 | 선택 | 말하면 `budgetType`(하루=daily·총=total)·`budgetAmount`(원). 말 안 하면 비워 둔다 |
| 클릭당 금액 | 선택 | 「클릭당 300원」 → `bidStrategy:"cpc"`, `bidAmount:300` |
| 육아 단계·주제 | 선택 | 「신생아」→`newborn`, 「영아」→`infant`, 「임신」→`pregnancy`, 「유아」→`toddler`, 「미취학」→`preschool`. 주제·사이트는 `list_targeting_options` 의 값만 |

**한 번에 하나만 묻는다.** 필수(링크·상품명)가 다 있으면 묻지 말고 진행한다. 기간·예산·단계는 기본값으로 가고 끝에 「바꾸려면 말해 주세요」로 알린다.

## 2. 흐름 (이 순서로, 한 요청에 캠페인 하나)

1. **문안** — `suggest_ad_copy {productName, keywords, landingUrl, facts?}`. 정책을 통과한 초안 최대 3개와 추천 지면이 온다(20~40초 걸릴 수 있다).
   사용자가 문안을 직접 줬으면 이 단계를 건너뛰고 `check_policy` 로 먼저 검사한다.
2. **초안** — `create_campaign_draft {name, startDate, endDate, budgetType?, budgetAmount?, bidStrategy?, bidAmount?, targeting:{stages?, categories?, keywords?}}`.
   이름은 「상품 + 기간」(예: 「아기 거즈 손수건 3일」). 확신이 없으면 먼저 `dryRun:true` 로 확인한다.
3. **소재** — `add_creative_from_coupang_url {campaignId, landingUrl, productName, headline, body, productCategory?, approvalRefs?}`.
   `headline`·`body` 는 1단계 초안 중 하나를 그대로. 422(정책)면 `issues` 를 읽고 고쳐 다시(아래 3절).
4. **제출** — `submit_for_review {campaignId}`. 자동 정책 검사 뒤 운영팀이 사람 검토를 한다(자동 승인 없음).
5. **확인** — `get_campaign_status {campaignId}` 로 실제 상태를 읽고, 응답의 `nextStep` 문장을 사람에게 그대로 전한다.

재시도할 때는 쓰기 도구에 같은 `idempotencyKey`(아무 문자열, 요청마다 하나)를 넣어 두 번 만들어지지 않게 한다.

## 3. 정책 — 실수하기 쉬운 것

모든 광고에 「광고」 표시·대가성 문구가 자동으로 붙는다. 문안에는 **상품의 사실(소재·크기·구성·용도)만** 쓴다.

| 걸리는 것(code) | 예 | 어떻게 |
|---|---|---|
| 분유·조제유(`PROHIBITED_INFANT_FORMULA`)·의약품(`PROHIBITED_DRUG`)·성인·주류 등 | 「신생아 분유」「해열제」 | **받지 않는다.** 만들지 말고 이유를 말한다(분유 포트·분유 케이스 같은 용품은 된다) |
| 질병 예방·치료 효능(`PROHIBITED_DISEASE_CLAIM`) | 「면역력 강화」「아토피 예방」 | 효능 문장을 빼고 사실만 |
| 절대 표현(`PROHIBITED_FALSE_CLAIM`) | 「100% 안전」「부작용 없음」 | 뺀다 |
| 후기·체험기·구매 수치(`PROHIBITED_FAKE_REVIEW`) | 「써 보니 좋아요」「엄마 1만 명 선택」 | 1인칭 후기·수치를 뺀다 |
| 불안 조장(`PROHIBITED_FEAR_APPEAL`) | 「안 쓰면 큰일」 | 뺀다 |
| 전문가 추천(`PROHIBITED_PROFESSIONAL_ENDORSEMENT`) | 「소아과 의사 추천」 | 뺀다 |
| 비교·비방(`PROHIBITED_DISPARAGEMENT`) | 「타사보다 부드러운」 | 뺀다 |
| 어린이제품(`RESTRICTED_CHILD_PRODUCT` — 카시트·유모차·장난감·아기띠…) | | **KC 인증번호**를 `approvalRefs.kc` 에. 없으면 그대로 제출하고 「운영 검토 때 KC 번호를 확인해요」라고 알린다 |
| 건강기능식품·의료기기·의약외품·영유아 특수식품 | 유산균·체온계·손 소독제 | 심의필·허가 번호를 `approvalRefs`(`health_food_review`·`medical_device_review`·`quasi_drug`·`special_food_review`)에 |
| 최상급(`RESTRICTED_SUPERLATIVE`) | 「1위」「최고」 | 근거가 없으면 빼는 게 낫다(넣으려면 `approvalRefs.claim_source`) |
| 안전 단정(`RESTRICTED_SAFETY_CLAIM`) | 「안전한」「저자극」「자극 걱정 없이」 | 소재·인증 사실(「순면 100%」「KC 인증」)로 바꾸는 게 낫다(넣으려면 `approvalRefs.safety_evidence`) |
| 글자 수·기호(`EDITORIAL_*`) | | 제목 30자·설명 60자·상품명 40자, 이모지·★·느낌표 반복·「오늘만」 금지 |
| 링크(`TECHNICAL_LANDING_URL`) | 일반 쿠팡 주소·bit.ly | 파트너스 링크 그대로 |

`check_policy {headline, landingUrl, body?, productName?, productCategory?, approvalRefs?}` 는 저장하지 않고 검사만 한다 — 사용자가 쓴 문안은 넣기 전에 한 번 돌린다.
타기팅은 **문맥(사이트·주제·키워드·육아 단계)만**이다. 나이·성별·관심사·위치 같은 사람 정보로는 할 수 없다 — 요청받으면 그렇게 말한다.

## 4. 결제 전 멈춤 — 사람에게 이렇게 말한다

- 검토 중(`in_review`): 「운영팀이 광고를 검토하고 있어요. 보통 영업일 1~2일 걸려요. 결과는 콘솔 캠페인 화면에서 볼 수 있어요.」
- 승인 뒤(`awaiting_payment`): 「광고 검토를 통과했어요. 결제 연결 기능을 준비하고 있어서 아직 광고가 나가지 않아요. 운영팀이 시범 집행을 열면 바로 노출됩니다.」
- **집행 시작·재개·결제는 이 스킬로 할 수 없다**(도구가 없다). 「켜 줘」「바로 내보내 줘」라고 하면 그렇게 말하고, 지금 상태를 `get_campaign_status` 로 읽어 전한다.
  멈추기(`pause_campaign`)만 된다. 급하면 콘솔 캠페인 화면의 「시범 집행 요청」 버튼으로 운영팀에 요청할 수 있다고 안내한다(운영자가 발급한 쿠팡 파트너스 링크 상품만 열린다 — 아니면 그 화면이 이유를 보여 준다). 그 밖의 문의는 contact@bomnuri.com.
- 검토는 영업일 1~2일 걸린다. 기간이 3일 이하처럼 짧으면 만들되, 보고 끝에 「검토가 끝나면 노출 기간이 거의 안 남을 수 있어요 — 늘릴까요?」를 한 줄 붙인다.
- 클릭당 금액을 비우면 0원, 예산을 비우면 「없음」으로 저장된다. 비웠다면 그 사실을 보고에 적는다.

## 5. 하지 말 것

- 실제로 부르지 않은 도구의 결과를 말하지 않는다 — 「제출했어요」는 `submit_for_review` 가 성공한 뒤에만, 상태는 `get_campaign_status` 로 읽은 값만.
- 한 요청에 캠페인을 여러 개 만들지 않는다. 문안을 여러 개 원하면 같은 캠페인에 소재로 넣는다(2~3개면 충분, 캠페인당 10개까지).
- 링크를 줄이거나 바꾸지 않는다. 링크 안의 상품 페이지를 긁어 문안을 지어내지 않는다.
- 같은 호출을 같은 인자로 되풀이하지 않는다 — 실패하면 오류의 `message`·`issues` 를 읽고 고친다.

## 6. 오류

| 응답 | 뜻 | 할 일 |
|---|---|---|
| 422 `policy` | 정책 위반 — `issues[].code·message` | 3절대로 고쳐 다시. `prohibited` 면 멈추고 설명 |
| 403 `insufficient_scope` | 읽기 전용 키 | 쓰기 키가 필요하다고 안내 |
| 401 | 키 없음·폐기·만료 | 콘솔에서 새 키를 발급받으라고 안내 |
| 429 | 한도(키당 분 60·쓰기 20, 문안 광고주당 하루 20) | `Retry-After` 만큼 기다리거나 내일 |
| 404 | 없는 캠페인 또는 남의 것 | `list_campaigns` 로 다시 찾는다 |

오류의 `message` 는 사람에게 그대로 전해도 되는 한국어 문장이다.

## 7. 상태·성과 묻기

- 「광고 어떻게 됐어?」 → `list_campaigns` → 필요한 것만 `get_campaign_status`. 소재별 `reviewStatus`·`policyCodes`·`reason` 으로 거절 사유를 설명하고, 고칠 수 있으면 `update_creative` 로 고쳐 다시 `submit_for_review`.
- 「성과 알려줘」 → `get_report {campaignId, from?, to?}`(기본 최근 7일, 최대 92일) — 노출(served)·보임(viewable)·클릭·CTR. 봇·AI 활동은 빼고 센다.

## 예시

> 사용자: https://link.coupang.com/a/xxxx 아기 거즈 손수건 광고 3일, 신생아 단계로
>
> (get_account → suggest_ad_copy → create_campaign_draft{3일·stages:[newborn]} → add_creative_from_coupang_url → submit_for_review → get_campaign_status)
>
> 에이전트: 「아기 거즈 손수건 3일」 캠페인을 만들어 검토에 제출했어요(10-17~10-19, 신생아 단계). 소재 제목은 「신생아 거즈 손수건 30매」예요.
> 운영팀이 광고를 검토하고 있어요. 보통 영업일 1~2일 걸려요. 승인돼도 결제 연결 전이라 바로 노출되지는 않아요.
