The 1-Campaign/1-Keyword Strategy
for Apple Search Ads
I tested 126 Apple Search Ads keywords for an education app. Only 8 survived. Here's the campaign structure that told me which ones to keep — and why most ASA setups hide the losers until it's too late.
The problem with grouped campaigns
Most Apple Search Ads guides tell you to group related keywords into a single campaign. “Math keywords” in one campaign, “homework keywords” in another. Seems logical.
The problem: when you group 20 keywords in one campaign, and the campaign gets 50 installs, you know the campaign works — but you don't know which keywords drove those installs. Apple shows you keyword-level taps and impressions, but not keyword-level revenue.
A keyword with cheap installs can still lose you money if those users never subscribe. And you'd never know, because the winning keywords in the same campaign mask the losers.
The core insight
If you can't measure revenue per keyword, you can't tell winners from losers. And if you can't tell winners from losers, you're flying blind with your ad spend.
The fix: one campaign per keyword
The solution is simple: create one campaign for every keyword you want to test. Each campaign gets exactly one ad group with exactly one keyword, set to exact match.
The structure looks like this:
Campaign: mathbox_us_math_solver_cp
└─ Ad Group: mathbox_us_math_solver_gr
└─ Keyword: "math solver" (exact match)
└─ Bid: $1.70
└─ Daily Budget: $20.00
└─ Search Match: OFFSearch Match is turned off so Apple doesn't auto-expand to related terms. Each campaign is a clean, isolated test of one keyword.
What this gives you
When every keyword has its own campaign, the math becomes trivial:
- Spend per keyword — the campaign's total spend IS that keyword's spend
- Revenue per keyword — connect RevenueCat (or any subscription analytics) and attribute revenue to the campaign name. Since each campaign = one keyword, you get per-keyword revenue.
- True ROAS per keyword — Revenue / Spend. No guessing, no masking.
- Clear kill decisions — a keyword with $30 spend and $0 revenue is a loser. Pause it, free the budget, test the next one.
Real results: 126 keywords tested, 8 survived
I ran this strategy on an education app in the math/study space with a $5.99/week subscription. Over several weeks, I tested 126 keywords across the US market.
126
Keywords tested
118
Paused (losers)
8
Still running (winners)
93% of the keywords I tested were losers — they either got no installs, got installs but zero revenue, or had a CPA so high they'd never pay back. Without the isolated campaign structure, I wouldn't have known which 93% to cut.
Here are the winners, ranked by revenue:
| Keyword | Revenue | Transactions |
|---|---|---|
| maths ai | $131.78 | 22 |
| photo msth | $63.90 | 10 |
| photomath free | $47.92 | 8 |
| math solver | $35.94 | 6 |
| maths app | $35.94 | 6 |
| photo maths | $29.95 | 5 |
| math help | $17.97 | 3 |
| photomath | $17.97 | 3 |
Notice something interesting: “photo msth” — a misspelling — is the second-best keyword. Users searching for “photo math” mistype it, and because no competitor bids on the typo, the CPA is incredibly low. You'd never discover this in a grouped campaign.
The stop-loss pattern
The 1-campaign/1-keyword structure unlocks a powerful workflow I call stop-loss, borrowed from stock trading:
- Launch a batch — create 20-50 keyword campaigns at once, all starting paused with a low daily budget ($5-$20).
- Enable and watch — resume the campaigns. Each keyword starts spending independently.
- Kill the losers fast — any keyword that spends $20+ with zero revenue or a CPA above your threshold gets paused. This is your stop-loss.
- Scale the winners — keywords with ROAS above 1.0x get more budget. The slot freed by the paused loser lets you test the next keyword.
- Repeat — the portfolio cleans itself. Over time, you converge on the 5-10 keywords that actually drive profitable revenue.
Why this matters for subscription apps
Apple Search Ads shows you installs — but installs aren't revenue. A keyword can drive 100 cheap installs where nobody subscribes. The only way to find out is to measure revenue per keyword, and the only way to do that cleanly is the isolated campaign structure.
The metrics that drive every decision
The isolated structure gives you clean data. But raw numbers aren't enough — you need the right metrics to make fast kill/scale decisions. Here are the three I watch:
CPA
Cost per Acquisition
How much each install costs. If your subscription is $5.99/week and your CPA is $12, you need 2+ weeks of renewals just to break even. Above $15, I pause immediately.
ROAS
Return on Ad Spend
Revenue divided by spend. Above 1.0x means profitable. I connect RevenueCat to see this per keyword — not just installs, but actual subscription money coming back.
IPM
Installs per Mille
Installs per 1,000 impressions. This is Apple's hidden relevance signal. Below a category threshold, Apple throttles your impressions. Above it, volume explodes and CPT drops. It's the metric most ASA managers ignore.
Together, CPA tells you if a keyword is affordable, ROAS tells you if it's profitable, and IPM tells you if Apple's auction thinks you're relevant enough to scale. A keyword can have great CPA but terrible IPM — which means it'll never get enough volume to matter.
Automated suggestions — you approve, we apply
Watching 50+ keywords manually is exactly what I was trying to avoid. So the system does it for me: a rule engine evaluates every keyword's spend, installs, revenue, CPA, and IPM, then recommends a clear action:
| Suggestion | When | Example |
|---|---|---|
| Pause | High spend, zero revenue, or CPA above 3x target | "cali" — $34.50 spent, 4 installs, $0 revenue |
| Cut Bid | CPA drifting above target but keyword has potential | "food calculator" — CPA $12.32, ROAS 0.36x |
| Raise Bid | Good ROAS but budget underspent — losing impression share | "scan calories" — ROAS 1.75x, budget only 60% used |
| Scale Budget | Strong ROAS, budget fully consumed, room to grow | "food calorie scanner" — ROAS 1.44x, budget 95% used |
| Hold | Not enough data yet — need more spend before deciding | "scan calorie" — only $3.40 spent, 5 installs |
You stay in control
Every suggestion is exactly that — a suggestion. It shows up as a badge next to the keyword with a clear rationale. You review it, click approve if you agree, and the change is applied to Apple Search Ads instantly. Nothing happens without your click. No autonomous spending, no surprises.
The Orchestrator: when you're ready to go hands-off
Once you've found your winning keywords and trust the pattern, you can attach an Orchestrator strategy to a campaign. The Orchestrator evaluates each keyword on a recurring window (12 or 24 hours) and follows a strict priority chain:
- Kill — if IPM is below the floor after 500+ impressions, or CPA exceeds 3x target, or zero installs after enough taps — the keyword is dead, stop spending
- Bid Retry — if impressions are too low, bump the bid to test at a higher price point before giving up
- Descale — if CPA jumped or conversion rate dropped vs the previous window, cut bid first, then budget
- Scale Up — if CPA is on target, conversion rate is strong, and budget is fully consumed — raise budget (and if IPM crossed the breakthrough threshold, scale aggressively)
- Hold — everything's stable, no action needed
Three preset strategies match different auction environments:
Find cheap auction wins
Low starting bids, 24h windows, 3 bid retries. For low-competition keywords where you're testing if there's demand at all.
Bid your true valuation
Game-theory optimal: bid = target CPA × expected CVR. 12h windows, moderate scaling. For keywords where you know the economics.
Pay for speed
Bids above market to capture impressions fast in contested auctions. 12h windows, aggressive kill. Either it works in 48h or it doesn't.
The key principle: the Orchestrator manages the mechanics, you choose the strategy. You decide which keywords to test, which strategy fits each keyword, and what your target CPA is. The Orchestrator handles the bid/budget adjustments within your rules. Every decision is logged with the metrics that triggered it — full transparency, full audit trail.
How to set this up
You can run the 1-campaign/1-keyword structure manually in Apple Search Ads — create each campaign, ad group, keyword, set the bid and budget, disable Search Match. With 50+ keywords, that's hours of clicking.
That's why I built Wily App. The workflow:
- Paste your keyword list — one per line, optionally with bid and budget
- Wily bulk-creates the isolated campaigns in Apple Search Ads (all start paused)
- Revenue from RevenueCat flows in automatically — per-keyword ROAS appears in the report
- The suggestion engine flags losers for pause and winners for scaling
- You approve the suggestions you agree with — one click, applied instantly
- Optionally, attach an Orchestrator strategy for hands-off bid/budget management
You can test 5 keywords free — no credit card, no trial expiry. Enough to validate the strategy on your own app before scaling up.
Try the 1-campaign/1-keyword strategy
Paste your keywords, bulk-create isolated campaigns, and see which ones actually make money. Free to start.
Key takeaways
- Isolate every keyword — grouped campaigns hide losers. The 1-campaign/1-keyword structure makes every keyword individually measurable on spend, revenue, and ROAS.
- Most keywords don't work — 93% of mine were paused. That's normal. The goal is to find the 7% that do, fast, and cut the rest before they drain your budget.
- Three metrics matter — CPA tells you cost, ROAS tells you profit, IPM tells you if Apple's auction will give you volume. Watch all three, not just installs.
- Automate the mechanics, keep the decisions — the suggestion engine flags what to do; you click approve. The Orchestrator manages bids and budgets within your rules. Nothing happens without your say.
- Misspellings win — “photo msth” was my second-best keyword. Zero competition, high intent. You only discover these when each keyword is measured alone.