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:


              

🎨 Art-Directed Ad NEW

Concept → the AI picks the best format (A–F) for it and designs a completely unique image with the headline rendered inside. No fixed template — every concept gets its own treatment. Renders on Gemini (text-capable).

Format chosen:
Emotional core:
Visual:
Headline:
image prompt used

Choosing format · designing · rendering the headline into the image…

🖼️ Image → Ad NEW

Upload a raw photo, type the concept → AI reads the image, writes the copy, places it in the best zone, colour-grades & composites a finished ad. No designer.

Zone: · grade:

✨ 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…

🎬 Video Studio

High-converting reels — from a concept (NEW) or by mimicking a competitor reel (MIMIC). Faceless with AI voiceover, or your avatar face + cloned voice.

Branded text slides + voiceover. Instant, free (voice ~$0.10).

Real AI footage + captions + music + your voice. Costs money (see below).

Your HeyGen face + your ElevenLabs voice clone.

⚠️ Add HEYGEN_API_KEY in Connections to load your avatars.

✓ Using · ID Using your connected default avatar (ID ). Pick one above to override.
Paste an Avatar ID manually

🎵 AI music bed auto-added (ElevenLabs Music).

Estimate for a ~50s reel. New & Mimic cost the same (AI script is $0). Actuals vary with length + vendor plan.

⚠️ ffmpeg not detected — video disabled until installed.

⚠️ Add ELEVENLABS_API_KEY + ELEVENLABS_VOICE_ID in Connections for AI voiceover (or pick Silent).

✓ Using your connected ElevenLabs clone — Voice ID . This is the exact ID from Connections, not a default.

⚠️ Cinematic footage needs an image engine (GEMINI_API_KEY) — without it, it falls back to branded slides.

ℹ️ Veo 3 (GEMINI_API_KEY) off — using Ken Burns motion on AI stills. Add Gemini for true cinematic hero shots.

ℹ️ AI music needs ELEVENLABS_API_KEY — reel ships without a music bed until added.

⚠️ Avatar needs HeyGen (face) + ElevenLabs (voice): HEYGEN_API_KEY + HEYGEN_AVATAR_ID + ELEVENLABS_API_KEY + ELEVENLABS_VOICE_ID. Add in Connections.

Output

Pick New or Mimic, choose Cinematic / Kinetic / Avatar, and Generate — the engine writes a 6-beat reel and renders the video.

🎞️ Saved videos

No videos yet.

🧠 Ad IQ — Ad Intelligence

Real Meta performance → tied to the exact creatives we made → what to make next. The closed loop.

🎯 Target CPA $
📆 Goal / $

Verdicts measured against your target —

📆 Month-to-date pace

MTD spend
MTD leads
Proj. EOM spend
Proj. EOM leads

Set monthly_goal_results in Optimize config to track vs goal.

💰 True economics (Stripe)

True CPA
True ROAS
Meta over-reports

🚨 Alerts

✓ No anomalies — account stable.

⚡ Actions needed

📊 Campaigns → Ad sets → Ads

📊 Ad numbers

Sort
AdSpendViews ResultsCPAROAS CTRClicks→OB OB→LPV HookHoldFreq
Account total

🩺 Funnel leak diagnosis

Is the leak the creative, the click-through, or the landing page? Impressions → clicks → page → lead.

⚠️ Landing-page-view event not tracked — using click→lead. Add the Meta pixel LPV event for full diagnosis.

No campaigns in this window.

💸 Wasted spend

Placements
Zero-result ads
Scan for placements + ads burning budget with no return.

⚖️ Budget reallocation

Winners
Freed $
Proj. +leads
Find losers to cut + winners to feed → projected extra leads.

🕐 Dayparting (best hours)

Cheapest hours
Priciest hours
See which hours convert cheapest → weight budget / schedule.

🔀 Compare periods

A: B:

🔬 Deep dive

Analyzing this campaign + its ads + creative DNA…

🔥 Creative fatigue

Fatigue forecast — queue replacements now
✓ Nothing fatiguing in the next 2 weeks.
Declining now (last 7d vs prior 7d)
✓ Nothing declining — everything's holding.

🧬 Creative DNA — what wins

👥 Demographics & placement

CPA here is relative (breakdown attribution) — use it to compare segments, not as absolute.

No data.

🧾 AFM SG Live Webinar — Report

Report: Overall:

Pick a Report period + an Overall bracket, then Build. Everything auto-fills from the leads sheet — Meta spend, UTM leads, Organic, Total, CPL & opt-in — deduped by email, dated by submission timestamp. Organic override is optional.

AFM SG Live Webinar — Report
AFM SG Live Webinar — Overall
🔍 Audit — Report period (, deduped by email)
Raw events: Duplicates removed: UTM: Organic: Total: Undated skipped:
Duplicates removed ()
Organic leads () — for review

📅 Weekly learning report

Generate a this-week-vs-last-week analysis with what won + what to make next.

📈 Benchmark & competitor teardown

This week CPA
90-day avg CPA

Compare our metrics to SG course-creator ads (from Discover) + get a teardown of what they do.

🏷️ Attribution codes

Paste a creative's code into its Meta ad name (e.g. …| AFM-C1042) — Ad IQ then auto-ties that ad's real performance back to the creative.

Recent creatives
None yet — generate creatives in the Creatives tab.
Recent reels
None yet — generate reels in the Video tab.

📊 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