AFM Creative Engine

Internal staff dashboard

A
AFM Creative Engine
Internal · Brand-locked · Conversion-optimized

What is this tab for?

How to use it
Pro tips

🎬 Pick a generator

N distinct-angle variants, scored + ranked best-first.

Output

Pick a generator, fill the brief, click Generate.

Engine is composing your brand-locked output…

Typical wait: 30-90 sec

⚡ Batch — ranked by predicted performance

🎯 Full Campaign Unit

One angle → hero banner + matched reel script + all Meta copy, each scored. ~3-4 min.

Generating banner + matched script in parallel…

🎨 Creative

🎬 Matched reel script

🎭 Mimic from reference

Upload a winning ad (competitor screenshot, or any reference) → get an original, on-brand AFM version. Tick Build complete ad for a finished, ready-to-run ad (AFM copywriting + logo + CTA composited with perfect text over a fresh FLUX visual). Untick for the text-free visual only. Pick 1 faithful + colour variants to A/B test.

Loaded:


              

✨ Create complete ad (from concept)

No reference needed. Type an angle → AI designs a text-free FLUX visual + writes AFM copy → finished, ready-to-run ad (same quality pipeline as Mimic). Add colour + copy-angle variants to A/B.

Designing visual + writing copy + compositing…

🎨 Visual concept:
Your finished ad(s) appear here.

🎨 Generate a creative

Concept + on-image copy + Meta copy + scorecard → renders a real banner.

⚠️ No image engine connected — add a Gemini key in Connections, or use Template mode (renders free without imagery).

Creative

Fill the brief and click Generate. You get the concept, copy, a scorecard, then one click to render the banner.

Composing the creative…

Render: No image engine keyed — add FLUX/Gemini in Connections. Sizes:
📋 Meta Ads Manager fields
Primary text
Headline
Description

🖼️ Saved creatives

No saved creatives yet.

🛡️ Audit & Enhance

Paste a script, creative copy, ad description, or a whole ad unit. The auditor scores it, then auto-rewrites the weakest levers with top-tier copywriting and re-scores — before → after.

Result

/100
Paste an asset and click Audit & Enhance. You'll get a before scorecard, the rewritten ship-ready asset, and the after score with a changelog.

Auditing → enhancing → re-scoring…

🎬 Kinetic Video Reel

Script → branded captioned MP4 (rendered on-server, $0). Pick an angle and go.

⚠️ ffmpeg not detected on server — kinetic video disabled until installed.

🗣️ Talking-head (HeyGen)

Add HeyGen keys in Connections to enable your Ezekiel avatar.

Output

Pick an angle and click Generate — the engine writes a 6-beat reel and renders a captioned MP4.

Writing beats → rendering slides → assembling video…

🎞️ Saved videos

No videos yet.

🎯 Conversions — ads vs organic

Matches buyers (by email/phone) to the lead sheets → reads each lead's ad UTM → how many buyers came from ads (and which adset), vs organic, + cost per buyer. Live from your Google Sheet + Meta spend.

Total buyers
🟢 From ADS
attributed to an adset
🌱 Organic
💰 Cost / ad buyer
🏆 Buyers by adset

📊 Ad Optimize stats

Live Meta spend + UTM leads (Google Sheet) + funnel rates. Set FX + targets in ⚙️ Thresholds; connect the leads sheet in Connections.

📅 Leads by day

Add a timestamp/date column to your leads sheet to see the per-day breakdown.

Connect a Google service account + Leads Sheet (Connections → Analytics & growth) to populate UTM leads / CPL / opt-in rate.

🤖 AI Media Buyer

Reads your ad performance → proposes ranked fixes → you approve, it acts. Source: .

No ad data yet. Add META_ADS_API_TOKEN + META_AD_ACCOUNT_ID in Connections to auto-sync live results (the agent then proposes pause/scale/refresh actions), or log results in the Performance tab and click Analyze.

Action queue

No recommendations yet. Click "Analyze now".

Performance snapshot

AdSpendCPAROASCTRFreqHook

🎯 Score calibration ?

Does our 0-100 predicted score actually predict winners? (Feeds back into generation.)

Reliability:
Score bandAdsAvg hookAvg CPL

💵 True CPA ? (Stripe ground-truth)

Meta over-reports conversions. Stripe is the real number — no competitor has this.

Add STRIPE_API_KEY in Connections to compute true CPA.
True CPA:
Meta-reported · inflation
Need live Meta spend (sync metrics) + Stripe sales in range to compute.

📩 Weekly brief


          

3 winners · 3 fatiguing · actions awaiting approval. Auto-sends weekly if a Digest webhook is set.

🔥 Hot market trends right now

🟢 Our creatives

Your live ads + performance from the Meta Marketing API (the reliable path — no Ad Library verification needed). Sorted by spend. Mark winners → translate to video.

No ads found on the connected ad account.

🏆 Winning Ads library

All kinds of proven ads — our category + adjacent experts/webinars + outside industries. Add winners you find, collect our own, sort by longevity (days running). One click turns any into a complete AFM ad.

Search Foreplay's 100M-ad DB. It's global — filtered by keyword + niche + language + longevity, not country. ≈1 credit per ad imported. Leave keyword blank to re-scan our default list.
Saved:
🏆 = running ≥ d
No ads in this category yet. ➕ Add a winner (paste an image URL from the Ad Library) or ⬇ Collect our ads. Auto-scan populates once the Ad Library API is verified or an ad-spy key is added.
🎭 Your AFM version — “

🔭 Discover winning Meta ads

Auto-scanned from the Meta Ad Library. Winner signal = days running (Meta doesn't expose competitor spend/CTR). Click 🔁 to rebuild any ad as your on-brand version.

Add a META_ADS_API_TOKEN in Connections (Meta app token with ads_read) to start scanning the Ad Library.
Scan couldn't read the Ad Library.

Meta-side identity gate — not a dashboard connection (nothing to add here or in the Meta App). Do it once:

  1. Open facebook.com/ads/library/api
  2. Confirm identity + location (government ID, ~1–3 business days)
  3. Use the same account whose Meta token is connected here

Once approved, the existing token works automatically — click Re-check.

🇪🇺 EU competitor search (commercial ads — EU/EEA only)

🔒 Locked until Ad Library access is verified (above).

🇸🇬 🇺🇸 Singapore / US competitors — the intended workflow

Meta's Ad Library API can't return commercial ads outside the EU (Meta rule, not a bug). The website shows them all — use this 3-step flow:

  1. Open the Meta Ad Library website ↗ → search a competitor / keyword
  2. Copy the winning ad's text (note the visual)
  3. Paste it into Intel & Swipe → Reverse-engineer an ad → get a compliant AFM rebuild
Tracking:
No ads scanned yet. Add the Meta token, then click "Scan now".

🔁 Your on-brand version

📈 Live market trends → ad angles

Polls free market-news feeds. Higher 🔥 heat = more newsjack-worthy. Click "Angles" to spin a compliant AFM hook.

No trends cached yet. Click "Fetch latest".

🪄 Reverse-engineer an ad

Paste any competitor ad → teardown + a compliant AFM rebuild.

🎯 Score any asset

Paste a script or creative copy → 0-10 scorecard + fixes.

🛰️ Meta Ad Library — live competitor ads

Pull real running ads to model. Add META_ADS_API_TOKEN in Connections to enable.

📌 Swipe board

Saved competitor ads. AI-tag, reuse as a swipe, or delete.

No saved swipes yet — save ads from the Ad Library above.

📚 Meta intelligence & swipe knowledge

Pick a knowledge file: Meta benchmarks/compliance, the design system, the swipe file, the trend-jacking playbook, or the scoring rubric.

📚 Saved Scripts

No saved scripts yet. Generate something and save it.
Title Type Angle Status Created Author

🧠 What's winning (learning loop)

As you log real results below, the engine learns which angles convert best for AFM and automatically biases future generation toward them.

No performance data yet. Log a few ads below — your proven winners then appear here and start steering every new generation.

Best angles (lowest CPL)

AngleCPLHook%n

Top winners

⚠️ Ad fatigue detected

These winners' hook-rate has dropped >% from their peak — time to refresh. Open them in Generate → ⚡ Batch for fresh angles.

📊 Performance Log

Recent entries

ScriptDatesSpend CPLHook %CTR %Regs

No performance data logged yet.

⚙️ Brand Files

View-only (admin can edit)

🔌 Connections & Setup

Add API keys to switch features on. Every key is encrypted (AES-256-GCM) — paste it once and it's hidden. Click “Where do I get this?” for step-by-step instructions per platform.

You can see what's connected, but only an admin can add/change keys.

🔎 Ad Library API access (for Discover → competitor ads)

This is a Meta-side identity gate, not a dashboard connection — there is nothing to add here, and no "Ad Library API" product to add in the Meta App. Complete it once:

  1. Open facebook.com/ads/library/api
  2. Confirm identity + location (government ID, ~1–3 business days)
  3. Use the same account whose Meta token is connected below

The moment Meta approves it, the existing token works automatically — no change here. (Note: even verified, the API returns commercial ads for EU only; SG/US = political/issue ads — use the website + Reverse-engineer for those.)

🎚️ Standards & benchmarks

Read-only — ask an admin to change these

The numbers this dashboard teaches and uses. Change one and the badges, the AI scorer, and this guide all update together — so your team isn’t locked to the defaults.

📖 Guide

🩺 Ask the Doctor

Knows the whole dashboard and your live connections. Ask “what does this error mean?”, paste an error, or ask how to do anything — it tells you the exact fix.

🩺 Diagnostics & fix

Tests every connection + the engine and tells you exactly what’s wrong and how to fix it.

🔎 Search the guide

Showing matches for “”.

⭐ The loop — recommended order

This is how a winning ad gets made and improved. Each pass makes the next one smarter.

🗂️ What each tab does

No tabs match your search.

📒 Glossary — the numbers that matter

❓ FAQ