← ClaudeAtlas

adrevenuelisted

광고 수익 레버 조언 — 퍼널(요청→채움→노출→수익) 병목 판정, 믹스 역전, 레버 우선순위. 게이트가 아니라 조언이다. 트리거 "eCPM", "RPM", "매치율", "show rate", "광고 수익", "수익이 안 나", "퍼널".
snwlee/Nereus · ★ 2 · AI & Automation · score 75
Install: claude install-skill snwlee/Nereus
# adrevenue nereus:common 규칙을 따른다. 담당 에이전트: ads-engineer. **조언자다. 게이트가 아니다.** `violations` 를 내지 않고 `levers` 와 `unanswerable` 을 낸다. 어디에 힘을 쓸지는 **사업 판단**이고, 하네스가 강제하면 하네스가 사업을 결정하게 된다. (`nereus-game:track` 과 같은 규율이다.) ## 0. 퍼널을 뭉치지 않는다 ``` requests ──matchRate──▶ matched ──showRate──▶ impressions ──▶ revenue ``` `Ruling: 퍼널 단계를 하나의 효율 지표로 뭉치지 않는다 — 고칠 곳이 뒤집힌다.` - **matchRate 가 낮다** → 재고·미디에이션·타게팅 신호 문제다. 지면을 늘려도 보여줄 것이 없다. - **showRate 가 낮다** → 지면·동기·원격 설정 문제다. 채움은 멀쩡한데 보여주질 않는 것이다. 도너 실측에서 리워드는 **채움은 높고 노출은 낮았다**. 하나의 "효율" 지표로 뭉쳤다면 채움 쪽을 고쳤을 것이고, 아무것도 안 바뀌었을 것이다. 실제 수치는 여기 적지 않는다 — 계정·시점 종속이라 빨리 낡고, 낡은 수치가 틀린 확신을 만든다. ## 1. 입력 ```json { "formats": [ { "format": "rewarded", "requests": 0, "matched": 0, "impressions": 0, "revenue": 0, "clicks": 0 }, { "format": "fixedBanner", "requests": 0, "matched": 0, "impressions": 0, "revenue": 0 } ], "targets": { "matchRate": 0.8, "showRate": 0.3, "maxCtr": 0.1 } } ``` `targets` 는 **우리가 정하는 기준**이다. 없으면 **병목을 판정하지 않는다** — 기본값을 지어내면 그럴듯하게 틀린다. 판정을 안 했다는 사실은 `unanswerable` 에 남는다. ```bash echo '{"formats":[…],"targets":{…}}' | node "${CLAUDE_PLUGIN_ROOT}/lib/ad-funnel.mjs" ``` 출력: `{ rates, bottleneck, levers, unanswerable }` ## 2. 레버 순서 — 위에서부터 본다 순서가 곧 방법론이다. 아래를 먼저 손대면 위가 그대로라 효과가 상쇄된다. ### A. show rate **가장 먼저다.** 채워 놓고 안 보여준 노출은 이미 값을 치른 재고다. 지면을 늘리거나(=`adplacement` 의 축) 리워드 동기를 명확히 하거나 원격 설정으로 꺼둔 지면이 없는지 본다. `bottleneck[format] === "show"` 로 나온다. ### B. 믹스 역전 노출 점유 > 수익 점유인 포맷. **기준 없이도 판정된다** — 점유율끼리의