Added to the recommendation queue (Proposed — awaiting your approval).
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
Creatives
| Ad | Age | Spend share | Freq | CPM | Hook |
Summer Promo — Video A Feel young again |
74d | 28% |
5.0 | $62 |
11% |
Testimonial — Static Real patient story |
20d | 12% |
2.1 | $28 |
34% |
Offer — Carousel Limited spots |
9d | 18% |
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.
- unknown
Is the phone number a tap-to-call link visible without scrolling? — Site not scraped in this pass.
- unknown
Does the landing page actually load? — Not re-checked in this pass.
- fail
Does the landing page load fast enough on mobile not to bounce? — PageSpeed mobile score 63/100, LCP 13.4 s.
- unknown
Is there a clear call-to-action (call/book/lead form)? — Site not scraped in this pass.
- 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.
- 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 →
proposed
Investigate the CPA spike 7-day CPA is 40%+ above the 30-day baseline — investigate before scaling
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
Refresh the fatigued creative Frequency 5.0 with falling CTR — audience is tired of this creative
proposed
Rotate out the stale creative 74 days old and still taking 28% of spend — refresh before it decays
proposed
Strengthen the video hook Only 11% watch past 3s — the opening frame isn't stopping anyone
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
proposed
Consolidate ad-set budgets 2 ad sets stuck in learning — consolidate budgets
rejected
Consolidate ad-set budgets 2 ad sets stuck in learning — consolidate budgets