Uprise SOP · Ads

Brez "Ads Execution" Module — running capture (2026-07-05→)

The DELIVERY half of the AI Advertiser program: how to actually build + run Meta ads once a client is closed (vs brez-client-acquisition-module = how to GET the client). Rio going…

source: notes/brez-ads-execution-module.mdin-progresscreated 2026-07-05

The DELIVERY half of the AI Advertiser program: how to actually build + run Meta ads once a client is closed (vs brez-client-acquisition-module = how to GET the client). Rio going through it 7/5; this note grows as he feeds sections. This is the service Uprise sells — the thing Rio executes once a founding pilot signs.

🔑 Client Meta Access Setup (Lesson 3.4b — the FIRST fulfillment step, before any campaign)

Before you can run ads you need access to the client's Meta ad account. Source: ai-advertiser-course.vercel.app/classes/3.4b-client-meta-setup.html.

⚠️ PREREQUISITE — what RIO needs set up FIRST (his side): his OWN Meta Business Manager + ad account + business verification + a payment method. He's never run ads → he likely has NONE of this. Business verification can take days, so the smart move is to start his own BM + verification NOW (before a pilot signs) so onboarding isn't stalled by a multi-day Meta review. → actionable prep item, gated-but-worth-pre-doing.

✅ DONE 2026-07-06 (night) — Rio's side is BUILT + VERIFIED + TESTED

🎛️ Ximena's Operating Rules — folded from the Traffic Command 5-agent pack (2026-07-06)

Diffed the pack's REAL system prompts (Aurelius/Zenith/Vortex/Stratos; Nexus was already extracted → Verónica) against Ximena. Kept the operating logic; rejected the market-specific numbers + the wrong funnel model. What Ximena runs on now:

1. Andromeda campaign STRUCTURE (her build spec — use every time she builds a campaign via the MCP): 1-2 campaigns MAX · 1-3 broad ad sets · 15-25+ diverse creatives per ad set · Advantage+ as the default campaign type · broad or NO targeting. The "rule of 6" died Feb 2025 — creative diversity replaces micro-segmentation ("creative IS the targeting"). Don't build 5+ campaigns, don't micro-segment, don't manually over-optimize. Learning phase needs ~50 conversions; don't judge for 7-14 days.

2. Symptom → diagnosis matrix (how she reads ad data):

Symptom Real cause Action
High CPM + low CTR creative ship 15-20+ new diverse creatives
Low CPM + good CTR + low CVR landing page escalate to the web/site side
Good clicks + low leads/shows follow-up escalate to Rio / the client
Good shows + low close sales escalate to Rio / the client
CPM climbing daily Andromeda penalty MORE creative diversity
Sudden drop across ALL metrics algorithm reset do NOT panic — wait 72h

Rule: "if it's not the ads, it's not Ximena's problem" → name the real owner and escalate, never guess.

3. Creative diversity = different MOTIVATIONS, not reworded variations. Each creative a distinct psychological angle (health / financial / speed / authority / fear), NOT the same line reworded. Same-angle reworded = algorithm penalty. Baseline volume = 50+ variations/month. (Deep creative craft — the 100-hook framework + DSL Disrupt-Story-Landing — lives in the pack knowledge base; that's Mariana's reference when writing ad creative, pull on demand.)

4. Budget-allocation tiers (once multiple ad sets run): Tier 1 = 60% of budget (ROAS >3x) · Tier 2 = 30% (2-3x) · Tier 3 = 10% (testing) · Tier 4 = 0% KILL (ROAS <1.5x for 5+ days). Always keep ~20% in testing.

5. Scale-readiness 4-pillar gate (before ANY >20% scale): ① metrics stable 7d · ② creative health (15+ active, no single creative >40% of spend, pipeline full) · ③ tracking health = Verónica's CAPI + match-rate sign-off · ④ infrastructure (can the CLIENT's phone/sales/cash absorb +30%?). 4/4 = scale · 3/4 = fix first · <3/4 = don't scale.

6. Scaling cadence: Day 1-3 hold/validate · Day 4-5 +15-20% if stable · Day 6-7 hold · Day 8-10 +15-20% · never >20% in one day · wait 24-48h after each bump before judging. (Consistent with Ximena's existing "SCALE ≤ target +20% ladder.")

7. Launch gate = Verónica, hard-linked. Data setup — CAPI + Advanced Matching + conversion events + pixel — is MANDATORY before launch. Any missing → Verónica audits, DON'T launch. (This makes Verónica's gate an explicit pre-launch dependency in Ximena's flow.)

🎯 CONTEXT-GATED (keep them — fire only for the right client + market; corrected per Rio 7/6):

🎨 Ad creative DESIGN — making the actual ad image (Lesson 3.9b, added 7/7)

The VISUAL half of creative (copy lives in copywriting-direct-response). Verbatim: data/brez-course/3.9b-ai-ad-design.md. Creative is the #1 Meta lever now (Andromeda targets for you — the creative is your job). For local biz it must feel REAL, not corporate-stock ("like someone in the neighborhood took it").

Course workflow (Stitch → Canva, ~10 min/ad): (1) answer 3 Qs — what the client does · the offer · who sees it (e.g. homeowners 30-55 in [city]) + grab their logo + brand hex from their site. (2) Google Stitch (stitch.withgoogle.com, free) — describe the ad in plain English, iterate by text ("make text bigger", "add before/after split"), export. (3) Canva — drop the REAL logo, adjust, preview at phone size (95% see it on mobile), export PNG.

The 5 angles covering ~90% of local ads (make one of each, let Meta pick the winner — don't guess): ① Direct Offer · ② Before/After (split; strongest for service biz) · ③ Social Proof (stars + review + pro image) · ④ Problem Call-Out ("Your AC bill doesn't have to be this high") · ⑤ Urgency/Seasonal. (8 niche-specific Stitch prompts + a 10-niche quick-ref table are in the verbatim.)

The don'ts: no fake-looking stock · 5-8 words MAX on the image (rest goes in the copy) · always match the client's logo + color · mobile-preview everything · health before/after needs "results may vary" (Meta flags dental/weight-loss/skincare).

🔧 Rio's stack adaptation: Stitch is the free path, but Rio already pays for Higgsfield (image gen) + has the Canva MCP + a stitch-skill installed — the generation tool is a choice, the workflow is the same. Rio's anti-slop bar overrides the course (feedback_antislop_web_design): AI ad images must read as REAL, never AI-default. Per CLAUDE.md image rules: EXTRACT the client's real logo (never recreate from sight), pull brand hex from the site's actual CSS (never eyeball).

3 client scenarios: A = client has nothing (walk them through full setup) · B = has BM + ad account (skip to the access invite) · C = has a FB Page but no BM (create BM, then claim the page).

Scenario A — client's steps:

  1. Create Business Manager at business.facebook.com → business name + their full name + business email → confirm via Meta's verification email.
  2. Create ad account: Business Settings → Accounts → Ad Accounts → Add → Create New → set account name, time zone (their location), currency (CANNOT be changed later).
  3. Add payment method: Business Settings → Payment Methods → their own card. "Their card, not yours." (= reinforces the founding-pilot rule: client always funds ad spend.)

Granting Rio access (client does this): Settings (gear, bottom-left) → People → Add People → enter Rio's business email → toggle ON both Ad Account + Facebook Page with Full Control → Send. Then Rio accepts the invite in his own BM → the client's assets appear in his dashboard.

Client FAQ (pre-answers to calm them): no password sharing needed · BM doesn't expose your personal FB profile · your card pays ad spend, the management fee is separate · BM campaigns ≠ boosting a post.

7-point completion checklist: BM created · ad account made (correct tz/currency) · payment method added · invite sent w/ Full Control on both assets · invite accepted · ad account visible in Rio's dashboard · page visible in Rio's dashboard.

🎯 Rio: this slots into uprise-onboarding as the "activate the engine" access step. Add a copy-paste client message (the exact People → Add People → Full Control walkthrough) to the onboarding kit so a signed pilot can grant access in 5 minutes. The access handoff was already flagged to happen live on the kickoff call ("no passwords over text") — this is that step, formalized.

0. The mental model (the 3 levels, built top-down)

Campaign → Ad Set → Ad. Always built top-down:

1. Campaign setup — the objective

Meta Ads Manager: + Create → pick the "Leads" objective → scroll to the "Campaign Budget Optimization" toggle. Toggle ON = CBO, OFF = ABO. (The daily-budget field MOVES depending on which is selected — at the campaign level for CBO, at the ad-set level for ABO.)

2. CBO vs ABO (budget optimization) — the core decision

ABO — Ad Set Budget Optimization (toggle OFF): you set a budget for EACH ad set individually. Full control.

CBO — Campaign Budget Optimization (toggle ON): you set ONE budget at the campaign level, Meta splits it across ad sets.

🎯 THE SIMPLE RULE

Testing? → ABO. Scaling? → CBO. Start EVERY client on ABO. Move the winning ad sets into a CBO campaign once you know what works. (Test cheap + fair on ABO → graduate winners to CBO to pour budget on proven performers.)

3. Campaign naming (stay organized)

At 5 clients × 3 campaigns each it gets messy fast. Consistent naming from day one, so you're never staring at "Ad Set 1, Ad Set 2, Ad Set 3."

4. The sales-call math tools — TWO different course calculators

The program has two separate calculators (Rio flagged the distinction 7/5):

  1. Budget Simulator ("See Your Client's Numbers") — sliders, 4 inputs (Daily Budget · Cost Per Lead · Close Rate · Avg Job Value) → Leads/Customers/Revenue/Ad Spend/ROAS. Shows the client's OUTCOME only.
  2. Napkin Math Calculator ("Will This Client Be Profitable?") — number inputs, 5 inputs (adds Your Monthly Fee) → everything above PLUS Client's total cost + Client's net profit + a "no-brainer" verdict. The actual CLOSE tool (shows the client their profit AFTER paying Rio).

✅ RIO HAS HIS OWN (built + deployed 7/5): https://uprise-roi.pages.dev — the Napkin Math superset (does everything both course tools do), Warm Rise branded, with niche presets (Custom Pools / Cleaning / Landscaping / Pizza). Source: ~/uprise-simulator/public/index.html (Cloudflare Pages project uprise-roi). The course's widgets weren't linked as usable resources, so Rio owns this one — pull it up on Call 2, type their numbers, the green net-profit line closes it. Custom Pools default: $30/day + $60 CPL + 15% close + $2,500 job + $1,000 fee → $900 spend, 2 customers, $5,000 rev, 5.6x ROAS, $3,100 client net profit → no-brainer. ⚠️ Optional: CNAME roiuprise-roi.pages.dev for roi.uprisegrowth.io.

Purpose (both): "show clients the math — watch their eyes light up." The Call-2 close mechanic (brez-client-acquisition-module) made visual.

4 inputs → 5 outputs (example on screen):

The math (so it's reproducible, verified):

🎯 The strategic read (not in the doc — Rio's edge): the two levers that move ROAS most are Avg Job Value and Close Rate, NOT budget. A $32 CPL against a $1,000 job barely clears 2x. Against a pool resurface ($2,500) or a paver patio ($8,500–27,000) — Rio's actual barrels — the same lead math throws a 10–50x ROAS. This is WHY the high-ticket local niches make the ad math sing, and it's the number to put in front of a Custom Pools / landscaping owner on Call 2. Rio already builds tools (roadmap, teardown, Command) — a branded version of this simulator would be a strong pilot-pitch asset (plug in THEIR job value live).

5. The Testing Framework — launch → wait → kill → scale → repeat

The optimization loop you run every week once a client's live:

⚠️ Tension to know (Rio's edge): §6 says budget changes >20% RESET the learning phase, but this framework says scale 20-30%. So the safe scaling move is to stay at/just under 20% per bump — 20-30% is the aggressive ceiling and risks kicking a winner back into learning. When in doubt, +20% and wait the 2-3 days.

6. The Learning Phase (DON'T touch it)

New ad set → Meta enters the learning phase: it's figuring out who to show the ad to. Performance is inconsistent (some days great, some terrible) — that's normal. In Ads Manager the Delivery column reads "Learning" / "Learning Limited" until it exits to "Active."

7. First Campaign Structure (copy this — don't overthink)

Setup: + Create → Leads → name it → first ad set: broad targeting → location radius 10mi around a city → age 25-55 → $15/day. Then:

CAMPAIGN: [Client] – Leads – ABO Testing      (Objective: Leads | Budget: ABO / ad-set level)
├─ Ad Set 1: Broad – [City] 10mi – 25-55       $10-15/day · broad targeting (let Meta's AI find them)
│    ├─ Ad 1: Image – [Offer Angle A] – V1
│    ├─ Ad 2: Image – [Offer Angle B] – V1
│    └─ Ad 3: Video – [Testimonial/BTS] – V1
└─ Ad Set 2: Interest – [Relevant Interest] – 25-55   $10-15/day · interest targeting (e.g. "Pizza","Italian food","DoorDash")
     └─ Ad 1: the SAME 3 ads as Ad Set 1

Key logic: same 3 creatives across 2 audiences = you're testing AUDIENCES, not creatives (isolate one variable — this is the ABO testing method from §2 in practice). Broad vs Interest is the first audience test.

🎯 Uprise adaptation (not in the doc): the example is a pizza shop (low job value, 10mi radius). Rio's barrels are pools/landscaping — higher job value + wider service area, so: bump the radius to metro-wide (pool cos serve a county, not 10mi), and the $600-900/mo ad spend clears profitably at a $2,500-27,000 job value where a pizza can't. Ad spend is on the CLIENT's card per the founding-pilot terms (uprise-onboarding) — so quote the pilot expecting them to fund ~$600-900/mo minimum, and set the "week-1 learning" expectation (§6) on the kickoff call.

🔁 DAILY OPS — the 15-Minute Optimization Routine (Lesson 3.11, Module 3: Fulfillment)

Once campaigns are live, the job flips from building → maintaining. Every day, per client, 15 minutes: read the data, make decisions. No guessing, no feelings — numbers → rules → action. "This is where you earn your retainer."

Screens: (1) Ads Manager — Campaign View (most of your time) · (2) Ads Manager — Ad Level (individual ad performance).

The routine (set a timer, 15 min, no more):

⚠️ #1 beginner mistake: spending 2 hours "optimizing" and making it WORSE. The learning phase needs ~50 conversions/week to stabilize; every change resets it. Do LESS. Only change what the rules tell you to.

✅ Resolves the §5/§6 tension: the daily routine says bump winners 20% (not 20-30%) — so 20% is the canonical, learning-safe scale number. Use 20%. 🎯 Rio tie-in: this per-client 15-min "numbers → rules → action, then log" loop is the SAME shape as his Command Coach tab + daily KPI ritual — just pointed at a client's ad account instead of his own outreach. Once he has ad clients, this routine IS the retainer deliverable (and the LOG step = the report that justifies the monthly fee). ✅ BUILT INTO COMMAND 2026-07-06 — the "Fulfillment" tab (uprise-command.pages.dev): per-client ad tracking, daily log with auto-CPL + auto KILL/WATCH/SCALE/REFRESH suggestion (from CPL vs the client's target + freq), weekly totals, color-coded rows, and a "Generate weekly client report" button that auto-drafts the §7 report from the week's rows (em dashes stripped). Endpoint functions/api/adtrack.js (lazy-created ad_tracking table + client settings in K/V). This is Command's Fulfillment side going live — it was acquisition-only before.

The 4 metrics that matter (Ads Manager has 50+ columns — these are the only 4 to check daily)

Setup: Ads Manager → Columns → Customize → add Cost per result, CTR, CPM, Frequency, remove everything else, save as a "Daily Check" preset.

The 4 Decision Rules (formal — §3; every ad gets ONE label, no "maybe")

Uses CPA (cost per acquisition / cost per result) vs your target. For lead-gen this = CPL, same north-star number.

Label Trigger (CPA vs target) Action + nuance Example (target $10)
KILL 3x+ target Bleeding money — off immediately, it won't recover. BUT judge only after you've spent 2-3x your target CPA (data must be real). Kill at $30+
WATCH 1.5-3x target Not great, not terrible. Give it 2-3 more days. Doesn't improve → kill. Drops below target → scale. Watch at $15-30
SCALE at/below target Winner. Raise budget 20-30%, GRADUAL — never double overnight (protects the learning phase). Scale at ≤$10
REFRESH Frequency 3.0+ People seeing it too often, perf about to drop. Add 3-5 new creatives to the ad set. Don't pause the old ones yet — let Meta redistribute. Freq 3.0+ → add creatives

🖨️ The principle: print these, stick them by your monitor. When tempted to make a "gut feeling" change — look at the rules. If the data doesn't say change it, don't. The algorithm is smarter than your gut. Always.

⚙️ Scaling number — reconciled (this note had a tension): the formal rule = 20-30% gradual; the learning-phase rule = changes >20% can re-trigger learning. Resolution: while an ad set is still stabilizing (under ~50 conv/week / recently out of learning) → cap bumps at 20%. Once it's well past learning with steady volume → 20-30% is fine. When unsure, 20% and wait 2-3 days. (The daily-routine card's "+20%" is the safe default; 30% is the aggressive ceiling for proven, high-volume winners.)

Worked example — Tony's Pizza, Day 7 (target CPL $10):

Ad Spend CPL CTR Freq Decision
Family Dinner – Video $42 $7 3.2% 1.4 SCALE (crushing it → +20%)
Late Night Deal – Static $38 $9.50 1.8% 1.8 SCALE (under target)
Lunch Special – Carousel $35 $17.50 1.1% 2.1 WATCH (~1.75x target)
Party Catering – Video $45 $45 0.4% 1.6 KILL (4.5x target → cut now)
Grand Opening – Static $52 $10.40 1.6% 3.2 REFRESH (good CPL, freq 3.2 = seen too often → new creative)

🎯 Rio connection: CPL/CPA is the same "Cost Per Lead" input in his ROI calculator (uprise-roi.pages.dev). The calculator sets the TARGET you promised the client; this daily check validates the ACTUAL against it. Calculator = the pitch, daily check = keeping the promise.

Your Daily Tracking Sheet (§4 of the daily-ops lesson)

After each 15-min check, log the numbers → tracks trends, catches problems early, and becomes the weekly client report. The program ships a Google Sheet template ("Daily Campaign Tracker"): one tab per client, CPL auto-calculates, color-coded (green = good / yellow = watch / red = kill).

🎯 Rio: this is the LOG step of the daily routine made durable, and it's the client-side twin of Command's Coach tab (Coach tracks HIS outreach KPIs; this tracks a CLIENT's ad KPIs). ⚠️ Like the calculators, the course's Sheet isn't a linked/usable resource → Rio needs his own.

EXACT structure (from the real course sheet, screenshot 7/5) — the build blueprint:

✅ BUILT + DELIVERED 2026-07-05: ~/Downloads/Uprise - Daily Campaign Tracker.xlsx — 3 tabs (Example–Tony's Pizza w/ 9 days + weekly read · Blank Template w/ 30 pre-formula'd rows · How To Use), CPL auto-formula (=Spend/Leads), conditional formatting green/yellow/red vs the Target CPL in SETTINGS, Decision-column color badges, decision-rules reference. To make it a live Google Sheet: drag the file into drive.google.com → it converts (or File → Import). Not pushed straight to Drive because the Sheets MCP is a service account that can't share new files to Rio, and the Drive-141 base64 upload isn't transcription-reliable at 14KB — the Downloads → drag-to-Drive route is clean + 1 step. Rebuild script: scratchpad/build_tracker.py. Alternative future home: fold a per-client ad tracker into Command. The daily log = what justifies the retainer.

The 5 Optimization Killers (§5 — the mistakes that reset learning + burn client money)

  1. Changing things during the learning phase. Meta needs ~50 conversions/week to learn who to target. Edit budget/targeting/creative before that → resets to zero, learns all over. Wait.
  2. Doubling budget overnight. $15→$30/day resets learning; the algorithm panics at big jumps. Scale ~20-30% at a time: $15 → $18 → $22 → $27. (Concrete confirmation the safe ladder is ~20% steps.)
  3. Panic-killing after 24 hours. Day-1 data means nothing. Let an ad spend 2-3x your target CPA before judging — target $10 CPL → let it spend $20-30 first.
  4. Editing the winning ad. ⭐ NEW RULE: an ad's crushing it → "let me tweak the copy to make it even better" → you just killed it. NEVER edit a winner. Want to test a variation? Create a NEW ad and leave the winner completely alone.
  5. Optimizing based on feelings. "I don't like this ad" is irrelevant; "this ad has 3x CPA after $30 spend" is what matters. You are not the target audience. Your client is not the target audience. Only the data decides.

The Scaling Ladder (§6 — how to raise a winner's budget)

Ad winning = CPA at/below target for 3+ days. Scale gradually, never jump more than 20-30% at a time. The ladder: $15 → $18 (+20%) → $22 (+22%) → $27 (+23%) → $33 (+22%) → $40 (+21%).

The Weekly Client Report (§7 — the message that keeps them paying)

Every Monday, send a SIMPLE update — not a 10-page doc, just the numbers that matter + what you did. Clients don't care about CPM/CTR; they care about "how many leads and how much did they cost?" The tracker (§4) feeds this directly. Template:

Hey [Client]! Here's your weekly ads update:

📊 THIS WEEK'S NUMBERS
• Total Spend: $___
• Total Leads: ___
• Cost Per Lead: $___
• Best Performing Ad: [name] — $[CPL]

🟢 WHAT'S WORKING
• [Top ad + WHY it's winning — angle, creative type]
• [Any trends noticed]

🔴 WHAT WE CHANGED
• Paused [X] underperforming ads (too expensive)
• Increased budget on [Y] — best performer
• Added [Z] new creatives to keep things fresh

🟡 NEXT WEEK'S PLAN
• [What's next — new creatives, scaling, etc.]

Questions? Let me know!

This one message keeps clients happy + paying every month. ⚠️ Rio note: strip em dashes for client-facing use (feedback-no-em-dashes / CLAUDE.md rule) — the template uses them; rewrite before sending.

🏢 Client Meta Access Setup (Rio's readiness plan — written 7/6 12:50 AM, client close expected 7/6)

Current BM state (screenshot 7/6): 3 business portfolios — "Uprise" (Uprise Growth FB Page + IG, the real one) · "Rio Costa" (0 assets, junk) · "rio costa" (1 asset, unknown — check before touching). Rule: operate ONLY from the Uprise portfolio. Ignore the other two for now — do NOT delete anything at 1 AM; check the 'rio costa' asset in daylight (might be the old Costa Co page).

Get client-ready (~15 min, tonight or before the close)

  1. Uprise portfolio → Settings (gear) → Business info — confirm Rio is Admin, add rio@uprisegrowth.io as the business email.
  2. Security: turn on 2FA for the account (Meta requires it for people in verified/partner flows; also it's the #1 hijack defense for an agency asset).
  3. Create Uprise's own AD ACCOUNT (Business settings → Accounts → Ad accounts → Add → Create new): name "Uprise Ads", USD, ET timezone. New BMs are capped at 1 ad account — that's fine. Add Rio's card as its payment method (this account = Rio's own tests/boosts ONLY, never client spend).
  4. Verify the domain (Business settings → Brand safety → Domains → uprisegrowth.io, DNS TXT record) — helps ad delivery trust + needed for some conversion features later.
  5. Business verification (start it, takes DAYS): Security Center → Start verification. ⚠️ Legal-entity wrinkle: the legal name is Costa Co Studio LLC (Uprise DBA not filed yet — Lucia's queue). Verify under the LLC's legal name/docs; the portfolio can still display "Uprise." Don't let a name mismatch stall it.

When the client signs (the onboarding sequence — THEIR assets, THEIR card, Rio gets ACCESS)

Doctrine (matches uprise-onboarding founding-pilot terms): the client owns their ad account + pays spend on their own card. Rio is a PARTNER with manage permissions — never logins, never Rio's card on client spend, and if they ever leave, they keep their data (clean + professional).

  1. Client needs: a FB Business portfolio (free, business.facebook.com — 5 min, walk them through it on the kickoff call), their FB Page in it, an ad account in it with THEIR payment method, and (e-com) their pixel/dataset.
  2. Rio requests partner access: Uprise Business settings → Partners → Partner with a business → ask the client for their Business ID (their Business settings → Business info), request: Page (advertise) + Ad account (manage campaigns) + Pixel/dataset (view/manage). OR the client-side route: they add Uprise's Business ID as a partner with those permissions. Either works; use whichever the client finds easier — usually Rio driving on a screen-share.
  3. Verify access: the client's ad account appears in Rio's Ads Manager account-switcher. Build the first campaign FROM THEIR account ([Client] – Leads – ABO Testing, §7 structure).
  4. Set the learning-phase expectation on the same call (§6 script: "first week might look rough, that's Meta learning — week 2 we get real data").
  5. Log the client in Command → Fulfillment (+ target CPL from the ROI-calc numbers quoted on the close call) — daily 15-min routine starts day 1 of ads.

Screen-share cheat: the whole client-side setup is ~10 min on the kickoff call. Don't send them written instructions and hope — drive it live.

🔌 META ADS MCP — the Fulfillment automation unlock (bonus lesson, captured 7/6)

Meta ships an OFFICIAL Ads MCP: https://mcp.facebook.com/ads — 29 tools across 5 families (campaign/ad write · catalogs · accounts · tracking · insights). Install in Claude Code = ONE command:

claude mcp add --transport http meta-ads https://mcp.facebook.com/ads

(OAuth against Rio's Meta login; Claude Desktop route = Settings → Connectors → add custom → same URL.) ⏳ GATE: install AFTER business verification clears + first ad client is live (advanced API access wants a verified business — exactly why verification was submitted 7/6, 2 AM). When live, this closes the loop we designed: Selena pulls spend/CPL/CTR/freq via MCP → pre-labels KILL/WATCH/SCALE/REFRESH → auto-fills the Command Fulfillment row → weekly report drafts itself. Daily 15-min routine → 3-min review. The 8 course prompts to adapt once connected: daily pulse dashboard (yesterday by campaign, red/yellow/green) · Friday client report (7-day HTML 1-pager) · cleanup audit (kill/keep/scale table) · catalog health · anomaly alert in plain English · auction-edge report (top 10 ads vs benchmarks) · pre-pitch account audit (1-pager on a PROSPECT's ad account — a teardown-machine upgrade for prospects already running ads) · live self-refreshing dashboard.

🎨 Creative production workflow (same bonus — adapted to Rio's stack)

Course teaches: Claude-built static ads (HTML → screenshot, 6 niche templates: dentist before/after, gym transformation, restaurant chalkboard-special, realtor sold-flex, salon before/after, plumber trust-builder w/ big phone number) + Freepik (Nano Banana stills → Seedance 5s image-to-video) + CapCut stitch (captions, CTA card, 9:16/1:1). Monthly per-client bundle: brief 5min → 4-6 statics 15min → hero images 10min → animate top 2 → stitch → Friday report = ~55 min/client/month core, ~90 min with LP + deck (charge $1.5-3K extra for premium bundle). The margin thesis: replaces the 5-day designer loop; 22-35% margins → 65%+. 🎯 Rio substitution: SKIP Freepik — Higgsfield ($49/mo, already paid) covers image gen + video gen + upscale. Pipeline: Claude/HTML statics (Rio already builds these better via the IG-post pipeline) → Higgsfield for photoreal stills + 5s animations → CapCut. Zero new subscriptions.

✅ Module mastery checklist (the program's own 7-point self-check)

  1. Explain Campaign → Ad Set → Ad in your own words (§0)
  2. Know when to use ABO vs CBO (§2)
  3. Use the naming convention (§3)
  4. Use the budget simulator for a practice client (§4)
  5. Know the testing framework: launch → wait → kill → scale → repeat (§5)
  6. Understand the learning phase + what NOT to touch (§6)
  7. Know the copy-paste starter structure for the first client (§7) Tags: campaign-structure · CBO · ABO · testing · scaling · learning-phase · budget · beginner.

Status: this note now covers all 7 — the ads-execution playbook is complete. Rio's practice rep (checklist item 4): run the budget simulator with a REAL barrel's numbers (Custom Pools $2,500 job value, not the $1,000 example) and screenshot it — that becomes his Call-2 close asset.


Complete as of 2026-07-05. Future sections if the program adds them: audiences, creative production, pixel/tracking, reporting.

🔍 Fidelity-audit additions (7/6 overnight — recovered from the verbatim archive)

Audit result: 3.6 (campaign structure) and 3.11 (daily optimization) = fully captured above, clean. But two module-3 lessons weren't in this note at all — 3.3 (ad platforms) and 3.4 (your own BM). The material parts:

3.3 — Platform selection doctrine (was missing entirely)

Unlock order (like weapons): Meta = Day 1 starter → Google = client #3+ → TikTok = right niche only → YouTube = advanced/retargeting only. The one rule: "Master Meta first. Get your client results on Meta. Make them profitable on Meta. THEN talk about adding Google or TikTok. One platform done well beats three done poorly." First 3 clients = Meta only.

Platform benchmarks:

Platform CPL (local) Min budget Key fact
Meta $5-15 $10/day works for every niche, no website needed (Instant Forms)
Google $15-50 $20/day highest intent — leads close at 2-3x Meta's rate; add only after Meta is profitable
TikTok $3-12 $20/day cheapest reach, under-40 visual niches only, eats creative — new videos every 1-2 weeks
YouTube $0.10-0.30/view $15/day retargeting play; needs 1,000+ site visitors/mo of pixel data first

Niche→platform calls (the ones relevant to Rio's barrels + common asks):

Client explainer line (verbatim, why-Meta-first): "We start with Meta because it's the fastest way to get you leads at the lowest cost. Your customers are already on Facebook and Instagram. Once we're profitable there, we can add Google for even higher quality leads."

3.4 — Own-BM warnings the readiness plan should absorb