Pro Playbook

AI Ad Creative Engine

Build an AI system that pulls your organic content data, learns what converts, and generates ad variations that improve every cycle. One ad hit 12.43x ROAS.

Time2–4 weeks to build
ToolsMeta Ads, APIs, Claude
Cost$200–500/month

How This Works

Most teams run ads the old way: build creative, hope it works, maybe test 3 variations. The result? 77 ads with a 2–3x average ROAS. Hormozi's system is different. He pulls his best organic content (the stuff people already love), runs it directly as paid ads, then feeds the performance data back into an AI loop that learns what converts. The system then generates new ad variations calibrated to what actually works in your market.

One ad hit 12.43x ROAS. But here's the honest part: half the content-as-ads flopped at first. That's where the AI feedback loop comes in. By measuring organic performance, analyzing ad performance through Hyros (better attribution than Facebook's native pixel), and having Claude find the patterns between winners and losers, you build a scoring rubric that gets smarter every cycle. Instead of 77 blind ads, you start with 8. Then you expand based on what's working.

This playbook walks you through building that system from scratch—from connecting your data sources, to teaching an AI what converts, to running the feedback loop that compounds your ROAS over time.

Organic Winners × AI Pattern Engine × Feedback Loop = Compounding ROAS
Start 12-20% ROAS, scale to 3-8x within 3-6 months
Organic Content Gemini API Claude: Patterns Ad Variations Meta Ads Hyros Data Feedback Loop
Who this is for: Marketing teams or founders who want to move beyond guesswork. You need access to organic data (Instagram/Facebook metrics), willingness to spend $1–2k/month testing ads, and comfort with connecting APIs. Time investment: 40–60 hours over 2–4 weeks to get the system running, then 5–10 hours/week to maintain it.
1

Connect Your Data Sources

Build the raw data pipeline: organic metrics, ad metrics, and attribution into one place

This phase is the foundation. You need three streams of data flowing reliably:

  1. Organic metrics from Instagram/Facebook: Views, saves, comments, follows per post (via Meta Graph API)
  2. Ad performance from Meta Ads Manager: Impressions, clicks, conversions, spend (via Meta Ads API)
  3. Attribution via Hyros or Triple Whale: Pixel-level accuracy—who converted and at what cost (more reliable than Facebook's native attribution)

Example: Acme Inc., a 12-person accounting firm, posted a tax strategy video on Instagram that got 1,200 views, 180 saves, and 45 follows. They then ran the same video as a paid ad and tracked its ROAS through Hyros. By the end of Phase 1, they had a spreadsheet linking organic metrics to ad performance.

Action Item

Step 1: Meta Graph API Access

  • Go to developers.facebook.com, create an app (type: Business)
  • Add Instagram Graph API and Facebook Marketing API products
  • Generate a long-lived token (expires in ~60 days; automate refresh later)
  • Test the endpoint: GET /ig_user?fields=media{like_count,comments_count}
  • Document your Instagram Business Account ID and page ID (you'll need these in Phase 2)
Action Item

Step 2: Meta Ads API Setup

  • In Ads Manager, go to Settings → Accounts → Your Ad Account ID (note it down)
  • Use the same app from Step 1; verify it has access to your ad account
  • Test the endpoint: GET /act_ACCOUNTID/campaigns?fields=name,status,spend
  • Create a simple script (Node.js, Python, or Google Sheets + Apps Script) to pull daily ad metrics into a spreadsheet or database
Action Item

Step 3: Hyros / Triple Whale Setup

  • Sign up for Hyros (hyros.io) or Triple Whale (triplewhale.com) — both track conversions with better accuracy than Facebook's pixel
  • Install the Hyros pixel on your website or CRM
  • Create a feed that connects Hyros data to your spreadsheet (API or Zapier)
  • Validate: run a test ad, confirm you see the conversion in Hyros within 1–2 hours
Timeline concern: Meta API approval can take 1–2 weeks. Start this early. If you're not approved yet, use Zapier or Make to auto-export your Ads Manager data to Google Sheets as a workaround (less ideal, but faster).

Example Data Flow for Acme Inc.

Date Post ID Organic Views Saves Ad Spend Ad Conversions ROAS
2026-03-01 tax_video_001 1,200 180 $85 3 3.2x
2026-03-02 tax_video_001 1,200 180 $120 5 4.8x
2026-03-03 payroll_tips_002 450 22 $75 0 0x

Why this table matters: You're now seeing which organic posts performed well AND which ads converted. Posts with high saves but zero ad conversions are clues (maybe the hook is viral but doesn't convert). Posts that flopped organically might fail as ads too.

What if I don't have a website or e-commerce store?

Hyros and Triple Whale are strongest with e-commerce. If you're B2B (like Acme Inc.), track conversions as: demo requests, email signups, calendar bookings, or phone calls. You can still feed this data into Claude by logging it manually into your spreadsheet or connecting your CRM (HubSpot, Pipedrive, etc.) via Zapier.

2

Build the Content Intelligence Layer

Teach AI to understand what your content actually contains, then match it to performance

Raw metrics (views, saves) are signals, but they don't tell you why a post worked. You need to understand the content itself: the hook, the structure, on-screen text, social proof, format (skit vs talking head), pacing, etc. That's where Gemini API comes in. It's not just transcription—it actually annotates videos with hooks, captions, emotional triggers, and format details.

Acme Inc. posted a video titled "3 Tax Mistakes That Cost My Clients $50k Each." The video opened with a stat ("Did you know..."), showed client case studies, and ended with a CTA. Regular transcription would miss the hook structure. Gemini annotates all of this, so Claude later can say: "Posts with stats-first hooks convert 3x better than story-first hooks."

Action Item

Step 1: Download Your Organic Video Content

  • Export all videos posted in the last 60–90 days from Instagram/Facebook (use download tools like instaloader or manually)
  • Organize in a folder: /organic_videos/
  • Create a CSV with: video filename, post caption, organic views, saves, follows (pull from your Phase 1 data)
Action Item

Step 2: Set Up Gemini API for Video Analysis

  • Sign up for Google Cloud, enable Gemini API (formerly Vertex AI Video)
  • Use Gemini's video understanding model to analyze each video
  • Prompt: "Analyze this video. Provide: (1) the hook in the first 3 seconds, (2) on-screen text or captions, (3) format (skit, talking head, case study, etc.), (4) social proof used (testimonials, stats, data), (5) the CTA at the end, (6) overall emotional tone."
  • Save the annotation output as JSON for each video
Action Item

Step 3: Analyze Ad Creatives the Same Way

  • Export your winning ad videos from Ads Manager (the ones with high ROAS)
  • Run them through Gemini with the same prompt
  • Compare: organic winners vs ad winners. Are they the same type of content? Same hooks?
Action Item

Step 4: Build a Content Database

  • Create a master database (Google Sheets or Airtable) with columns: Video ID, Original Caption, Hook, Format, Social Proof, CTA, Organic Views, Saves, Ad ROAS
  • Populate with all annotated videos from Steps 2 and 3
  • This is your training data for Phase 3

Example Annotations from Acme Inc.

Video Hook Type Format Social Proof Organic Saves Ad ROAS
tax_mistakes Stat ("3 mistakes cost...")) Case study Real client numbers 180 4.8x
payroll_tips Question ("Are you...?") Talking head Personal authority 22 0.8x
tax_deadline Fear/urgency ("Only 14 days...") Skit (employee x boss) Relatability 450 6.2x
Pattern spotted: Stat-based and urgency-based hooks convert 2–3x better than questions. Format: case studies and skits outperform talking heads. This insight—from data—now guides ad generation.
Can I use Claude's vision API instead of Gemini?

Yes. Claude 3.5 Sonnet can analyze video frames as well. Use Claude Code to extract key frames from each video, then prompt Claude: "Analyze these frames from a video. Provide annotations for hook, format, social proof, etc." The advantage of Gemini Video is that it processes the full video in sequence (not just frames), so it understands pacing and timing better. But if you're already in the Claude ecosystem, it's faster to stay there.

3

Train the Pattern Engine

Feed your data to Claude and let it find what actually converts in your market

This is where the magic happens. You're not guessing. You're not following a guru's template. Claude analyzes your actual data and tells you what works for your audience. The output is a scoring rubric—a framework for evaluating ad ideas before you film or spend money.

For Acme Inc., the insight was: stat-based hooks (tax law changes, cost impacts) convert 3x better than motivational hooks. Case studies beat talking-head advice. Urgency (tax deadlines) triggers more response than general education. This is their rubric, based on their data.

Action Item

Step 1: Prepare Your Data Dump for Claude

  • Export your content database (from Phase 2) as JSON or CSV
  • Also export: ad performance metrics, Hyros attribution data, conversion types (demo vs email vs call)
  • Add context: "We're a B2B accounting firm targeting small business owners aged 35–55. Our conversion is a 15-min consultation call. AVL is $2k."
Action Item

Step 2: Brief Claude with the Analysis Task

Use Claude Code or a simple prompt like:

"I'm attaching data from 60 days of Instagram ads. For each high-ROAS ad (above 3x), tell me: (1) what was the hook structure? (2) what format was it? (3) what social proof was used? (4) what was the body copy tone? Then identify patterns. Tell me the top 3 hook types, top 2 formats, and the social proof tactics that correlate with ROAS above 4x. Finally, create a scoring rubric: if I give you a new ad script, how would you score it 1–10 based on these patterns?"

  • Claude will analyze your data and output a detailed report
  • Save this report; it becomes your scoring framework
Action Item

Step 3: Create a Scoring Rubric Document

  • From Claude's analysis, distill a one-page scoring rubric: hook types (with scores), formats (with scores), social proof (with scores), tone, CTA patterns
  • Example row: "Stat-based hook (specific numbers, cost impact): +3 points. General question hook: +1 point."
  • Example row: "Case study format: +3 points. Talking head: +1 point. Skit with relatability: +3 points."
  • Store in a shared doc or Claude Code skill so the whole team can reference it
Action Item

Step 4: Ask Claude to Build a Skill

  • Provide your rubric + examples and ask Claude to create a reusable skill: "Ad Script Scorer" that ingests a new ad script and returns a 1–10 score + improvement suggestions
  • This skill becomes your template for Phase 4

Example Scoring Rubric Output (Acme Inc.)

Hook Types

Stat-based: +3 pts
Urgency: +3 pts
Question: +1 pt
Story: +1 pt

Format

Case study: +3 pts
Skit (relatable): +3 pts
Talking head: +1 pt

Social Proof

Real numbers: +3 pts
Testimonial: +2 pts
Authority: +1 pt

Example application: New script idea: "Are you leaving money on the table? Let me show you 3 tax deductions you're missing." Hook is a question (-1) but promises savings (stat-adjacent, +2). Format is talking head (+1). No social proof (0). Score: 2/10. Recommendation: reframe as "3 tax deductions costing my clients an average of $18k/year" (stat hook, +3). Format: case study with real numbers (+3). Total: 6/10. Better.

Calibration check: Run your rubric against your top 5 performing ads. If they all score 8+, great. If they score low, your rubric needs adjustment. This is normal—refine it in Phase 5.
4

Generate and Test Ad Variations

Use Claude to generate high-scoring ad scripts, test them against synthetic audiences, then refine before filming

Now you generate. The default framework is 10 hooks × 3 bodies = 30 variations per batch. But you don't film 30 videos. You test them first against synthetic personas—AI-trained avatars of your ideal customer. This cuts waste and surfaces which scripts will actually convert before you spend money on production.

Acme Inc. generated 30 ad scripts in one batch. They tested them against 3 synthetic personas: (1) the skeptical CFO, (2) the growth-focused founder, (3) the compliance-worried business owner. The CFO persona rejected 12 scripts for being too salesy. The founder loved stat-heavy scripts. The compliance owner wanted guarantees. This feedback revealed that they needed 2 different ad tracks—one for ROI seekers, one for risk-averse businesses.

Action Item

Step 1: Brief Claude for Script Generation

  • Provide: your scoring rubric, top-performing examples, your ICP description, and the product/service you're promoting
  • Prompt: "Generate 10 distinct hooks optimized for my market (use stat-based and urgency, avoid questions). For each hook, create 3 body variations: one ROI-focused, one risk-focused, one urgency-focused. Return as a spreadsheet: Hook | Body 1 | Body 2 | Body 3."
  • Claude outputs 30 ad scripts, each scored against your rubric (already built into the prompt)
Action Item

Step 2: Create Synthetic Personas

  • Based on your customer data (CRM, interviews, analytics), define 3 core personas: name, role, pain points, objections, buying triggers, deal-breakers
  • Ask Claude to become each persona: "You're Jane, a 45-year-old CFO at a $5M company. You're skeptical of consultants. You care about ROI and compliance. What would make you book a call?" Repeat for personas 2 and 3
  • Claude embodies these personas and provides feedback on scripts
Action Item

Step 3: Test Scripts Against Personas

  • For each of your 30 scripts, ask Claude (as each persona): "Would this ad make you want to book a call? Why or why not? What's your biggest objection?"
  • Collect feedback in a spreadsheet: Script ID | Persona 1 Response | Persona 2 Response | Persona 3 Response | Red Flags
  • Scripts that get positive response from 2/3 personas move to production. Scripts rejected by all 3 are archived.
Action Item

Step 4: Refine Based on Feedback

  • For scripts that got mixed feedback, ask Claude to iterate: "This persona thought it was too salesy. Rewrite it to focus on education, not pitch."
  • Re-test the refined versions
  • Keep iterating until you have 8–12 finalists (high scores across personas)
Action Item

Step 5: Plan Production

  • For your 8–12 finalists, create a shooting schedule. Batch record similar formats together (all case studies in one day, all skits in another)
  • Brief your production team on the formats and hooks from the rubric
  • Track: which script (ID), which video produced, production cost, when it ships as organic + paid

Generation Example (First 5 of 30 Scripts for Acme Inc.)

1

Stat Hook (ROI Focus)

Hook: "My clients left $47k on the table last year. Here are the 3 deductions they missed."

Body: Case study with real numbers. CTA: "See your deduction checklist."

2

Stat Hook (Risk Focus)

Hook: "The IRS is auditing 23% more businesses this year. Are you ready?"

Body: Compliance framework. CTA: "Get audit-ready."

3

Urgency Hook (ROI Focus)

Hook: "6 weeks left to lock in Q1 tax savings. Here's how."

Body: Time-sensitive strategy. CTA: "Claim your savings."

4

Stat Hook (Skit Format)

Hook: "Most small business owners pay 2-3x more in taxes than needed."

Body: Skit: business owner vs CFO discovering deductions. CTA: "Book a strategy call."

Synthetic Persona Feedback Summary

Script Jane (CFO) Alex (Founder) Morgan (Compliance) Status
1. ROI Stat Like it ✓ Love it ✓ Too sales-y ✗ Refine
2. Risk Stat Love it ✓ Not interested ✗ Perfect ✓ Produce
3. Urgency Not sure ✗ Love it ✓ OK ✓ Produce
4. Skit Love it ✓ Love it ✓ OK ✓ Produce
Key insight from testing: You don't need to pick one winner. Acme Inc. will produce all 4 finalists and run different scripts to different audience segments (CFO-focused ads to business managers, ROI-focused ads to growth-minded founders, risk-focused ads to compliance-conscious owners). The AI testing revealed that different people need different hooks.
5

Close the Feedback Loop

Run ads, measure results, refine the system—automatically improve every cycle

The loop is what compounds. You release ads, collect data, feed it back to Claude, refine the rubric, generate better scripts next month. By month 3, your ROAS is 2–3x higher than month 1, not because you're spending more, but because every cycle is smarter.

Acme Inc. started with 8 ads. After 2 weeks of Hyros data, they identified 2 winners (4.8x and 6.2x ROAS) and 2 losers (0.8x). Claude analyzed why: the losers had weak hooks and no urgency. The winners had both. They killed the losers, doubled down on winners, and generated 20 new variations on the same winning patterns. By week 4, they had 12 ads with 4+ ROAS. By month 2, their average had climbed to 3.2x. By month 3, they had a few outliers hitting 8–10x.

Action Item

Step 1: Launch Your Initial 8–12 Ads

  • Upload finalized scripts as both organic content (on Instagram) and paid ads (in Ads Manager)
  • Allocate $300–500/week of ad spend (low initial budget to test, not optimize spend yet)
  • Run for 2 weeks to collect meaningful data (Hyros needs at least 15–20 conversions per ad to be reliable)
Action Item

Step 2: Collect and Analyze Results

  • After 2 weeks, export: organic metrics (views, saves, follows) + ad metrics (spend, clicks, conversions) + Hyros attribution (true conversion cost, ROAS)
  • Feed this data to Claude: "Here's how my 8 ads performed. Tell me: which 3 are winners (above 3x ROAS)? Which 3 are losers? What patterns do you see?"
  • Claude updates the scoring rubric with real-world validation
Action Item

Step 3: Refine and Regenerate

  • Take the 3 winners: what do they have in common? (hook type, format, tone, social proof)
  • Ask Claude: "Generate 20 new variations that double down on the winning pattern, but with fresh angles and hooks."
  • Test these 20 against personas again (quick validation, 2–3 days)
  • Produce the top 8 and launch in week 3
Action Item

Step 4: Set Up Automated Monthly Cycles

  • Create a monthly calendar: Week 1 (analyze last month's data + refine rubric), Week 2–3 (generate + test new scripts), Week 4 (produce + launch + optimize spend)
  • Assign roles: Data analyst pulls Hyros + Ads Manager data. Claude Code skill scores new scripts. Creative team produces videos. Ads manager optimizes spend
  • Goal by month 3: 20–30 ads in active rotation, with 3–4 hitting 5x+ ROAS
Action Item

Step 5 (Optional): Competitive Angle Discovery

  • As you mature, analyze competitor ads using Gemini (annotate their hooks, formats, tone)
  • Ask Claude: "Here's what my competitors are running. How can we differentiate? What angles are they missing?"
  • Feed this insight back into script generation (e.g., "My competitor uses fear; I'll use hope + proof.")

Results Timeline (Acme Inc.)

Period Active Ads Avg ROAS Best Ad ROAS Weekly Spend
Week 1–2 (Launch) 8 1.8x 4.8x $400
Week 3–4 (1st Refresh) 12 2.4x 6.2x $600
Month 2 (Week 5–8) 18 3.2x 8.1x $900
Month 3 (Week 9–12) 24 3.8x 10.2x $1,200
The compounding effect: Notice the pattern. By month 3, Acme Inc. is running 3x as many ads, with 2x the average ROAS, and spending 3x more—but their cost per lead has dropped by 50%. That's the loop working.

Monthly Checklist Template

Every month, repeat this cycle:

Week 1

Analyze

Pull Hyros + Ads Manager data from last month. Identify winners (3+ ROAS) and losers. Ask Claude to find patterns.

Week 2

Generate

Claude creates 20–30 new scripts based on winning patterns. Refine rubric if patterns have shifted.

Week 3

Test & Produce

Test scripts against personas. Produce top 8–12 videos (batch shoot similar formats).

Week 4

Launch & Optimize

Upload new ads as organic + paid. Optimize spend based on early performance. Prepare to kill underperformers by day 7.

What if some months the data is inconclusive?

This happens, especially early on. If you don't have 15+ conversions per ad, data is noisy. Solution: (1) double your spend, or (2) extend the cycle to 3 weeks to collect more data. Claude will flag this: "You need more data to draw conclusions." Don't panic. Run with the best-performing creatives from the previous month and add 2–3 experimental scripts to test new angles.

Should I pause bad ads immediately or let them run longer?

If an ad hits 7 days with 0 conversions and positive spend, pause it. No need to burn money. If an ad has 1–2 conversions and positive ROAS, let it run to day 14 to confirm. By day 7, you'll have enough signal for 90% of ads. Acme Inc. pauses by day 3 if it's clearly broken (100+ impressions, 0 clicks).

  • Initial 8–12 ads launched (organic + paid); spending $300–500/week
  • Hyros data collected for 2 weeks; winners and losers identified
  • Winning patterns analyzed by Claude; scoring rubric updated with real-world data
  • 20–30 new script variations generated; tested against personas and approved for production
  • Monthly cycle established and team trained (Week 1: Analyze, Week 2: Generate, Week 3: Test & Produce, Week 4: Launch & Optimize)

Next Steps & Scaling

You've built a self-improving ad system. The rubric gets smarter every month. Your ROAS compounds. Here's what happens next:

Months 4–6: Scaling

Months 7+: Optimization

Cost warning: Your Gemini API bill will grow as you annotate more videos. Budget $200–400/month for API costs once you're at 50+ active ads being analyzed monthly. Claude Code calls are minimal ($5–20/month). Meta ads, of course, depend on your spend.
Success metrics to track: (1) Average ROAS across portfolio (target: 3x+ by month 3). (2) Number of ads hitting 5x+ ROAS (target: 3–5 by month 3). (3) Cost per lead (should drop 40–60% by month 3). (4) Volume of qualified leads (should increase 100%+). (5) Rubric accuracy (score vs actual ROAS—should be 85%+ correlated by month 2).

Final note: This system works because it's honest. You're not guessing. You're not copying someone else's template. You're learning from your actual audience, your actual data, your actual market. That's why it compounds.