Files
2nd/10_Wiki/Topics/Domain_General/Game_Design/CPI (Cost Per Install).md
T
Antigravity Agent c24165b8bc refactor(topics): 멀티 에이전트용 지식 재편 — _Common(공통 기본기) + Domain_* 구조
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게
[공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류.
문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인).

- Topic_Programming → Domain_Programming (내부 구조 보존)
- Topic_Graphic → Domain_Design
- Topic_Business → Domain_Product
- Topic_General → Domain_General
- _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning),
  Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing)
- 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서)
- 빈 폴더 정리 (memory/procedures)
- 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 11:05:56 +09:00

4.9 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score verification_status tags raw_sources last_reinforced github_commit tech_stack
wiki-2026-0508-cpi-cost-per-install CPI (Cost Per Install) 10_Wiki/Topics verified self
CPI
cost-per-install
install-cost
none A 0.92 applied
mobile
marketing
ua
monetization
ltv
2026-05-10 pending
language framework
analytics ua-channel

CPI (Cost Per Install)

매 한 줄

"매 신규 install 1건당 marketing 비용". 매 mobile UA (User Acquisition) 의 가장 fundamental metric. 매 LTV (lifetime value) 와 매 짝 — 매 LTV > CPI 면 매 ROI positive. 매 2026 iOS ATT post-era 에서 매 CPI 는 매 $3-15 (US tier-1) 의 일반.

매 핵심

매 정의

  • CPI = 총 ad spend / 매 attributed install 수.
  • paid CPI: 매 광고로 attributed 된 매 install 만.
  • blended CPI: 매 paid + organic 합산.
  • organic uplift: 매 paid campaign 에 의한 매 organic install 증가.

매 영향 요인

  • Geo: 매 US/JP/KR > EU > LatAm > India.
  • Platform: 매 iOS 가 매 Android 보다 매 2-4x 비쌈.
  • Genre: 매 mid-core RPG > casual > hyper-casual.
  • Creative: 매 video > playable > static.
  • Targeting: 매 lookalike < broad < whale-target.

매 응용

  1. 매 ROAS (Return on Ad Spend) D7/D30 추적.
  2. 매 channel mix optimization.
  3. 매 creative A/B 의 매 cost-efficiency 비교.

💻 패턴

CPI 계산

type Campaign = {
  id: string;
  spend: number;
  attributed_installs: number;
  organic_installs: number;
};

function paidCPI(c: Campaign): number {
  return c.attributed_installs > 0
    ? c.spend / c.attributed_installs
    : Infinity;
}

function blendedCPI(c: Campaign): number {
  const total = c.attributed_installs + c.organic_installs;
  return total > 0 ? c.spend / total : Infinity;
}

function organicUplift(c: Campaign, baseline_organic: number): number {
  return Math.max(0, c.organic_installs - baseline_organic);
}

Channel ROAS rollup

type ChannelDay = {
  channel: "facebook" | "google" | "tiktok" | "applovin";
  date: string;
  spend: number;
  installs: number;
  d7_revenue: number;
  d30_revenue: number;
};

function rollupROAS(days: ChannelDay[]) {
  const byCh = new Map<string, ChannelDay>();
  for (const d of days) {
    const cur = byCh.get(d.channel) ?? { ...d, spend: 0, installs: 0, d7_revenue: 0, d30_revenue: 0 };
    cur.spend += d.spend;
    cur.installs += d.installs;
    cur.d7_revenue += d.d7_revenue;
    cur.d30_revenue += d.d30_revenue;
    byCh.set(d.channel, cur);
  }
  return [...byCh.values()].map(c => ({
    channel: c.channel,
    cpi: c.spend / c.installs,
    roas_d7: c.d7_revenue / c.spend,
    roas_d30: c.d30_revenue / c.spend,
  }));
}

Bid-cap calculator (target ROAS)

function maxBidForROAS(target_roas: number, expected_ltv_d30: number): number {
  // CPI <= LTV / target_roas
  return expected_ltv_d30 / target_roas;
}

// Example: $5 LTV, target 1.2 ROAS → max CPI $4.17

Cohort LTV vs CPI tracker

function cohortPayback(cohort_installs: number, cpi: number, daily_arpu: number[]): number {
  let cum = 0;
  for (let day = 0; day < daily_arpu.length; day++) {
    cum += daily_arpu[day];
    if (cum >= cpi) return day; // payback day
  }
  return -1; // not paid back
}

SKAdNetwork-aware attribution (iOS post-ATT)

interface SKANPostback {
  campaign_id: number;     // 0-99
  conversion_value: number; // 0-63 (6-bit)
  redownload: boolean;
}

function decodeCV(cv: number): { revenue_bucket: number; engagement: number } {
  // Custom schema — common: bits 0-3 revenue, 4-5 engagement
  return {
    revenue_bucket: cv & 0b1111,
    engagement: (cv >> 4) & 0b11,
  };
}

매 결정 기준

상황 Approach
매 hyper-casual Low CPI ($0.5-2) + IAA monetization
매 casual Medium CPI ($2-5) + IAP + IAA
매 mid-core RPG High CPI ($5-15) + deep IAP
매 4X / strategy Very high CPI ($15-50) + whale-LTV

기본값: 매 D7 ROAS > 0.3, D30 ROAS > 0.7 의 매 channel 만 scale.

🔗 Graph

🤖 LLM 활용

언제: 매 UA budget planning, channel comparison, ROAS analysis. 언제 X: 매 organic-only product — 매 paid UA 의 X.

안티패턴

  • Blended-only 추적: 매 paid 의 incrementality 의 hidden.
  • CPI 만 tracking: 매 LTV 의 무시 — 매 negative ROI scaling.
  • Day-1 만 보기: 매 long-tail 의 무시.
  • iOS = Android 가정: 매 2-4x 차이.

🧪 검증 / 중복

  • Verified (AppsFlyer 2025 benchmark, Liftoff Casual Gaming Apps Report).
  • 신뢰도 A.

🕓 Changelog

날짜 변경
2026-05-08 Phase 1
2026-05-10 Manual cleanup — CPI definition + UA channel measurement patterns.