AppSkale.AI
Back to blog

The 30-Day Keyword Audit: Which Keywords to Kill, Keep, and Scale

Most developers never audit their keywords. They set bids once, glance at install counts every few days, and let the winners and the money-pits run side by side for months. The campaign “works,” spend goes out, installs come in, and nobody asks the harder question: which of these keywords is actually funding the account, and which is quietly bleeding it?

A monthly keyword audit is the highest-leverage hour you can spend on Apple Search Ads. Not a dashboard glance — a real, deliberate pass where every keyword gets sorted into one of four buckets and a decision gets made. Here’s the framework.

Why 30 days, not weekly

The temptation is to react fast — pause a keyword the moment CPA spikes, or pour budget into yesterday’s top performer. Resist it. Subscription apps run on a delay: a tap today becomes a trial tomorrow and a paying subscriber a week or two later. If you judge a keyword on three days of data, you’re reading installs before the revenue has had a chance to show up.

Thirty days is long enough for trials to convert and for renewal signals to start landing, but short enough to catch a leak before it costs you a quarter’s budget. Run it on the same day each month so you’re always comparing like windows.

The three columns you need on one screen

Every keyword decision comes down to three numbers, and the whole problem is that they live in three different tools:

  • Spend — from your Apple Search Ads dashboard.
  • Organic rank trend — from a rank tracker like AppTweak or AppFigures.
  • Revenue / LTV per keyword — the column almost nobody connects, because ASA stops at installs and your revenue lives in RevenueCat.

Until those three sit on one screen for each keyword, you’re auditing blind. The point of the framework below is that no bucket can be assigned without all three. (More on why paid spend and organic rank belong on the same timeline in does Apple Search Ads spend actually affect your organic ranking.)

The four buckets

Sort every keyword in the account into exactly one of these. No “maybe” pile — if you can’t decide, it goes in Investigate.

BucketWhat you're seeingAction
KillSpend with no installs, installs with no revenue past day 30, or a keyword stuck at the popularity floor.Pause it. Reclaim the budget.
KeepProfitable, but volume-capped — you're already winning most of the auctions.Hold the bid. Don't overfeed a maxed keyword.
ScaleLTV comfortably above CPA, with headroom left in the auction.Increase budget aggressively. This is where growth comes from.
InvestigateHigh installs, low revenue — wrong-intent traffic or a paywall problem, not a keyword problem.Diagnose before you touch the bid.

Kill

Three things land a keyword here. First, spend with no installs — you’re paying for taps that don’t convert, usually a relevance or creative mismatch. Second, installs with no revenue past day 30 — the keyword brings users who never pay, which is the most expensive kind of “working” keyword. Third, the popularity floor: a term nobody searches will hand you 2–3 installs a day no matter how hard you bid. Ranking #1 on a keyword with no demand is a screenshot, not velocity. (That trap is the whole subject of how long-tail keywords push your main keyword’s rank.)

Keep

These are your reliable earners that have hit their volume ceiling. You’re already winning most of the auctions, so raising the bid just lifts CPA without buying more installs. Don’t mistake a capped keyword for a scalable one — hold the bid steady and put the marginal dollar somewhere with room.

Scale

The whole audit exists to find these. A keyword belongs here only when its LTV clears its CPA with margin and there’s auction share left to win. Both conditions matter: a profitable keyword you’ve already maxed is a Keep, not a Scale. When you find a real Scale keyword, don’t nudge the budget — push it. (If you’re unsure how to compute LTV against spend cleanly, see how to calculate Apple Search Ads ROAS with RevenueCat.)

Investigate

High installs, low revenue is the most misread signal in ASA. The instinct is to kill the keyword, but the keyword is often fine — the leak is downstream. The searchers have install intent but not paying intent, or your onboarding and paywall are losing them before the trial. Before you cut a high-volume term, check whether the problem is the keyword or the funnel it feeds. Cutting a keyword to fix a paywall problem just hides the symptom.

How to run the audit

The pass itself takes about an hour once your data is in one place:

  • Pull the last 30 days of spend and installs per keyword from ASA.
  • Pull the same window of revenue / LTV per keyword (or use a tool that already joins it to spend).
  • Pull the 30-day organic rank trend for each keyword.
  • Assign every keyword a bucket. Make the call on the spot — ambiguity goes to Investigate.
  • Execute: pause the Kills, hold the Keeps, raise budget on the Scales, and open a ticket for each Investigate.

Watch for confounders

A clean number can still lie. Before you trust a bucket assignment, rule out the obvious distortions:

  • Seasonality — a December spike or summer dip can flatter or punish a keyword that’s actually steady.
  • Competitor launches — a new entrant on your term can crater installs without anything changing on your side.
  • App Store featuring — a feature placement inflates organic installs and can make paid keywords look better than they are.
  • Sample size — a keyword with 8 installs in 30 days doesn’t have enough signal to bucket confidently. Give it another cycle.

The column the whole thing depends on

This audit only works if you can see revenue per keyword. Spend and rank are easy to get; the revenue column is the one that turns a guess into a decision — and it’s the one ASA dashboards, rank trackers, and spreadsheets all leave out.

That’s the gap AppSkale closes: it ties each keyword to the subscription revenue it actually produces and puts spend, rank, and revenue on the same screen — so the monthly audit is an hour of decisions instead of a week of stitching exports.