테마
Story: 영역별 순이익 분석
메타
| 항목 | 값 |
|---|---|
| Story ID | E-04-S-06 |
| Epic | E-04 Phase 2 순이익 번역 |
| 상태 | ready-for-dev |
| 우선순위 | P1 |
| 규모 | M |
| 담당 개발자 | 수민 (FE), 하록 (BE) |
사용자 스토리
As a 캠페인 전체 ROAS는 괜찮은데 어디서 새는지 모르는 셀러,
I want 검색/비검색/리타게팅 영역별 순이익을 보고 싶다,
So that 문제 영역을 찾아서 집중 개선할 수 있다.
수락 기준 (Acceptance Criteria)
AC-01: 영역별 순이익 표시
| 항목 | 내용 |
|---|---|
| Given | 캠페인에 영역별 데이터가 있을 때 |
| When | 캠페인 카드를 펼치고 "영역별 분석"을 볼 때 |
| Then | 검색/비검색/리타게팅 각각의 "100원당 X원" 순이익이 표시된다 |
┌─────────────────────────────────────────────────────────────┐
│ ▼ 영역별 분석 │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 🔍 검색 100원당 +25원 🟢 광고비 비중 50% │ │
│ │ 📺 비검색 100원당 -15원 🔴 광고비 비중 35% │ │
│ │ 🎯 리타게팅 100원당 +10원 🟡 광고비 비중 15% (참고) │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘AC-02: 영역별 광고비 비중
| 항목 | 내용 |
|---|---|
| Given | 영역별 분석이 표시될 때 |
| When | 각 영역의 광고비 비중을 표시할 때 |
| Then | 전체 광고비 대비 해당 영역의 비중(%)이 표시된다 |
AC-03: 영역별 Status Badge
| 항목 | 내용 |
|---|---|
| Given | 영역별 순이익이 표시될 때 |
| When | 값에 따라 |
| Then | 🟢/🟡/🔴 컬러 배지가 표시된다 |
🟢 건강: 100원당 +30원 이상
🟡 본전: 100원당 0~30원
🔴 손해: 100원당 음수AC-04: 영역별 조언 메시지
| 항목 | 내용 |
|---|---|
| Given | 손해 영역이 있을 때 |
| When | 영역별 분석 하단에 |
| Then | 해당 영역 우선 개선 조언이 표시된다 |
🔍 검색 영역 조언:
A-S1. 검색 손해 + 자동 → "검색에서 손해예요. 목표 ROAS를 높여보세요."
A-S2. 검색 손해 + 수동 → "검색에서 손해예요. 검색 입찰가를 낮춰보세요."
A-S3. 검색 건강 → "검색에서 잘 벌고 있어요!"
📺 비검색 영역 조언:
A-N1. 비검색 손해 → "비검색에서 손해예요. 비검색 입찰가를 낮춰보세요."
A-N2. 비검색 본전 → "비검색은 본전이에요. 입찰가를 조금 낮춰보세요."
A-N3. 비검색 건강 → "비검색에서 잘 벌고 있어요!"
🎯 리타게팅 영역 조언:
A-R1. 리타게팅 손해 → "리타게팅 효율이 낮아요. 상품 페이지 전환율을 확인해보세요." (참고)
A-R2. 리타게팅 정상 → "리타게팅은 괜찮아요. (CPC가 낮아서 효율 좋은 편)" (참고)
※ 리타게팅은 셀러 컨트롤 제한적 → "참고" 수준 조언AC-05: 영역별 우선순위
| 항목 | 내용 |
|---|---|
| Given | 여러 영역이 손해일 때 |
| When | 조언 메시지를 표시할 때 |
| Then | 손해 금액이 가장 큰 영역을 먼저 표시한다 |
우선순위 = 해당 영역의 "손해 금액" 기준
├─ 손해 금액이 가장 큰 영역 먼저 표시
├─ 리타게팅은 셀러 컨트롤 어려움 → 항상 마지막
└─ 검색 vs 비검색은 광고비 비중 고려AC-06: 리타게팅 "참고" 라벨
| 항목 | 내용 |
|---|---|
| Given | 리타게팅 영역이 표시될 때 |
| When | 조언과 함께 |
| Then | "참고" 라벨이 표시되고, 툴팁으로 설명 제공 |
🎯 리타게팅 (참고)
└─ 툴팁: "리타게팅은 쿠팡이 자동 운영해요. 셀러가 직접 조정할 수 없어서 참고만 하세요."태스크 분해
Task 1: BE - 영역별 순이익 API AC-01, AC-02
- [ ] 1.1: 영역별 데이터 조회 쿼리 (CoupangAdExposureDaily.exposureArea)
- [ ] 1.2: 영역별 순이익 계산 로직
- 영역 순이익 = 영역 전환매출 - (영역 전환 상품원가) - 영역 광고비
- 영역 100원당 = (영역 순이익 / 영역 광고비) × 100
- [ ] 1.3: 영역별 광고비 비중 계산
- [ ] 1.4: API 응답에 영역별 필드 추가
Task 2: BE - 영역별 조언 로직 AC-04, AC-05
- [ ] 2.1: 영역별 조언 케이스 판정 (A-S1~3, A-N1~3, A-R1~2)
- [ ] 2.2: 영역별 우선순위 계산 (손해 금액 기준)
- [ ] 2.3: 조언 메시지 템플릿 반환
Task 3: FE - 영역별 분석 UI AC-01, AC-02, AC-03
- [ ] 3.1: 영역별 분석 펼치기 섹션
- [ ] 3.2: 영역별 100원당 순이익 + 광고비 비중 표시
- [ ] 3.3: Status Badge 컬러 코딩
Task 4: FE - 영역별 조언 UI AC-04, AC-05, AC-06
- [ ] 4.1: 영역별 조언 메시지 표시
- [ ] 4.2: 손해 영역 우선 표시 로직
- [ ] 4.3: 리타게팅 "참고" 라벨 + 툴팁
Task 5: GA4 이벤트
- [ ] 5.1:
view_area_analysis이벤트 구현 - [ ] 5.2:
click_area_advice이벤트 구현
데이터 소스
CoupangAdExposureDaily 테이블
├─ exposureArea: 노출 영역 (검색 영역, 비검색 영역, 리타게팅(외부 채널))
├─ exposureCount: 영역별 노출 수
├─ clickCount: 영역별 클릭 수
├─ adCost: 영역별 광고비
└─ (전환 데이터는 별도 조인 필요)
영역별 분포 (DB 분석 2026-01-27, 최근 30일):
• 검색 영역: 48.2% (CTR 3.15%, CPC 861원, ROAS 338%)
• 비검색 영역: 33.2% (CTR 0.11%, CPC 295원, ROAS 388%)
• 리타게팅(외부 채널): 18.6% (CTR 2.98%, CPC 39원, ROAS 313%)이벤트 로깅
| 이벤트명 | 트리거 | 파라미터 |
|---|---|---|
view_area_analysis | 영역별 분석 노출 | {campaign_id, search_profit, nonsearch_profit, retarget_profit} |
click_area_advice | 영역별 조언 클릭 | {campaign_id, area: 'search'/'nonsearch'/'retargeting', advice_case} |
API 응답 예시
json
{
"campaignId": "123",
"profitPer100": 5,
"areaAnalysis": {
"search": {
"profitPer100": 25,
"status": "healthy",
"adCostRatio": 0.50,
"adCost": 150000,
"advice": {
"case": "A-S3",
"message": "검색에서 잘 벌고 있어요!"
}
},
"nonsearch": {
"profitPer100": -15,
"status": "loss",
"adCostRatio": 0.35,
"adCost": 105000,
"advice": {
"case": "A-N1",
"message": "비검색에서 손해예요. 비검색 입찰가를 낮춰보세요.",
"actionUrl": "https://ads.coupang.com/..."
}
},
"retargeting": {
"profitPer100": 10,
"status": "breakeven",
"adCostRatio": 0.15,
"adCost": 45000,
"isReference": true,
"advice": {
"case": "A-R2",
"message": "리타게팅은 괜찮아요. (CPC가 낮아서 효율 좋은 편)"
}
}
},
"priorityArea": "nonsearch",
"priorityAdvice": "비검색에서 가장 많은 손해가 나고 있어요. 비검색 입찰가를 먼저 낮춰보세요."
}의존성
- E-04-S-01: 순이익 번역 (기본 계산 로직)
- E-03-S-01: 검색/비검색/리타게팅 분리 판정 로직 (Status Badge 공유)
생성일: 2026-01-27
