Skip to content

수익 모델 + Quota / 광고 정책

현재 정책 (2026-05-25 기준 — quota V4 주 단위 + PRO 구독)

AI 분석 quota

  • 무료 주 10 회 (매주 월요일 00:00 KST reset)
  • 가입 보너스 폐지 — 첫 경험 일관성 위해 (V3 의 5+5 → 갑자기 5 의 절벽 제거)
  • 광고 시청 → +1 회 충전 (= used_count -= 1, 음수 허용)
    • 무제한 시청, 단 주 reset 시 음수도 0 으로 초기화 — 이월 불가
    • SSV 가 Google 서버에서 실제 광고 시청 검증
    • ad_reward_transactions 테이블은 SSV 중복 콜백 차단 (idempotency) 전용. 광고 횟수 UI 노출 없음
  • 짧은 공시 (doc_length < 1000 자): quota 차감 X, 자동 노출
  • 이미 본 공시 재진입: 차감 X, 자동 노출 (user_revealed_disclosures SoT)
  • 한줄요약: 전체 무료, 100 자, gate 없음

슬롯

  • capacity 한도 안에서 add/remove 자유 (cooldown / counter X)
  • 티어별 상한: 무료 3 / PRO 30 / MAX 100 (entitlement.Tier.SlotCapacity(), 전용 컬럼 없이 premium_tier 에서 파생 — 폐기된 slot_capacity 컬럼은 migration 00018 제거). 티어 하락 시 다운그레이드 자동 정리 — domain-subscription
  • 사용자에 한도는 페이월/구독 화면에만, 인디케이터엔 익명
  • (폐기) 종목 단건 결제로 capacity ↑ — 구독 티어로 흡수

구독 2티어 (유일 IAP) — 2026-05-25 확정

티어가격/월주간 분석관심종목
PRO₩1,0006030
MAX₩2,000200100
  • 자동갱신 구독 (dartbrief.pro.monthly / dartbrief.max.monthly, iOS/Android). 차등 축 = 주간 분석 한도 + 관심종목 수.
  • 엔타이틀먼트 진실 = 서버(users.premium_tier + premium_until), 검증 = verify + 스토어 웹훅. 상세 domain-subscription / api/subscription
  • (폐기) ad_free_pass ₩2,900 일회성 — 구독으로 대체. 광고 제거(=한도 상향)는 구독에 포함
  • 무제한 폐기: reveal 을 티어별 주간 한도(10/60/200)로. 종목당 ~1.3건/주 데이터 기반 — 평상시 미도달, 피크·헤비유저 도달로 상위 티어 유도. reveal 원가≈0이라 한도 목적은 비용이 아니라 펀넬/어뷰즈.

Why

비용 모델 (정정)

LLM 호출 = 공시당 1회 (스케줄러가 분석 시). 사용자 reveal 은 analysis_cache DB 조회 — LLM 추가 호출 없음. 즉 사용자 reveal 횟수는 LLM 비용과 무관. DGX GPU 부하는 공시 발생 빈도(수급 측) 에만 비례.

따라서 quota cap 의 목적은:

  1. 구독 funnel — "주 한도 → 광고 또는 PRO/MAX 상위 티어" 흐름의 hook
  2. 다중 계정 어뷰즈 방어 보조 — App Check + SSV 1차 방어 + cap 으로 ROI 추가 하향
  3. 사용자 인지 가치 — 한도(10/60/200)가 분석 가치 신호 + 천장 역할

cap 자체가 비용 통제는 아님 (V3 까지 잘못 표기됐던 부분). 그래서 V4 에서 한도 후함 (월 5 → 주 10) + 가입 보너스 절벽 제거로 첫 경험 거부감 ↓ 에 집중.

정책 선택지유

  • 주 단위 quota = 어닝 시즌 burst 흡수 (공시 5+ 연속 시 1주 끝 → 다음 주 reset). 월 단위는 1주차 소진 후 3주 단식 위험.
  • 주 10 회 = 평균 사용자 충분, 광고/IAP 전환은 hyper user 만 노림.
  • 가입 보너스 폐기 = "처음 10 → 갑자기 5" 절벽이 거부감 더 큼. 일관된 주 10 이 깔끔.
  • ad_bonus 주 reset = used_count 와 정합. 누적이면 "이번 주 reset 시 ad_bonus 도 같이 reset?" 애매성 제거.
  • 광고 무제한 시청 = SSV 가 실제 시청 검증. 클라이언트 cap 불필요.
  • 짧은 공시 면제 = 사용자 신뢰 + 인지 가치 (가벼운 공시는 어차피 차감하면 거부감만).
  • 구독 2티어 (2026-05-25, 일회성 ad_free 번복) = "매일 갱신되는 분석에 지속 접근"은 일회성보다 구독 가치 제안이 자연스럽고 MRR 로 잡힘. 구독 webhook(ASSN V2 / Play RTDN) 복잡도는 회피 사유였으나 Pub/Sub push 라우팅으로 감당 가능 재평가.
  • 2티어 차등 축 = 분석 한도 + 종목 수 (단일 무제한 X) = 종목당 ~1.3건/주 데이터상 30~100종목을 풀면 분석 수요가 40~130/주 → 무제한 캡이 자기모순. 그래서 종목 수(30/100)와 주간 한도(60/200)를 함께 올리는 사다리. 헤비유저 = 지불의사 높음 가설. 리스크: 차등이 종목 수 위주라 MAX 전환율이 관건(재조정 트리거에서 점검).

손익분기

MAU ~2,000명 (서버비 ₩60,000 ~ ₩80,000 / 월 기준)

재조정 트리거

6 개월 후 또는 MAU 1,000 도달 시 매출 데이터 기반 재토론.

정책 진화 이력

날짜변경
2026-04-24 (V1)일 3 회 + 광고 +1 + 슬롯 ₩1,490 (구독 X)
2026-04-29슬롯 V3→V4→V5→V6: cooldown / 카운터 폐기 → capacity 만
2026-04-30Quota V3: 일 → 월 단위 + 신규 가입 보너스 + 짧은 공시 면제
2026-04-30광고 무제한: 일 7 회 cap 폐기, 월 200 하드캡
2026-04-30Lazy reveal: 자동 차감 → 명시적 보기 버튼
2026-05-02AdMob SSV: prod 광고 보상 경로를 클라이언트 claim → Google SSV 콜백으로 전환
2026-05-03월 ad_bonus 200 하드캡 제거 (SSV 도입으로 클라이언트 cap 불필요)
2026-05-03key_points_json 포맷을 ||| 구분자에서 JSON 배열로 전환 (migration 00011)
2026-05-25수익 모델 = 구독 2티어 (PRO ₩1,000 / MAX ₩2,000). 일회성 ad_free_pass 번복·대체. 차등 = 주간 분석(60/200) + 관심종목(30/100). reveal 무제한 폐기 → 티어별 주간 한도(데이터 기반). premium_tier 컬럼 + 스토어 웹훅. spec: domain-subscription
2026-05-06 (V4)월 → 주 단위 quota (10/주, 월요일 KST reset), 가입 보너스 폐기, ad_bonus 컬럼 제거 (광고 보상은 used_count -= 1 로 표현, 음수 허용). 비용 프레이밍 정정 (LLM 호출은 공시당 1회, reveal 은 캐시 조회). 마이그레이션 없이 user_analysis_quota drop & recreate (서비스 미가동)

자세한 광고/quota 토론 이력: quota-ad-v3.md