Bidding & budgets
| Campaign | Bidding | Target | Budget/day | Status |
|---|
| Standard | Max Conv Value | none (no tROAS) | $1,000 | Live |
| NY | Max Conversions | none (no tCPA) | $48 | Paused |
| NY-DBT | Max Conversions | none (no tCPA) | $48 | Paused |
| Harrison | Max Conversions | none (no tCPA) | $48 | Paused |
| Bethesda | Max Conversions | none (no tCPA) | $48 | Paused |
| Arlington | Max Conversions | none (no tCPA) | $48 | Paused |
| DC | Max Conversions | none (no tCPA) | $48 | Paused |
| Parsippany | Max Conversions | none (no tCPA) | $48 | Paused |
| Red Bank | Max Conversions | none (no tCPA) | $48 | Paused |
No targets anywhere. The live campaign maximizes value with no tROAS (no efficiency floor); the locals maximized conversions with no tCPA against the wrong goal. The 8 locals shared identical $48/day budgets — too little signal each.
The decaying trend (live campaign)
| Month | Spend | Conv | Value | ROAS | |
|---|
| 2026-01-01 | $30,373 | 91 | $50,134 | 1.65× | |
| 2026-02-01 | $30,023 | 97 | $59,034 | 1.97× | |
| 2026-03-01 | $30,363 | 138 | $86,778 | 2.86× | |
| 2026-04-01 | $30,232 | 106 | $76,320 | 2.52× | |
| 2026-05-01 | $30,354 | 72 | $52,020 | 1.71× | |
| 2026-06-01 | $29,487 | 52 | $37,080 | 1.26× | |
June through the 30th; offline-conversion lag will revise it up slightly, but the Mar→May decline is on complete months.
Prior period — H2 2025 (scaling context)
| Month | Spend | Conv | Value | ROAS |
|---|
| 2025-07 | $9,688 | 152 | $66,891 | 6.90× |
| 2025-08 | $9,521 | 100 | $42,983 | 4.51× |
| 2025-09 | $13,569 | 7 | $5,040 | 0.37× |
| 2025-10 | $19,437 | 13 | $10,800 | 0.56× |
| 2025-11 | $30,552 | 25 | $43,920 | 1.44× |
| 2025-12 | $30,209 | 64 | $31,559 | 1.04× |
The campaign was far more efficient at lower spend. In Jul 2025 it ran ~$9.7K and returned 6.9× (152 conv / $66.9K). As budget scaled toward $30K/mo (Nov+), efficiency fell to the ~1.3–2.0× seen in 2026. Sep–Oct 2025 also shows a near-zero-conversion stretch (7 & 13 conv) — a likely tracking break or learning reset worth confirming. Read together with the 2026 decline, this is evidence the campaign has been scaled past its efficient frontier, not just fatiguing.
Dayparting (live campaign, by weekday)
| Day | Spend | Conv | Value | ROAS |
|---|
| Monday | $27,249 | 83 | $54,750 | 2.01× |
| Tuesday | $23,330 | 74 | $47,859 | 2.05× |
| Wednesday | $24,047 | 68 | $45,093 | 1.88× |
| Thursday | $25,896 | 94 | $61,524 | 2.38× |
| Friday | $22,783 | 89 | $57,223 | 2.51× |
| Saturday | $28,946 | 74 | $49,063 | 1.69× |
| Sunday | $28,580 | 72 | $45,851 | 1.60× |
Fairly even across the week (Thu/Fri marginally strongest); no material daypart signal to act on. PMax has no ad-schedule bidding control regardless — this informs budget/messaging only.
Settings hygiene
| Check | Finding | Flag |
|---|
| Conversion goal config | Live = PURCHASE biddable only (Won) · locals = PURCHASE + CONTACT×3 origins ($0 taps) biddable | core misconfig |
| Brand exclusion | No brand list applied — brand traffic runs through PMax | MISSING |
| Final URL expansion | Not exposed via API v24 — confirm in UI | VERIFY |
| Geo target type | PRESENCE / PRESENCE (not interest-based) | PASS |
| Negative keywords | 359 applied to the live campaign | PASS |
| Channel mix | 7,263 placements; impressions skew to WEBSITE/Display (110.8K) vs Google-owned (41.7K) & YouTube (5.2K) | REVIEW |
| Budget | Capped at $1,000/day, spending to cap monthly | CAPPED |
Prioritized actions
Now — measurement & read-accuracy
- Lock the live campaign’s conversion goal to Won + Consult only; demote ad-extension taps to secondary. (resets learning)
- Add a brand exclusion list; remove the “counseling center group” and “free therapy” search-theme signals.
- De-duplicate conversion actions — one primary lead + one primary call action per step.
Next — fix the decay
- Refresh creative / activate asset-group diversity — five months on one group while ROAS halved. (resets learning)
- Hold budget flat until ROAS recovers; don’t scale into a decline.
- Introduce a tROAS near the trailing achieved ratio after creative re-stabilizes. (resets learning)
Next — geo & device
- Diagnose DC (1.02× on ~$21K); lean into Florida (2.69×).
- Prioritize mobile post-click (4× better than desktop).
Later — structure & locals
- Don’t relaunch the 8 locals as-is; if revived, set them PURCHASE-only (turn off the 3 biddable CONTACT goals) and consolidate the eight $48/day budgets.
- Review account-level placement exclusions for the Display long tail.
- Clean asset-group naming (geo-mismatched groups in the wrong campaigns).
Audit coverage (vs. the PMax framework)
What this audit covers, partially covers, or cannot close due to Google Ads API limits.
| # | Step | Status | Notes |
|---|
| 1 | Frame + conversion setup | ✓ covered | Window, data-driven attribution, offline/qualified-lead feedback covered. Enhanced conversions & consent mode = UI-only. |
| 2 | Top-line vs target | ✓ covered | CPA/ROAS vs (no) target, budget cap, volume, lag — covered. |
| 3 | Channel / network distribution | ◑ partial | Placement-TYPE impressions shown. PMax spend & conversions BY channel are not exposed by the API — needs the in-UI script. The one true black-box gap. |
| 4 | Search terms & brand split | ✓ covered | Brand cannibalization quantified; brand-exclusion gap flagged. |
| 5 | Asset groups & assets | ◑ partial | Ad strength + video presence covered. Per-asset Low/Good/Best ratings are not returned in API v24. |
| 6 | Listing groups / feed | — n/a | N/A — lead-gen, no Merchant Center feed (confirmed empty). |
| 7 | Audience signals & insights | ✓ covered | Signals, search themes, off-target signals — covered. |
| 8 | Geo / device / time | ✓ covered | Geo + device + dayparting included. |
| 9 | Bidding & budget | ✓ covered | Strategy, targets, cap, learning. Search campaigns paused → no live overlap. |
| 10 | Incrementality / cannibalization | ◑ partial | Prior-period trend + brand segmentation as proxy. True read needs a geo holdout / pause test — not yet run. |
| 11 | Prioritized actions | ✓ covered | Above. |