← All posts
October 15, 2026

Ad Group Starvation in Apple Search Ads: Why Your “Low ROAS” Might Be an Auction Delivery Problem

Apple Search AdsASA troubleshootingROASCPTad groupsauction deliveryiOS indie developersApp Store optimization

If your Apple Search Ads ROAS is inconsistent across ad groups, it’s tempting to blame targeting, creatives, or match types. But there’s a quieter failure mode: ad group starvation. When delivery is too fragmented, Apple may spend enough taps to measure poorly, while never giving the best-performing pieces a fair chance. The result looks like “performance problems” even when your app store page and offers are fine.

Below is a practical way to diagnose starvation and fix it using only the levers Apple actually lets you control: keyword coverage, match type, bids, ad group structure, and max CPT.

What “ad group starvation” looks like in real ASA reporting

Ad group starvation usually shows up as a pattern like this (illustrative example):

  • One or two ad groups have reasonable impression share and a stable TTR.
  • Other ad groups have very low impressions or high CPT with low conversion.
  • The “bad” ad groups often include high-intent keywords (exact matches) or Search Match experiments.
  • Overall account ROAS is worse than what you’d expect from your best ad groups.

Important: Apple doesn’t give you a per-keyword revenue line item, so it’s easy to overreact to noisy ROAS. Starvation makes the noise worse by reducing sample sizes where it matters.

The core cause: fragmented auction pressure + limited learning volume

In Apple Search Ads, each ad group contains keywords (and their bids). Apple runs a CPT auction for each eligible query and decides which ads to show based on your bids and relevance signals.

When you create many ad groups—especially with similar or overlapping keywords—you split your opportunity:

  • High-intent queries may match multiple ad groups, and bids compete across them.
  • If some ad groups have lower max CPT bids (or fewer eligible query matches), they may get fewer showings.
  • Those under-delivering ad groups can still collect a small number of taps at unfavorable prices—enough to report “bad ROAS,” not enough to stabilize.

At the same time, your best ad groups might not scale because the auction is still being “pulled” by other groups that are structurally disadvantaged.

Step 1: Identify starvation candidates (using only metrics you trust)

In ASA reporting, start with ad group-level metrics for the same time window (at least 3–7 days; longer if you’re low volume).

For each ad group, compare:

  • Impressions (volume)
  • TTR = taps / impressions (relevance and click likelihood)
  • CPT (auction price)
  • Conversion rate = installs / taps (post-click alignment)
  • CPA/CPI and ROAS (outcome)

Starvation “signature” (common combination)

Look for ad groups where:

  • Impressions are meaningfully lower than others.
  • TTR is not terrible (sometimes even okay), suggesting queries are relevant.
  • Conversion rate is inconsistent or based on tiny sample size.
  • CPT is not the lowest (so it’s not just “cheap traffic”).

If an ad group has extremely low impressions, don’t conclude your app store page is bad there—your data may simply be too thin.

Step 2: Check overlap across ad groups (without needing per-query revenue)

Even though you didn’t ask about overlapping keywords specifically, starvation often coexists with overlap.

Do a structural pass:

  1. List the top keywords per ad group (or export them from your account).
  2. Flag groups that target the same user intent (e.g., multiple groups mixing similar exact terms and broad variants).
  3. Pay special attention to setups like:
    • One ad group for Exact
    • Another for Broad
    • Another for “discovery/search match” using loosely related keywords

If multiple groups can realistically win the same query, you’re essentially running multiple mini-auctions inside your account.

What you’re trying to learn

Whether starvation is happening or you’re simply targeting the wrong stuff, you need to decide:

  • Are low-performing ad groups getting the right queries but not enough volume?
  • Or are they getting the wrong queries at the wrong price?

TTR helps answer the first part. Conversion helps answer the second.

Step 3: Validate auction eligibility issues (quick sanity checks)

Starvation can be amplified by eligibility problems. Before touching structure, confirm:

  • Your app is fully available for the targeted region(s) and device/OS compatibility is correct.
  • You’re not accidentally excluding availability via app store settings or product page availability.

This overlaps with other audits (storefront readiness and availability mismatch), but it’s worth a quick check because it can make some ad groups appear starved: Apple can’t deliver effective traffic to an app that’s not actually runnable.

The fix: consolidate decision-making so the auction learns where it should

The goal isn’t “make everything bigger.” The goal is to ensure your best chances at wins aren’t diluted across too many weakly competing buckets.

Fix option A (best for most indies): Reduce ad group count and concentrate bids

Do this when you have many ad groups targeting similar intent.

  1. Pick one primary ad group per intent theme (e.g., “topic A exact/broad,” “topic B exact/broad”).
  2. Move keywords so each theme has one home.
  3. Keep match types, but don’t scatter near-duplicates across multiple ad groups.
  4. Use bids so you’re not artificially capping one group far below the rest.

Why this works: it increases the chance that the auction will consistently deliver the strongest query mix to your most aligned page.

Fix option B: Separate Search Match, but don’t let it steal the spotlight

If you’re using Search Match inside multiple places, you can end up with delivery that’s both unpredictable and fragmented.

A safer approach:

  • Keep Search Match in one dedicated ad group for discovery.
  • Ensure that ad group’s max CPT isn’t so high that it competes aggressively with your proven exact/broad groups.
  • Give it room to run, but don’t fragment it across multiple ad groups.

(If you already isolated Search Match, the fix usually becomes “merge it with fewer competing intent groups,” not “add more isolation.”)

Fix option C: Merge only the worst offenders first

If you don’t want a big restructuring, do a targeted consolidation:

  • Identify 1–3 ad groups with the lowest impressions and worst data stability.
  • Merge their keywords into the best-aligned ad group for that intent.
  • Leave the better ad groups untouched.

This reduces risk: you’re not rewriting your entire account, just removing the weakest buckets that fragment delivery.

Step 4: Use a simple “decision rule” to avoid chasing noise

After you restructure, give it enough time to collect meaningful volume. Then decide based on directional signals, not a single day’s ROAS.

A practical rule:

  • If after consolidation you see impressions rise and TTR stays similar or improves, your auction delivery likely improved.
  • If conversion rate improves next, your storefront/product page alignment is probably fine and the old setup was the bottleneck.
  • If conversion still collapses while TTR is fine, the issue is less likely starvation and more likely install-to-purchase funnel problems.

Avoid changing bids every 24 hours during this phase—structure changes are already a “lever.” Combine changes only when you’re sure.

Step 5: After you fix starvation, clean up the remaining underperformers

Once volume stabilizes, then you can use classic optimization:

  • Reduce bids or tighten keyword lists for truly low conversion groups.
  • Add negatives only after you can identify recurring irrelevant intent (and even then, treat negatives like scalpel work).

The key is sequencing: don’t do deep keyword surgery while your delivery is fragmented. You’ll be removing the wrong things based on noisy signals.

Where AdsBuddy fits (lightly)

If you’re juggling this across many ad groups and you’re not sure whether a bad ROAS read is “real” or just starving and noisy, tools can help you triage faster. AdsBuddy’s workflow is essentially: it reads your Apple Search Ads + revenue data, then returns a short prioritized set of changes you approve (it doesn’t auto-apply). The most useful part is separating “delivery structure problems” from “post-click conversion problems.”

Closing takeaway

Ad group starvation is one of those issues that feels like a targeting problem because the symptom is bad ROAS. But the fix usually comes earlier in the chain: consolidate your ad group structure so auctions deliver enough meaningful traffic to learn and scale the right intent.

If you want, paste a screenshot or export of your ad group metrics (impressions, taps, TTR, CPT, conversion rate, ROAS/CPA) for the last 7 days and tell me how many ad groups you currently run—I'll help you spot which ones are likely starved and which consolidation path makes the most sense.

Run Apple Ads with AdsBuddy

Start with 7 days free, connect Apple Ads and RevenueCat, then get a short prioritized list of changes to review and apply.

Start free trial
Get new posts in your inbox
Practical Apple Search Ads tactics for indie iOS devs. No spam, unsubscribe anytime.