BakeBetter Apps·Explainer Hub
← All Explainers
★ Source: Jordan, #1 ClickBank Affiliate

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.

100/day
Creatives per offer
$240K
Peak single-day revenue
2 people
Beating 100-person teams
~2 hrs
Daily human labor
You're drilling for gold. You find the area, then you keep drilling in that area to find more gold. That's how our creative process works.
01

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.

#CampaignPurposeFormat
ACompetitor RemixLeverage proven ads with unique spinsFeed 10–20 spy-tool winners into AI, generate "inspired" variants
BRed Square Hook TestIsolate message without image noisePure red background + yellow text. Just the hook.
CAI Fragment PipelineUnique creative from VSSL fragmentsNano Banana 2 / Imagen / GPT Image / DALL-E variants
💡
Insider Signal
The "red square with yellow text" campaign is the one most operators miss. A mutual friend of Jordan's laughed because Jordan became a top affiliate running these on his offer. It strips away image complexity so you test pure hook signal — the cheapest data you'll ever buy.
02

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.

1

Split-test above-fold primary text

10 variants on the top 3 ads. First-three-sentences only. Find the best hook in copy form.

2

Split-test below-fold primary text

10 variants on the surviving ad + hook combos. The follow-up.

3

Skip headline testing

Jordan's data says it doesn't matter. Don't waste the slots.

4

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

Bridge / Splash Page

Headline + image + button. Maybe a sentence of text. The shortest path to the VSSL click.

Listical ("Top 5 Remedies for Neuropathy")

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.

Quiz Funnel

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.

Scientific Advertorial

"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.

Granny Blog

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.

💡
Simplification Unlock
Jordan stopped pairing specific ads with specific advertorials. "Usually one particular advertorial performs better on almost anything." So look at landing page data in aggregate, not per-ad. Spam the winning ad into the winning landing page.
03

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
Why Multiple Models
Gemini got "very aggressive" after its last update. That's good for you (you want aggressive), bad for Facebook policy. Use that asymmetry. Different models = different risk/reward profiles across your 100-ad batch.
04

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

Memory niche + "senior home" nightmare → "My grandma was in a senior home. We finally got her back." Brand new angle no one was running.
Vision offer + authority anchor → "Hidden Bible page — Jesus healed the blind man with spit. The page was lost." Crushed. Totally disconnected from the VSSL mechanism.

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.

05

Feedback Loop — Signal Drilling

Build (or use) a tool that reads yesterday's performance and tells AI where to drill deeper today.

1

Pull Meta ad performance via Marketing API

ROAS, CPI, CPM, and critically — initiate checkouts per ad.

2

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.

3

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.

4

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.

What Not to Optimize On
Jordan ran correlation analysis on his own data across winning vs losing ads. CPC and CTR have zero predictive correlation with winners. Only CPM weakly correlates — high CPMs mean Meta dislikes the creative. Never optimize campaigns for button clicks. Never chase cheap CPC.
06

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)

How to become a Meta Marketing Partner
  • 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.
07

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.
When you run a lot of ads, people don't know what to rip. There's like a thousand ads. Which ones do you steal? You cannot steal all of them.
08

Own-VSSL Ladder — End State

The #1 affiliates don't run vendor VSSLs anymore. They build their own. This is the ladder:

1

Start with vendor VSSL

Baseline. Prove the offer converts for you.

2

Beat the opening

Take your best-performing image ad, reshoot it as 15-second video, use as VSSL opening. "Crushes always."

3

Beat the body

Rewrite the mechanism reveal with your unique angle.

4

Beat the close

Stronger urgency, stronger CTA, stronger scarcity.

5

Host + trademark + cloak

Your own domain, German trademark, redirect cloak. Now no one can copy you.

💡
Signature Move
Take your best static ad → turn it into the VSSL opening. Always crushes. Jordan has never seen it fail.
09

Daily Research Routine

3 hours/day minimum on spy work — ideally before bed so your subconscious processes it overnight.

SourceWhat you're looking for
Spy Hero / Ad SpyNew angles, new formats, new hooks in your niche
Residential proxy → scroll US feedWhat real consumers actually see. Best raw signal source.
YouTube "product review" channelsHigh view count = offer is scaling = joinable wave
"Scam exposé" YouTube channelsSame signal — offer is hot enough to attract scrutiny
10

Nerve Pain — The Daily Numbers

Apply the full engine to the existing nerve-pain-ad-playbook. One offer. Master it. Then add more.

100
Static ads/day
$4–8
Daily kie.ai cost
~2 hrs
Human labor/day
3
Campaigns running
11

Morning Routine (30 min)

    1

    Pull performance

    Via Meta Marketing API or Red Track. Export last 24h of ad-level data.

    2

    Classify into 3 buckets

    Scale (≥1.5 ROAS sustained). Promote (low cost per initiate checkout). Kill (≤0.5 ROAS).

    3

    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."

12

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)

For each of 5 spy-tool-pulled winning nerve pain ads, generate 4 visually-distinct variants that preserve the hook archetype (price anchor / lawsuit-rage / testimony reversal / neighbor). Render via Nano Banana 2.

Campaign B — Red Square Hook Test (40 images)

  • Pure red background #CC1F1F + yellow #FFD84D testimonial 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)

CountFormatPlaybook Section
15Product Hero (warm mug, pink salt in water)Format 1
15Split Before/After (pain → remedy)Format 2
10Lifestyle/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.

13

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"
}
14

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())
urllib returns 403
kie.ai signed URLs reject urllib. Use httpx or curl to download. This skeleton uses httpx throughout.
15

Evening Review (45 min)

1

Check 24h performance

On previous day's drop. Note which hook entry point won (price? rage? neighbor?)

2

Update fragments.json

New mechanism emerged? "Microplastics" → "nano-glass shards." New authority? New objection? Evolve the fragments.

3

Spy 60 min

US residential proxy, scroll as a 60+ demographic. Note any new angles in next-day-experiments.md.

4

Review affiliate review YouTube

Search "pink salt nerve pain review" — count videos, note claims, flag angles you haven't tried.

16

Scale Gates

Don't skip stages. Each gate unlocks the next layer of complexity.

StageTriggerAction
Day 1–7RunningPure 3-campaign signal hunt. No rush to scale.
Winners found2–3 ads at ≥1.5 ROAS for 3 daysClone into dedicated scale campaign, bid cap 30–50% above current CPA
Landing page split5+ days stable winnersIntroduce listical + granny-blog alternates via tracker rotation
Own VSSL≥$500/day profit on offerWrite own opening using winning hook as video, test vs vendor VSSL
Meta Partner≥$50K/mo spendBegin Meta rep relationship-building
17

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.
18

Watch-Outs

VSSL Fragmentation Is The Whole Game
Full-script prompting ruins every downstream output. If your AI creatives feel generic, it's almost always because you fed the full VSSL instead of 8 fragments. This is the most common failure point.
100/day is per-offer, not portfolio total
Jordan runs 7–8 scaling offers + 3 in testing = 700–1,100 ads/day across the portfolio. Start with one offer. Master the loop. Then add offers one at a time.
Bid cap only after signal
Early tests need max-conversion mode to let Meta find buyers. Then freeze winners into bid caps. Don't bid-cap from day zero — you'll starve the algorithm.
Never optimize for button clicks or CPC
Only purchases. Use initiate checkouts as proxy data. Button-click optimization is the #1 way new affiliates burn budget.
Ethical floor
Overhyped nerve supplement = fine. Telling diabetics to stop insulin = people die. Jordan quit the diabetes niche for exactly this reason. Stay above the line.
19

Launch Checklist — Week 1

Check off as you go. State is saved locally.