Meta Ads Consultant Plan — One Engine, Every Dollar on Purchases

JITLearnings4Mgrs · June 5, 2026 · Account act_965346905657245 · Prepared from live Meta + Clarity + Stripe data · Panel: Pittman, Denney, Hormozi, Patel (+ Ben Heath cross-check) · Goal: sales + ROAS

1 · Executive summary

Recommendation: run a single purchase-optimized sales campaign at $20/day containing only the two ads that have ever produced results, let Meta's delivery system allocate across cold and warm people inside it, and govern everything with spend-based kill rules and a ROAS-gated budget ladder.

Three findings force this design:
  1. Audience walls don't hold. The "warm" campaign spent 94% of its budget ($129.34 of $136.90) on brand-new people — Advantage+ expansion treats audience lists as suggestions. Separate temperature campaigns are paying structural overhead for a separation that doesn't exist.
  2. The optimization event is the real targeting. The same video optimized for cheap page-views bought 10,702 clicks and zero sales ($99); optimized for purchases it produced 43 leads and sales. Every ad set must optimize for Purchase.
  3. Signal is scarce — pool it. ~15 attributed purchases per month across the account vs ~50/week needed for learning-phase exit. Splitting that signal across 3-4 campaigns guarantees all of them stay starved.
Daily spend
$20
Active campaigns
1
Active ads
2
Breakeven CPA
~$29
Scale gate
2x ROAS

2 · The live campaign (built, paused, ready to flip)

JIT v2 | SALES ENGINE | Purchase | $20d flip to ACTIVE
Campaign ID 120246748409250465 · open in Ads Manager
SettingValueWhy
ObjectiveSales (OUTCOME_SALES)Purchases are the goal; everything else is a proxy
OptimizationPurchase event · pixel 4235520640036275Finding #2 — buyers, not clickers
Budget$20/day, campaign level (CBO)Same total outlay as today, one pool (Finding #3)
Ad setv2 | SCALE-A · ID 120246748419360465One ad set = one learning unit
AudienceBroad 25-65, US/CA/AU, Advantage+ on. Excluded: 3 purchaser listsCold + warm together (Finding #1); never pitch existing buyers
PlacementsAutomaticLet delivery find the cheap pockets
POV_Trust ad thumbnail
v2_SCALE_POVTrust proven 2.40x ROAS
Video · "Why your team stopped pushing back" · CTA: Download
Destination: jitlearnings4mgrs.com/squeeze (free 30-phrases PDF → Soap Opera emails → $9.95/$19.95/$37 ladder)
Track record (30d): $72.38 spend · 6 purchases · $12.06/purchase · 10 leads · frequency 1.49
Ad ID: 120246748434430465 · creative 2183421892433822 (same post — social proof carries over)
Trial Winner ad thumbnail
v2_SCALE_TrialWinner_Top1pct $0.98/lead machine
Video · "Top 1% of leaders" angle · boosted-post creative
Destination: jitlearnings4mgrs.com/squeeze
Track record (30d): $42.17 spend · 43 leads · 1 purchase · frequency 1.30 — feeds the email list that sells later
Ad ID: 120246748437490465 · creative 1662215614899197
URL tagging (already on both ads): utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{placement}} — flows into Stripe attribution on the dashboard's Attribution tab.

3 · Spend plan — start, ladder, ceiling

$/dayExpected purchase signalWhen
$20 (start)~8-14 purchases/week — engine readable weeklyAt flip — same total as current spend
$25 → $32 → $4015-20/week — delivery stabilizes+25% every 3 days, only while trailing-7d ROAS ≥ 2x
$50Account cap; revisit monthly
$85-130~50/week — true learning-phase exitMilestone, not a target; requires ROAS holding at every step
Hormozi guardrail: never raise budget to cure starvation while economics are negative — a money-losing machine fed faster loses faster. Attributed AOV is ~$29 (OTOs attach ~3x the $9.95 front-end), so: CPA ≤ $29 = breakeven · CPA ≤ $15 = scale-worthy · CPA ≥ $29 for a full week = drop budget one rung, ship fresh creative.

Patel small-sample rule: judge on trailing 7 days minimum, never a single day. 14-day windows on this account swing from 0.5x to 2.4x on 4-6 purchases — checkpoints exist to prevent both panic-kills and euphoria-scaling.

4 · Kill / keep / iterate rules (standing policy)

TriggerActionSource
Ad spends $15, 0 purchases, link CTR <1%PauseDenney — hook failed the entrance filter
Ad spends $30 (≈1x AOV), 0 purchasesPause regardless of CTRHormozi — it ate a customer and returned nothing
Ad gets near-zero delivery (<$1/week)Leave it runningBen Heath amendment — zombies cost nothing, act as free creative options and possible hidden-funnel assists. (Supersedes the earlier "prune clutter" rule.)
Winner frequency >3.0 or ROAS halves with no changesShip a NEW iteration ad; never edit the winnerDenney — edits reset learning; fatigue shows in ROAS before frequency. Current frequencies: 1.49 / 1.30 lifetime — no fatigue anywhere yet
Anything pausesPause, never deleteVersion control — paused ads keep their post, engagement, and history

5 · How new creative enters (4-6 ads/month)

  1. One new ad at a time into SCALE-A, launched paused → activated at the Friday review. Meta auditions it automatically against the incumbents.
  2. Must be genuinely different — different talent, setting, or format. Color-grade tweaks and copy swaps look identical to Meta's classifier and never get a real audition.
  3. Kill rules from §4 decide its fate. A purchase at ≤$30 = it stays; the portfolio grows.
  4. Batch testing (3+ new angles at once): reactivate the shelved COLD-TEST campaign as a $5-10/day lab instead of flooding the engine.

6 · Shelved options — built, paused, with reactivation triggers

Wiebe Verdict ad thumbnail
[SHELVED] JIT v2 | COLD-TEST | Destination paused
Campaign 120246746951590465 · two $5/day arms: direct-to-$9.95 sales page and /squeeze?ab=coach.
Reactivation trigger (arm B): the sales-page rebuild ships — testing against a page with 95% bounce is an execution, not an experiment.
Coach arm note: partially redundant today — the squeeze page's own A/B split already tests coach-vs-OTO on every visitor, free.

[SHELVED] JIT v2 | WARM | Purchase paused
Campaign 120246747251990465 with the Wiebe_Verdict ad (pictured — 6 lifetime purchases). Reactivation trigger: sales-page rebuild ships AND the engine's New/Engaged/Existing breakdown shows engaged-audience purchases lagging — i.e., evidence the broad pool under-serves warm people.

7 · Measurement & cadence

8 · Flip checklist (2 minutes)

  1. Ads Manager → activate JIT v2 | SALES ENGINE (campaign, then ad set, then both ads).
  2. Pause the 3 v1 campaigns: "Cold v3 SALES", "Cold_Trial_Winners SALES", "Warm Retarget | Playbook $9.95".
  3. Confirm: exactly 1 campaign ACTIVE, $20/day, 2 ads delivering. Everything else paused.
First checkpoint: Friday June 12 — delivery started, no rejections, CPM and first purchases. First ladder decision possible June 19.

Appendix · Entity registry

EntityIDStatus at handoff
Campaign · JIT v2 | SALES ENGINE | Purchase | $20d120246748409250465PAUSED — flip to active
Ad set · v2 | SCALE-A120246748419360465PAUSED — flip
Ad · v2_SCALE_POVTrust120246748434430465PAUSED — flip
Ad · v2_SCALE_TrialWinner_Top1pct120246748437490465PAUSED — flip
Campaign · [SHELVED] COLD-TEST (2 ad sets, 2 ads + Wiebe candidate)120246746951590465PAUSED — stays
Campaign · [SHELVED] WARM Purchase (1 ad set, 1 ad)120246747251990465PAUSED — stays
v1 history · Cold v3 / Trial_Winners / Warm Retarget + 6 olderACTIVE until flip → then PAUSED forever (rollback)
Full analysis trail: JIT_META_RESTRUCTURE_PLAN_2026-06-05.html · Change log EV-2026-06-05-01/-02 · Dashboard: jit-dashboard.pages.dev (Paid Ads + Attribution tabs)