Added to the recommendation queue (Proposed — awaiting your approval).

Ad Audit Pro

Audit any business on demand, clean up wasted ad spend, and keep client work in one place.

Ads Workbench

Daily management surface for client Meta & Google accounts — flags with evidence, a compliance scan, and an approval-gated recommendation queue. Nothing touches a client account without your Approve.

No clients yet — move a lead to won in the pipeline, then it appears here.

— Google Ads

not connected

— Meta account

demo data
$1840
Spend 7d
41
Results 7d
$44
CPA 7d
1.1%
CTR 7d
4.2
Frequency

Creatives

AdAgeSpend shareFreqCPMHook
Summer Promo — Video A
Feel young again
74d28% 5.0$62 11%
Testimonial — Static
Real patient story
20d12% 2.1$28 34%
Offer — Carousel
Limited spots
9d18% 1.4$33 22%
⚑ Run flags + compliance scan Generates recommendation cards you can review below.

🩺 Creative Doctor — per-ad diagnosis, worst first

0 critical 1 needs attention 2 healthy

needs attention Summer Promo — Video A — fatigue, stale_creative, cpm_outlier, weak_hook
healthy Testimonial — Static — no symptoms this scan
healthy Offer — Carousel — no symptoms this scan

🔍 Diagnostic: clicks but no calls

Likely cause Does the landing page load fast enough on mobile not to bounce? — PageSpeed mobile score 63/100, LCP 13.4 s.

  1. unknown Is the phone number a tap-to-call link visible without scrolling? — Site not scraped in this pass.
  2. unknown Does the landing page actually load? — Not re-checked in this pass.
  3. fail Does the landing page load fast enough on mobile not to bounce? — PageSpeed mobile score 63/100, LCP 13.4 s.
  4. unknown Is there a clear call-to-action (call/book/lead form)? — Site not scraped in this pass.
  5. unknown Is call tracking even set up to measure this accurately? — No call-tracking signal available — requires a tracking-number provider integration (e.g. CallRail) not yet connected.
  6. fail Is the ad creative itself attracting the right clicks (not a weak hook or fatigued audience)? — 2 weak-hook/fatigue flag(s) found on the current ads.

Flags 6

med fatigue · Summer Promo — Video A
Frequency 5.0 with falling CTR — audience is tired of this creative
med stale creative · Summer Promo — Video A
74 days old and still taking 28% of spend — refresh before it decays
med cpm outlier · Summer Promo — Video A
CPM $62 vs niche ceiling $40 — creative or audience mismatch
med weak hook · Summer Promo — Video A
Only 11% watch past 3s — the opening frame isn't stopping anyone
low learning limited
2 ad sets stuck in learning — consolidate budgets
high cpa spike
7-day CPA is 40%+ above the 30-day baseline — investigate before scaling

Compliance scan 2

Risky copy caught before Meta's reviewers do. High-severity items ping the morning digest.

high Summer Promo — Video A — "Do you suffer from" Implies the viewer has a condition — Meta's personal-attributes policy bans this framing.
high Summer Promo — Video A — "low T?" 'Low T' targeting language triggers personal-attribute review.

Google (Tier 1 & 2)

Tier 1 — brand defense (public, no credentials): who's bidding on 's name, LSA / Google Screened for the niche+city, and how many pages Google has indexed.

🔎 Open Ads Transparency Center for → Google never shipped a scrapable API for this — real deep link, opened by eye.

Running Google ads (brand name) not checked yet
Brand-term defense not checked yet
LSA / Google Screened not checked yet
Indexed page count not checked yet

Tier 2 — Search Terms CSV: upload the client's report to get monthly waste $, the worst terms, and a paste-ready negative list.

Open the CSV → negatives tool →

Recommendation queue for

See the full queue →

rejected Investigate the CPA spike 7-day CPA is 40%+ above the 30-day baseline — investigate before scaling
approved Investigate the CPA spike 7-day CPA is 40%+ above the 30-day baseline — investigate before scaling
proposed Fix the high-CPM ad CPM $62 vs niche ceiling $40 — creative or audience mismatch
rejected Fix the high-CPM ad CPM $62 vs niche ceiling $40 — creative or audience mismatch
rejected Strengthen the video hook Only 11% watch past 3s — the opening frame isn't stopping anyone
rejected Rotate out the stale creative 74 days old and still taking 28% of spend — refresh before it decays
rejected Refresh the fatigued creative Frequency 5.0 with falling CTR — audience is tired of this creative
rejected Consolidate ad-set budgets 2 ad sets stuck in learning — consolidate budgets
🤖