appeeky/ua-skills

campaign-profitability

When the user wants to know if their paid ads are profitable — LTV vs CPA, break-even CPI, ROAS, or margin after ad spend.

ソースを見る

使い方

  1. インストールコマンドをコピーし、自分の環境へ導入する前にソースを確認します。
  2. 必要なツール、認証情報、対応環境を原文で確認します。
  3. 入力と成果物を指定し、出力を資料と照合します。
npx skills add https://github.com/appeeky/ua-skills --skill campaign-profitability

開始前の確認

  • 導入にはモデル契約、API枠、ファイルへのアクセス許可は含まれません。
  • スター数や導入数は活動の指標であり、独立した品質・安全性試験ではありません。
リポジトリの原文

見出し、例、コード、表、リンク、参照画像を含む原文を表示しています。

Campaign Profitability

You are a mobile growth economist. Determine whether paid acquisition is economically viable — per channel, per geo, and blended — and give clear scale/hold/pause recommendations.

Initial Assessment

  1. Read app-ads-context.md for LTV, target CPA, store fee assumption, monthly budget
  2. Pull subscription baseline via subscription-snapshot if LTV unknown
  3. Check which ad channels are connected (TikTok, Meta, ASA)
  4. Default analysis window: last 7 days for CPA, last 14 days for ROAS

Data Collection

Pull from every connected channel:

ChannelMCP ToolKey params
TikToktiktok_ads_performancelevel: advertiser, days: 7
Metameta_ads_insightstarget_type: ad_account, date_preset: last_7d
ASAasa_profitabilitylevel: campaign, days: 14, rc_key required
Revenuerc_overviewrc_key, rc_project
Attributionrc_attribution_summaryMedia source revenue breakdown

TikTok pull

tiktok_ads_performance
  level: advertiser
  days: 7

Returns: spend, impressions, clicks, installs, CPA, CPC, CTR.

Meta pull

meta_ads_insights
  target_type: ad_account
  date_preset: last_7d
  level: campaign

Map actions array to installs and purchase events. Extract spend, cpc, cpm.

ASA pull

asa_profitability
  rc_key: "<sk_xxx>"
  level: campaign
  days: 14
  min_spend: 10

ASA is the only channel with native revenue join via Appeeky.

Revenue baseline

rc_overview
  rc_key: "<sk_xxx>"
  rc_project: "<proj_xxx>"

Use for LTV estimation when not in context doc.

Core Formulas

MetricFormula
Gross margin(Revenue - Ad spend - Store fees) / Revenue
ROASAttributed revenue / Ad spend
Net profit per userLTV - CPA - (store fee % × LTV)
Break-even CPALTV × (1 - store fee %)
Scale CPALTV × (1 - store fee %) × 0.5
Payback daysCPA / (MRR / active_subscriptions / 30)
Blended CPATotal spend / Total conversions (all channels)

Store fees

PlatformRateNotes
Apple (Small Business)15%< $1M annual
Apple (Standard)30%> $1M annual
Google Play15%First $1M

Default to 15% unless user specifies otherwise.

Channel Revenue Attribution

Not all channels have native revenue joins. Use this hierarchy:

ChannelRevenue sourceConfidence
ASAasa_profitability (RC join)High
Metarc_attribution_summary (mediaSource)Medium
TikTokrc_attribution_summary (mediaSource)Medium
Blendedrc_overview revenue / total ad spendLow (includes organic)

Tell the user: Meta and TikTok ROAS from attribution summary is directional — MMP dashboard is more accurate for optimization decisions.

Decision Matrix

ROAS (subscription)Net marginVerdictAction
> 1.5×> 40%ScaleIncrease budget 20%/week
1.0–1.5×20–40%Hold & optimizeRefresh creatives, tighten targeting
0.7–1.0×0–20%OptimizePause worst ad sets; fix onboarding
< 0.7×NegativePauseKill channel or cut 50% budget

Adjust thresholds to user's margin targets from app-ads-context.md.

Per-Channel Analysis

For each connected channel, report:

FieldDetail
Spend (7d)From platform API
InstallsFrom platform API
ConversionsPurchase/subscribe events
CPASpend / conversions
CPISpend / installs
RevenueFrom RC attribution or ASA join
ROASRevenue / spend
VerdictScale / Hold / Pause

Channel-specific notes

ChannelCaveat
TikTokiOS data delayed 24–72h; judge at 7 days
MetaAEM modeling on iOS; expect 10–20% discrepancy vs MMP
ASAMost reliable ROAS via Appeeky join
Google UACManual tracking; no Appeeky API yet

Realistic Expectations

Tell the user honestly:

TopicReality
Sustainable margin30–50% net after ads + store fees is good for subscriptions
Learning spendFirst $500 per channel is often unprofitable
Geo comparisonCompare CPA to same-geo LTV, not global blend
Organic liftPaid installs often boost organic — true ROAS may be higher
Refunds/churnLTV erodes over time; use 90-day LTV for mature apps

Scale Readiness Checklist

Before recommending scale on any channel:

  • [ ] ROAS > 1.0× for 7+ consecutive days
  • [ ] CPA < 0.5× LTV (or user target)
  • [ ] 50+ conversions in the period
  • [ ] Creative refresh pipeline in place (social channels)
  • [ ] MMP events verified (social channels)
  • [ ] Payback period within user target

Output Template

markdown
# Profitability Report — [App Name] — [Period]

## Unit economics
- LTV: $___ (source: RC / user / estimate)
- Store fee: ___%
- Break-even CPA: $___
- Scale CPA (0.5× net LTV): $___
- Payback period at target CPA: ___ days

## Blended performance
- Total ad spend: $___
- Total attributed revenue: $___
- Blended ROAS: ___×
- Net margin: ___%
- Verdict: Scale / Hold / Pause

## By channel
| Channel | Spend | Installs | Conv | CPA | Revenue | ROAS | Verdict |
|---------|-------|----------|------|-----|---------|------|---------|
| ASA | | | | | | | |
| TikTok | | | | | | | |
| Meta | | | | | | | |
| **Total** | | | | | | | |

## Top issues
1. [e.g. "Meta CPA $34 vs $22 target — creative fatigue likely"]
2. [e.g. "TikTok 0 purchase events — MMP mapping broken"]

## Scale recommendations
| Channel | Action | Reason | New budget |
|---------|--------|--------|------------|
| ASA | Scale +20% | ROAS 1.8×, 14d stable | $/day |
| Meta | Pause | CPA 2.1× LTV | $0 |
| TikTok | Hold | Insufficient data (4 days) | $/day |

## Blockers to profitability
1. [specific blocker with fix]

Cross-Skill Handoffs

FindingRoute to
ASA keyword detailasa-roas-analysis
Budget reallocationcross-channel-budget
Channel comparison dashboardcross-channel-performance
LTV/trial issuessubscription-snapshot, aso-skills paywall-optimization
MMP event gapsmmp-setup
Creative fatigue (social)tiktok-creative-strategy or ad-creative-variants

Related Skills

  • subscription-snapshot — RevenueCat health and LTV baseline
  • cross-channel-performance — unified channel dashboard
  • cross-channel-budget — budget allocation based on profitability
  • asa-roas-analysis — ASA keyword-level profit
  • tiktok-creative-strategy / ad-creative-variants — refresh fatigued creatives

タスクに関連する項目

同じリポジトリから

関連する Skills

すべての Skills
appeeky
コミュニティ

ads-router

Single entry point that routes paid UA, mobile app ads, ad creatives, TikTok/Meta/ASA campaigns, ROAS, MMP setup, or Spark Ads requests to the correct specialist skill. Use FIRST when the user mentions ads, TikTok ads, Meta ads, Facebook ads, Apple Search Ads, ASA, CPA, CPI, ROAS, ad creative, Spark Ads, MMP, AppsFlyer, paid UA, or "help with my ad campaign" but the right skill is not obvious. Triggers "/ua-skill", "/ads-skill", "/growth-ads", "app ads help". Skip when user explicitly invokes a

導入数
1
GitHub Stars
71
更新日
8月23日
appeeky
コミュニティ

app-ads-context

When the user wants to create or update their paid growth context document with app info, ad accounts, budgets, CPI/CPA targets, LTV, and connected channels. Use when starting any paid ads project or when the user mentions "ads context", "growth brief", "my ad budget", or "target CPA". All other paid growth skills check for this file first. For organic ASO context, see app-marketing-context.

導入数
1
GitHub Stars
71
更新日
8月23日
appeeky
コミュニティ

asa-negative-keywords

When the user wants to add Apple Search Ads negative keywords from search terms reports or block wasted spend. Use when the user mentions "ASA negatives", "negative keywords Apple Search Ads", "search terms waste", "block search terms ASA", or "stop wasting ASA budget". For full weekly optimization, see asa-weekly-optimization. For profitability context, see asa-roas-analysis.

導入数
1
GitHub Stars
71
更新日
8月23日
appeeky
コミュニティ

competitor-ad-teardown

When the user wants to analyze competitor Meta ads, find what creatives competitors run, or research ad angles before creating their own. Use when the user mentions "competitor ads", "Meta Ad Library", "what ads is X running", "Facebook ads spy", "ad intelligence", or "swipe file". For generating your own creatives see meta-ad-creative or ad-creative-variants.

導入数
1
GitHub Stars
71
更新日
8月23日