You’ve shipped your app, fixed the worst bugs, and someone on Reddit suggested “just run ads.” So you open Meta Ads Manager, fund $500, hit publish, and watch installs roll in. Three days later you’re down $1,200, retention is 8%, and you have no idea if you should double down or cut losses.
This post gives you the stoplight system: clear thresholds for starting, pausing, and killing campaigns so you protect runway and avoid lighting money on fire.
Why this matters now
Paid acquisition burns cash fast. A $50/day test can drain $1,500 in a month. Without guardrails, you’ll either quit too early (missing a fixable funnel issue) or run too long (subsidizing users who never convert). Both waste runway you can’t get back.
The core problem: most indie devs don’t have a decision framework. They set budgets based on what “feels safe” and pause campaigns based on panic or hope, not data.
The signals that matter
Before you spend a dollar, you need baseline answers to five questions:
- Stability: Is your crash rate under 1%? Can users complete core actions without hitting bugs?
- Retention: What’s your organic D1 and D7? (Anything under 25% D1 or 10% D7 means fix product first.)
- Monetization: What % of users start trials? What % convert to paid? Do receipts validate correctly?
- Unit economics: What’s your estimated LTV? What CPI can you afford and still break even in 90 days?
- Runway: How many months of operating cash do you have? How much can you lose testing before it threatens survival?
These five inputs feed every go/no-go decision below.
Pre-flight checklist: don’t turn ads on until these pass
Run this checklist before funding your first campaign. One red flag = fix first, then test.
| Check | Threshold | Why it matters |
|---|---|---|
| Crash-free rate | >99% | Paid users who crash on Day 1 are burned money |
| Core flow completion | >80% reach paywall | If funnel breaks, ads amplify the leak |
| Review rating | >4.0 stars | Low ratings kill conversion and store rank |
| Receipt validation | 100% tested | Broken purchases = instant refunds and 1-stars |
| Organic D1 retention | >25% | Ads won’t fix a product people don’t return to |
| Trial start rate | >5% of installs | No trial interest = wrong audience or broken value prop |
If any cell is red, pause. Fix the blocker, re-test organically for 7 days, then re-run this checklist.

Go/No-Go thresholds: when to start spending
Once your pre-flight checks pass, calculate your break-even CPI. Use this formula:
Max CPI = (LTV × target ROAS) / 1.0
Example:
- LTV = $12 (estimated from organic cohorts)
- Target ROAS at D90 = 1.5 (you want $1.50 back per $1 spent)
- Max CPI = $12 × 1.5 = $18 per install
Now set your initial test budget and timeline:
- Minimum test spend: 3× your max CPI × 50 installs = $2,700 in this example. (You need statistical significance.)
- Maximum test duration: 14 days. If you haven’t hit target metrics by then, pause and diagnose.
- Daily budget cap: Total test spend ÷ 14 = ~$190/day.
Your “green light” criteria:
- Paid D1 retention ≥ 80% of organic D1 (if organic is 30%, paid must be ≥24%)
- Trial start rate from paid ≥ 50% of organic rate
- Actual CPI ≤ your calculated max CPI
- No spike in crashes or 1-star reviews from paid cohorts
Hit all four? Scale to 2× daily budget and monitor for another 7 days.
Pause rules: when to hit the brakes
Set these tripwires before you start spending. When any trigger, pause immediately and run the postmortem checklist below.
| Trigger | Action | Diagnosis |
|---|---|---|
| CPI > max by 30%+ for 3 days | Pause all campaigns | Creative fatigue, wrong audience, or platform algo learning poorly |
| D3 ROAS < 20% after $1,000 spend | Pause and analyze funnel | Monetization broken or LTV estimate was wrong |
| Paid D1 retention < 15% | Pause immediately | Ad-to-product mismatch; creatives attracting wrong users |
| Crash rate > 2% in paid cohort | Pause and fix bugs | Likely device/OS fragmentation issue amplified by ads |
| Review score drops 0.3+ stars | Pause and read reviews | Paid users hitting edge-case bugs or unmet expectations from creative |
| Spend > 20% of runway | Pause and reassess strategy | You’re burning survival capital without proof |
The key: pause is not failure. It’s protection. Every pause is a chance to fix something before you waste more money.

Kill rules: when to stop permanently
Some tests fail so hard you shouldn’t retry without major product changes. Kill a campaign permanently if:
- After two 14-day tests with different creatives/audiences, CPI never drops below 2× your max
- D7 retention from paid users stays under 8% across cohorts
- You’ve spent $5,000+ with cumulative ROAS under 0.5 at D30
- User feedback indicates fundamental product-market misfit (not bugs, but “this isn’t useful”)
In these cases, ads aren’t the problem. The product needs rethinking, repositioning, or a different distribution model entirely (e.g., organic/SEO, partnerships, or direct sales).
Worked example: $1,000 test that failed the right way
An indie developer launched a meditation app with these starting assumptions:
- Organic D1: 28%, D7: 12%
- Trial start rate: 6% of installs
- Estimated LTV: $15
- Max CPI: $10 (targeting 1.5 ROAS at D90)
- Test budget: $1,000 over 10 days at $100/day
What happened:
| Day | Spend | Installs | CPI | D1 ret. | Trial starts | Note |
|---|---|---|---|---|---|---|
| 1-3 | $300 | 28 | $10.71 | 22% | 1 | CPI slightly high, retention weak |
| 4-6 | $300 | 25 | $12.00 | 20% | 1 | CPI rising, retention dropping |
| 7 | $100 | 7 | $14.29 | 14% | 0 | Hit pause rule: CPI > max by 43% |
| 8-10 | $0 | – | – | – | – | Campaign paused |
Diagnosis: After reviewing session recordings and install sources, the developer found that Meta’s algorithm was targeting “wellness” broadly, attracting users interested in yoga and fitness, not meditation. The ad creative (a serene forest scene) didn’t communicate the product’s core benefit (guided meditation for sleep and anxiety).
Fix: New creative featuring app UI with captions like “Fall asleep in 10 minutes” and audience narrowing to insomnia/anxiety interest tags. Second test: CPI dropped to $8.50, D1 retention climbed to 26%, trial starts hit 5%. Campaign scaled.
Key insight: The $700 spent in the failed test wasn’t wasted—it bought clarity. Without pause rules, the developer might have burned the full $1,000 and given up.

Postmortem checklist: what to fix before re-testing
When you pause a campaign, run this diagnostic within 24 hours:
- Creative audit: Does your ad show the actual product? Does the message match what users see in-app?
- Audience analysis: Review demographic breakdowns. Are you attracting the right age/gender/interests?
- Funnel drop-off: Where do users quit? (Download → open → signup → trial → paid)
- Retention by source: Compare paid vs. organic D1/D7. If paid is 50%+ lower, your ads are bringing the wrong people.
- Crash & review correlation: Did paid cohorts trigger new bugs or complaints?
- LTV re-estimation: Was your original LTV assumption wrong? Recalculate with actual paid cohort data.
Fix the biggest leak first. If retention is the issue, improve onboarding before re-testing ads. If CPI is the issue, test new creatives or channels. If monetization is broken, fix pricing or paywall placement.
Don’t re-fund campaigns until you’ve validated the fix with organic traffic for at least 5 days.
Your monitoring dashboard: what to watch daily
Set up a simple spreadsheet or analytics dashboard that updates daily with these columns:
| Metric | Yesterday | 7-day avg | Threshold | Status |
|---|---|---|---|---|
| Spend | $120 | $105 | ≤$150/day | 🟢 |
| Installs | 11 | 10 | ≥8/day | 🟢 |
| CPI | $10.91 | $10.50 | ≤$12 | 🟢 |
| D1 retention | 27% | 26% | ≥24% | 🟢 |
| Trial starts | 6% | 5.5% | ≥5% | 🟢 |
| D3 ROAS | 18% | 22% | ≥20% | 🟡 |
| Review score | 4.3 | 4.3 | ≥4.0 | 🟢 |
Check this dashboard every morning. If two or more metrics turn red for 2+ days, pause and diagnose. If everything stays green for 14 days, consider scaling budget by 50%.
Decision tree: should you start, pause, scale, or kill?

Use this logic:
- If pre-flight checks fail → Fix blockers, don’t start ads yet
- If CPI > max by 30%+ for 3 days → Pause, test new creative or audience
- If D1 retention < 80% of organic → Pause, check ad-to-product match
- If D3 ROAS < 20% after $1,000 → Pause, audit funnel and LTV
- If all metrics green for 14 days → Scale to 2× budget, monitor for 7 more days
- If two failed tests with no improvement → Kill campaign, fix product or try different channel
Alternatives to managing this yourself
If you’d rather focus on building features than babysitting dashboards, you have three paths:
Option 1: Hire a UA specialist or agency
Cost: $2,000-$5,000/month retainer + 10-20% of ad spend
Pros: Experienced hands, access to better creatives and audiences
Cons: Minimum commitments, overhead cost even during pauses, less control over daily decisions
Option 2: Use a growth platform with automation
Cost: $200-$500/month + platform fees
Pros: Auto-pause rules, bid optimization, creative testing
Cons: Still requires you to monitor, set strategy, and interpret data
Option 3: Partner with a publisher who funds and operates UA
Cost: Revenue share (typically 40-60% depending on deal structure)
Pros: Zero upfront spend, they enforce guardrails, you keep building
Cons: Shared revenue, need to align on product roadmap and KPIs
Option 3 works best when you have product-market fit but no budget or time for growth ops. The publisher funds campaigns, enforces the pause/kill rules, and handles creative iteration while you ship updates.
When a publishing partner makes sense
If your situation looks like this:
- You have <$5,000 to test with and can’t afford to lose it
- Your organic metrics are solid (D1 >25%, trial rate >5%) but you have no distribution
- You’re a solo dev or small team with <10 hours/week for growth
- You want to keep building and iterating, not running ads
…then a rev-share publishing model can work. The partner funds UA/ASO, enforces the guardrails in this post, and handles analytics and reporting. You retain IP and code ownership, ship updates on agreed timelines, and split revenue based on performance.
The trade-off: you give up some revenue in exchange for speed, capital, and focus. It’s not for everyone, but it’s a viable path when runway is tight and you’d rather code than optimize bid caps.
Key takeaways
- Don’t start ads until pre-flight checks pass—crashes, bugs, and low retention waste money fast
- Set pause rules before you fund campaigns, not after
- CPI, D1 retention, and D3 ROAS are your tripwires—if they break thresholds, pause immediately
- Every pause is a chance to diagnose and fix before re-testing
- Kill permanently only after two failed tests with different approaches
- If you lack time or budget to operate this system, consider a partner who funds and runs UA while you build
Paid acquisition is expensive trial-and-error. Guardrails turn expensive into affordable and error into insight. Use them.
Have an app with solid organic metrics but no budget for UA? We fund and operate growth for apps that pass our fit criteria. You keep building; we handle ads, ASO, and analytics on a rev-share basis. Submit your app here.



