Skip to content
Academy
Marketing Academy · Field Work●Paid Ads
MiniTeardown· 30 minutes

One Campaign, Four Problems: Auditing a Real Apple Ads Account Structure

Duolingo

Objective: Given a screenshot-style export of a single-campaign Apple Search Ads account, diagnose which search terms are silently wasting spend and explain how splitting into Brand/Competitor/Generic/Discovery would fix each defect.

You're a freelance ASO consultant. A new client, a language-learning app competing with Duolingo, hands you an export of their only Apple Ads campaign, three months old, never restructured, and asks why CPA keeps climbing.

Read the search-term report, flag every defect using the lesson's four-campaign framework, and rank fixes by expected budget recovery.

Before you start

What you'll need

Free path (everything below is enough to finish)

FreeSort and tag the search-term export by intent bucket

Free, no account needed to practice the audit

Paid upgrades (optional, faster/deeper)

AppsFlyer(optional)
FreemiumVerify which taps are converting to real post-install events, not just installs

Confirms whether the harvested Discovery terms are worth the exact-match move on LTV, not just CPA

The process

Specimens to review

This single campaign mixes brand, competitor, generic, and irrelevant terms under one Search Match/broad-match setup with zero negatives. Identify every defect and name which of the four campaign types each search term belongs in.

Sample output
Campaign: "App Growth - All Keywords" (Search Match ON, broad match, no negatives)
Last 30 days, 40,200 impressions, 2,150 taps, $4,988 spend

Search term            Taps   Installs   Spend    CPT
"babbel"                 210      38      $588    $2.80
"duolingo"                 4       0       $11    $2.75
"learn spanish app"      340      61      $850    $2.50
"free language app"      280      12      $644    $2.30
"language learning app"  190      29      $437    $2.30
"our app name" (own brand) 6       5       $ 9    $1.50
"kids coding games"       95       1      $228    $2.40
"spanish for travel"     140      22      $308    $2.20

Specimen: synthetic, realistic

Final deliverable

A defect list mapping each search term to its correct campaign type, with the brand term's starved spend flagged as the first fix.

See a reference example
Sample output
Robinhood ASA restructure notes (excerpt)

BRAND (move now): "robinhood app" — was getting 4% of budget at the cheapest CPT on the sheet, raise daily cap immediately
COMPETITOR (new campaign, capped budget): "webull", "acorns" — currently unbudgeted inside broad match
GENERIC, harvest to exact match: "stock trading app", "investing app for beginners" — both above 2x conversion threshold
DISCOVERY, add as negative: "free games", "budget planner" — zero relevance, cut immediately

Success criteria

You're done when you can:

  • Correctly sorts all 8 search terms into Brand/Competitor/Generic/Discovery-irrelevant
  • Flags the starved brand term as the highest-priority fix, not the highest-spend term