Which spend is producing nothing?
Find campaigns, keywords, and search terms spending money without generating downstream revenue, ranked by wasted spend.
RecommendsPause 9, negate 5, cut 3 bids by 30%, saving about $612/mo. Waits for your approval.
Apple Search Ads spend joined to your real subscription revenue, so every keyword is measured by the customers it actually brought in. You approve every change.
One connection gives it three things it cannot reach on its own: your Apple Search Ads account, the subscription revenue that says which spend is actually paying, and a set of write tools that draft changes rather than make them. Nothing reaches Apple until you approve it.
Find wasted spend, understand what each customer is really worth, and get a plan for what to change next. Your agent connects Apple Search Ads to real revenue, then waits for your approval.
Find campaigns, keywords, and search terms spending money without generating downstream revenue, ranked by wasted spend.
RecommendsPause 9, negate 5, cut 3 bids by 30%, saving about $612/mo. Waits for your approval.
See true ROAS and cohort lifetime value from net proceeds, broken down by campaign, country, and keyword.
Get a reviewable plan for bids, pauses, and negative keywords. Nothing changes in Apple Search Ads until you approve it.
I analyzed all 61 keywords against your RevenueCat revenue. 14 of them are spending with zero attributed return: $841/mo in total. The worst offenders:
| Keyword | Spend (30d) | Attributed revenue | ROAS |
|---|---|---|---|
| workout tracker | $214 | $0 | 0.00 |
| fitness app free | $187 | $0 | 0.00 |
| nike training club alternative | $126 | $0 | 0.00 |
| …and 11 more below your 0.2 ROAS threshold | |||
My recommendation: pause 9 keywords, add 5 negatives, and cut 3 bids by 30%, that saves about $612/mo without touching anything that converts.
I've drafted this as a plan with propose_plan. Want me to apply it? Every change is re-read at Apple afterwards and reported as verified or partial.
struct PaywallView: View { @State var plan: Plan var body: some View { VStack(spacing: 16) { Text(plan.title) .font(.title2.bold()) ForEach(plan.perks) { perk PerkRow(perk) } PurchaseButton(plan) } } }
12 keywords qualify. Drafted plan pl_8412: 9 bid cuts of −30%, 3 pauses, estimated save $412/mo.
Nothing changes at Apple until you approve it.
Simulated scene, sample data. See how a change lands →
Apple shows the spend and the install. SearchAds Radar connects them to RevenueCat revenue and SARKit attribution, so your agent can measure true ROAS, follow cohort value through day 90, and recommend what to change next.
SignalYou appear on 71 of 100 searches for your own brand, down from 94.
FindingTwo new bidders are on your brand term and the price floor is rising.
RecommendsRaise the defense bid on brand exact.
ApprovalDrafted, waiting for your approval
Signal$841 a month goes to taps on terms with no revenue behind them.
Finding14 keywords have spent for 30 days and produced no paying customer.
RecommendsPause the 14 and add 5 negatives.
ApprovalDrafted, waiting for your approval
Signal1 in 3 taps becomes an install. This is the last thing Apple can tell you.
FindingInstall rate is healthy, so the loss is happening after the download.
RecommendsKeep bids, follow these installs into revenue.
ApprovalNo change proposed
Signal12 of those installs became paying customers, worth $486 so far.
FindingTwo campaigns produce installs but almost no subscribers.
RecommendsShift budget to the campaigns that convert.
ApprovalDrafted, waiting for your approval
SignalNet proceeds per user at D0, 7, 30, 60 and 90, after tax and Apple’s cut.
FindingTwo countries go flat after day 30 while the rest keep earning.
RecommendsMove spend to the cohorts still growing at day 90.
ApprovalDrafted, waiting for your approval
A competitor can quietly buy your brand name and take installs for weeks. No spend report will tell you.
Checks daily how often you actually appear when someone searches your name, against your own history.
Cheap taps look like progress. Apple reports them as success whether or not anyone ever pays you.
Scores every term against the revenue it actually produced, then lists the ones producing none.
Apple’s reporting ends here. Optimising to installs means optimising to the last number before the money.
Carries each install across the boundary using your own SARKit attribution, no IDFA and no consent prompt.
Two campaigns can have identical install costs and completely different revenue behind them.
Joins RevenueCat purchases, renewals and refunds back to the keyword that bought them.
A campaign can look cheap per install and never turn into a customer who stays.
Tracks each month’s cohort to day 90 on measured revenue, not a modelled curve.
Tell your agent what to review and when. SearchAds Radar runs the audit, returns the findings, and drafts the next actions for your approval.
On it, I’ll run this every Monday at 9:00 with SearchAds Radar and leave each report here.
Scheduled check-in ›
Reviewing the week for Fitness Pro: performance, revenue, search terms. Then a plan, if the data earns one.
get_account_overviewspend $159.44 · 68 installsget_roas_analysisROAS 2.4× on net proceedsget_search_terms_analysis1 term wasting $55.83get_change_historylast change Jul 9: bids, negativesWriting the review, drafting the plan... you’re not here for any of this.
Weekly review: Jul 14–20
Headline: proceeds $12,480 ↗ (up 9%) · ROAS on net 2.4× (was 1.9×) · waste $841 ↘
| Campaign | Spend | Installs | CPA | ROAS · net |
|---|---|---|---|---|
| US Exact | $33.81 | 13 | $2.60 | 2.9× |
| US Broad | $109.79 | 45 | $2.44 | 2.1× |
| Brazil | $15.84 | 10 | $1.58 | 0.9× |
Movers: “hiit timer” 5.1×, room to raise · “free workout app” $0 back in 30 days
Next: drafted plan #142: pause the dead term, raise “hiit timer”. 2 changes await your yes.
The plan waits in SearchAds Radar, nothing applied yet:
Approved 09:12 → applied at Apple → re-read & verified 2/2 match → logged in History
Claude Routines · ChatGPT scheduled tasks · Codex Automations · plain cron or CI, the schedule lives wherever you already work. Same connection, same toolkit, same approvals.
The panel and the MCP server read the same tool registry, so what your agent reports and what you open cannot disagree. Every change it applies is written to the log with the value before and the value after.




Spend, revenue and attribution flow in. Audits, plans and reports go out to your agent. Approved changes are written to Apple Search Ads and nowhere else, and your revenue sources stay read-only.
MCP is on the free plan, not behind the upsell. The tools your agent needs to connect and find its way around do not count against your allowance.
For indie devs getting started with Apple Search Ads.
For teams running paid acquisition on Apple Search Ads.
For teams managing large Apple Search Ads portfolios.
Paste one block into your client and let your agent run its first audit against your real revenue. Nothing changes at Apple until you approve it.
Start free, no card