The Creative Volume Engine
100 Ads/Day Per Offer
Two people, custom AI tooling, and a three-campaign signal hunt beat 100-person creative teams. This is the system Jordan used to hit $240,000 in sales on a single day — fully mapped onto the Nerve Pain Pink Salt playbook so you can launch 100 static image ads tomorrow morning.
The 3-Campaign Signal Hunt
Every new offer launches with three parallel campaigns of ~20 ads each. You're not trying to pick a winner with taste — you're hunting for signal that the market gives you. Fire all three, watch what survives, then branch only on proven winners.
| # | Campaign | Purpose | Format |
|---|---|---|---|
| A | Competitor Remix | Leverage proven ads with unique spins | Feed 10–20 spy-tool winners into AI, generate "inspired" variants |
| B | Red Square Hook Test | Isolate message without image noise | Pure red background + yellow text. Just the hook. |
| C | AI Fragment Pipeline | Unique creative from VSSL fragments | Nano Banana 2 / Imagen / GPT Image / DALL-E variants |
Branching Tree — Post-Winner
Once 2–3 winners emerge from the signal hunt, stop ideating fresh — start branching. Each branch isolates one variable at a time, so you always know why something worked.
Split-test above-fold primary text
10 variants on the top 3 ads. First-three-sentences only. Find the best hook in copy form.
Split-test below-fold primary text
10 variants on the surviving ad + hook combos. The follow-up.
Skip headline testing
Jordan's data says it doesn't matter. Don't waste the slots.
Split-test landing page via tracker rotation
Never separate campaigns — use Red Track to randomly distribute clicks across bridge / listical / quiz / advertorial / granny blog. The winning page eats 70–90% of spend.
The 5 Landing Page Archetypes
Headline + image + button. Maybe a sentence of text. The shortest path to the VSSL click.
Number the remedies. #1: "Put your feet in salt water." #2: "Drink more tea." …#5: "Try this pink salt trick for nerve relief" → VSSL. Cheap clicks, qualified traffic.
Three emotional stages: Problem ("What's your worst symptom?") → Solution ("How would your life change if this went away?") → Result ("Based on your answers, watch this…"). Builds a buying state before the VSSL.
"MIT researchers just figured out the real root cause of neuropathy. It may surprise you…" Long-form article about the mechanism. Low CTR, high qualified click quality.
Raw emotional personal story. Looks like a grandma's blog: "I was in a wheelchair. Now I can walk." Trusted because it's long and ugly. Lower click-through but high trust.
Multi-Model AI Pipeline
Each AI model is a different creative brain. Diversity of prompt generators × diversity of image renderers = more chances to hit signal.
Prompt Generation
- Claude — aggressive direct-response angles
- Gemini — surprisingly aggressive post-update; different "brain"
- Optional cross-critique — Claude analyzes Gemini's prompts, and vice versa, before render
Image Rendering
- Nano Banana 2 (kie.ai) — primary for nerve pain
- GPT Image — fixes text inside images
- Imagen (Google) — diversified style
- DALL-E 3 — fallback aesthetic
VSSL Fragmentation — The Whole Game
Never feed the full VSSL to the prompt generator. AI hallucinates when you give it too much information. Jordan's #1 tactical tip: compress the VSSL into 5–8 fragments and feed only fragments through the rest of the pipeline.
The 8 Fragments
- Mechanism — the hidden cause / pseudo-science
- Target demographic — age, gender, lifestyle, health status
- Nightmare scenario — worst case they fear
- Ideal state — post-solution life
- Prior failed solutions — what they've already tried
- Emotional triggers — rage, shame, hope
- Authority anchors — doctors, news, studies
- Product positioning — price, format, ritual
Unique Angles Come From Outside the VSSL
Jordan's realization: the ad doesn't have to be congruent with the VSSL. The ad's job is to be so captivating they can't click away. The VSSL's job is to close. Two different jobs.
Feedback Loop — Signal Drilling
Build (or use) a tool that reads yesterday's performance and tells AI where to drill deeper today.
Pull Meta ad performance via Marketing API
ROAS, CPI, CPM, and critically — initiate checkouts per ad.
Classify above/below KPI per campaign
Different KPI per campaign type. Recurring apps target 6× LTV break-even. ClickBank offers target 1.5× ROAS. Bake this in per-campaign.
Feed winners back into AI
"These 10 worked. These 10 didn't. Analyze why. Generate 20 more in the winning direction." One-click in the tool.
Track initiate checkouts as proxy KPI
4× cheaper data signal than purchases. Strong correlation with eventual winners. You don't need a $97 sale to know an ad is hitting — you need 4× as many initiate checkouts.
Meta Launch Automation
Goal: 100 ads launched in 5 minutes, zero human labor.
- Create a Meta Developer App, get the API approved (easy)
- Connect to profile(s) — rotate if locked
- Pipeline: AI generates image → auto-upload → create adset → launch
- Always bid-cap. Not cost cap. Not ABO. Not CBO. Bid cap self-regulates spend per creative
- Base budget: $2,000/campaign/day. Add via budget scheduling on peak hours
- Optimize for Purchases only. Never button clicks
- Start new ads in max-conversion mode, split-test bids, then freeze winners as bid caps
Pre-Generation Compliance
Don't check compliance after rendering. Bake it into the prompt generator:
- No close-ups of skin / feet / hands (raises CPMs)
- No violence, nudity, guns, drugs, pills
- No explicit disease names in the image
- No explicit symptom visualization at top-of-funnel
The Agency Account Unlock (6–12 month play)
- Partner status grants exemption tags on all ad accounts = no compliance blocks, stable accounts, bulk launches
- Requires ~$3M/yr spend commitment
- The social engineering trick: Meta marketing pros get paid per-minute on the phone with you. Keep a long-winded team member on weekly calls with them. Compliment their dumb advice ("I never thought of that!"). They put you on higher-tier reps. Slowly ask for exemption tags. Eventually they give you a spend target and formally make you a Partner.
Cloaking & Defense
Once you're scaling, you become a target. Rippers spy your ads and steal funnels. Defend.
- Redirect chain — clicks from Facebook Ad Library land on a decoy ClickBank page (not your real funnel). Real traffic from real ads goes to your actual offer via URL parameter detection.
- Trademark your own VSSL (German trademark service, fast + cheap). You can then copyright-strike anyone ripping it.
- Volume as camouflage — when you run 1,000 live ads, rippers can't pick which to steal.
Own-VSSL Ladder — End State
The #1 affiliates don't run vendor VSSLs anymore. They build their own. This is the ladder:
Start with vendor VSSL
Baseline. Prove the offer converts for you.
Beat the opening
Take your best-performing image ad, reshoot it as 15-second video, use as VSSL opening. "Crushes always."
Beat the body
Rewrite the mechanism reveal with your unique angle.
Beat the close
Stronger urgency, stronger CTA, stronger scarcity.
Host + trademark + cloak
Your own domain, German trademark, redirect cloak. Now no one can copy you.
Daily Research Routine
3 hours/day minimum on spy work — ideally before bed so your subconscious processes it overnight.
| Source | What you're looking for |
|---|---|
| Spy Hero / Ad Spy | New angles, new formats, new hooks in your niche |
| Residential proxy → scroll US feed | What real consumers actually see. Best raw signal source. |
| YouTube "product review" channels | High view count = offer is scaling = joinable wave |
| "Scam exposé" YouTube channels | Same signal — offer is hot enough to attract scrutiny |
Nerve Pain — The Daily Numbers
Apply the full engine to the existing nerve-pain-ad-playbook. One offer. Master it. Then add more.
Morning Routine (30 min)
Pull performance
Via Meta Marketing API or Red Track. Export last 24h of ad-level data.
Classify into 3 buckets
Scale (≥1.5 ROAS sustained). Promote (low cost per initiate checkout). Kill (≤0.5 ROAS).
Feed winners to Claude
"Here are 10 winning nerve pain ads. Analyze what they share. Generate 20 angles for new variations that preserve the winning elements."
The Pipeline — 100 Images Unattended
Runs 60–90 min with zero human labor once the fragments file is fresh.
Campaign A — Competitor Remix (20 images)
Campaign B — Red Square Hook Test (40 images)
- Pure red background
#CC1F1F+ yellow#FFD84Dtestimonial text - Skip image rendering entirely — Pillow overlay on template PNG (saves $3+/day)
- 40 hooks via Claude + Gemini, using all 8 entry points from
nerve-pain-ad-playbook: price, lawsuit, personal story, news peg, symptom mirror, time urgency, neighbor, confession
Campaign C — AI Fragment Pipeline (40 images)
| Count | Format | Playbook Section |
|---|---|---|
| 15 | Product Hero (warm mug, pink salt in water) | Format 1 |
| 15 | Split Before/After (pain → remedy) | Format 2 |
| 10 | Lifestyle/Contextual (bedside, kitchen, barefoot) | Format 3 |
Each image generated from fragments via dual-model prompts (Claude + Gemini), then rendered by Nano Banana 2 per the existing kie.ai prompt rules.
Live fragments.json for Nerve Pain
Keep this as a living file. Update it every evening when a new angle, authority anchor, or objection surfaces.
{
"mechanism": "Neurotoxic acid accumulates after 60, dissolves myelin sheath like battery fluid on bare wire. Pink Himalayan salt has 84 trace minerals that bond with this acid and neutralize it.",
"target_demo": "US/CA adults 55-75, diabetic or pre-diabetic, on Gabapentin or Lyrica, waking up at 3AM with burning feet or electric shocks",
"nightmare": "Losing the ability to walk, needing a cane permanently, falling and breaking a hip, ending up in a nursing home, becoming a burden on family",
"ideal_state": "Sleeping through the night, walking to the mailbox pain-free, throwing prescription bottles in the trash, playing with grandkids again",
"prior_failures": "Gabapentin (made it worse), Lyrica (side effects), neurologists ($14K spent), physical therapy (temporary), creams and ointments",
"emotional_triggers": "Rage at doctors who dismissed them, shame at being on pills, hope from finally finding something simple, fear of losing independence",
"authority_anchors": "Dr. Oz, 60 Minutes, CNN, Harvard, MIT researchers, Dr. Lee (world-renowned neurologist), private neuropathy forums",
"positioning": "$2.89 at Walmart, weighs less than a sugar packet, 7-second morning ritual, biblical pink salt trick, pink water before bed"
}
Python Pipeline Skeleton
The entire pipeline in one file. Cron this at 6am daily.
"""
creative_volume_engine.py — 100 nerve pain image ads/day
Runs unattended. Fires all 3 campaigns in parallel.
"""
import json, asyncio, httpx, anthropic, google.generativeai as genai
from pathlib import Path
from datetime import date
from PIL import Image, ImageDraw, ImageFont
FRAGMENTS = json.loads(Path("fragments.json").read_text())
KIE_KEY = "2a553737acbc34b4403d59f5a250bbfc"
TODAY = date.today().isoformat()
OUT = Path(f"images/{TODAY}"); OUT.mkdir(parents=True, exist_ok=True)
# ---------- Step 1: generate prompts (dual-model diversity) ----------
async def gen_prompts_claude(campaign, n):
client = anthropic.Anthropic()
msg = client.messages.create(
model="claude-opus-4-6",
max_tokens=4000,
system=f"You are a direct-response ad creative director. Generate {n} image-ad prompts for kie.ai Nano Banana 2, vertical 9:16, photorealistic. Source material = fragments below. Obey compliance (no skin closeups, no pills, no disease names in image).",
messages=[{"role":"user","content":f"FRAGMENTS: {FRAGMENTS}\n\nCAMPAIGN: {campaign}\n\nReturn JSON array of {n} prompts."}]
)
return json.loads(msg.content[0].text)
async def gen_prompts_gemini(campaign, n):
genai.configure(api_key="...")
model = genai.GenerativeModel("gemini-2.0-flash-exp")
r = model.generate_content(f"Generate {n} nerve-pain ad image prompts. FRAGMENTS: {FRAGMENTS}. CAMPAIGN: {campaign}. Return JSON array.")
return json.loads(r.text)
# ---------- Step 2: render images ----------
async def kie_render(prompt, client):
r = await client.post("https://api.kie.ai/api/v1/jobs/createTask",
headers={"Authorization": f"Bearer {KIE_KEY}"},
json={"model":"nano-banana-2","prompt":prompt,"aspect_ratio":"9:16"})
return r.json()["data"]["taskId"]
async def kie_poll(task_id, client):
while True:
r = await client.get(f"https://api.kie.ai/api/v1/jobs/recordInfo?taskId={task_id}",
headers={"Authorization": f"Bearer {KIE_KEY}"})
d = r.json()["data"]
if d["state"] == "success": return d["resultJson"]["imageUrl"]
if d["state"] == "fail": return None
await asyncio.sleep(15)
# ---------- Step 3: red-square overlay (no API cost) ----------
def red_square(hook_text, filename):
img = Image.new("RGB", (1080, 1920), "#CC1F1F")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("Arial Bold.ttf", 82)
# simple center-wrap text in yellow
draw.text((80, 600), hook_text, fill="#FFD84D", font=font)
img.save(OUT / filename)
# ---------- Step 4: orchestrate ----------
async def main():
# Campaign A: 20 remix prompts (from spy tool manual upload)
remix_prompts = json.loads(Path("spy_winners_today.json").read_text())
# Campaign B: 40 hook lines (no image gen)
hook_prompts = await gen_prompts_claude("red_square_hooks", 40)
# Campaign C: 40 fragment-pipeline prompts
claude_C = await gen_prompts_claude("product_hero_split_lifestyle", 20)
gemini_C = await gen_prompts_gemini("product_hero_split_lifestyle", 20)
async with httpx.AsyncClient(timeout=120) as c:
# Fire all Nano Banana tasks in parallel
render_jobs = remix_prompts + claude_C + gemini_C # 60 images
task_ids = await asyncio.gather(*(kie_render(p, c) for p in render_jobs))
urls = await asyncio.gather(*(kie_poll(t, c) for t in task_ids))
# Download all
for i, url in enumerate(urls):
if url:
img = (await c.get(url)).content
(OUT / f"ai_{i:03d}.png").write_bytes(img)
# Generate red-square overlays
for i, hook in enumerate(hook_prompts):
red_square(hook, f"hook_{i:03d}.png")
print(f"Done: {len(list(OUT.glob('*.png')))} images ready at {OUT}")
# Next step: meta_launcher.py uploads all 100 to 3 bid-cap campaigns.
if __name__ == "__main__":
asyncio.run(main())
httpx or curl to download. This skeleton uses httpx throughout.
Evening Review (45 min)
Check 24h performance
On previous day's drop. Note which hook entry point won (price? rage? neighbor?)
Update fragments.json
New mechanism emerged? "Microplastics" → "nano-glass shards." New authority? New objection? Evolve the fragments.
Spy 60 min
US residential proxy, scroll as a 60+ demographic. Note any new angles in next-day-experiments.md.
Review affiliate review YouTube
Search "pink salt nerve pain review" — count videos, note claims, flag angles you haven't tried.
Scale Gates
Don't skip stages. Each gate unlocks the next layer of complexity.
| Stage | Trigger | Action |
|---|---|---|
| Day 1–7 | Running | Pure 3-campaign signal hunt. No rush to scale. |
| Winners found | 2–3 ads at ≥1.5 ROAS for 3 days | Clone into dedicated scale campaign, bid cap 30–50% above current CPA |
| Landing page split | 5+ days stable winners | Introduce listical + granny-blog alternates via tracker rotation |
| Own VSSL | ≥$500/day profit on offer | Write own opening using winning hook as video, test vs vendor VSSL |
| Meta Partner | ≥$50K/mo spend | Begin Meta rep relationship-building |
Kill Switches
- Ad account locked → rotate to next profile (keep 5+ warmed profiles idle)
- CPM spiking 30%+ → Meta dislikes creative. Reduce close-ups, add lifestyle context, soften palette
- Offer fatigue → ROAS declining 3 consecutive days across new ads = rotate to next vendor offer
- Cloaking detection → swap redirect chain destination URL immediately
- Vendor VSSL dies → don't wait. Ship your own opening the same day.
Watch-Outs
Launch Checklist — Week 1
Check off as you go. State is saved locally.