App Farm — concept-anchored creative factory for paid-ads platforms
Problem solved: Growth teams running paid acquisition on platforms with creative-deduplication ranking (Meta's Andromeda, similar) need 1,000+ distinct creatives per quarter; manual production caps out at 5% of demand and cosmetic variations get de-prioritized server-side.
What
Build a farm of small Cursor-coded apps, one app per creative concept type (close-up emotional female testimonials, packshot grids, talking-head explainer, etc.). Each app reads a row from an Airtable variable matrix (persona × hook × geo × language × ad set), generates keyframe images via nano-banana (Gemini 3 Image Pro), strings them into video via Kling AI or Veo, assembles with packshot / voice / music, and ships via the Meta Marketing API straight to ad sets. A daily script pulls Hook Rate + Hold Rate per asset, flags underperformers, and on operator approval kills them. Concept apps stay small and disposable; the matrix and the kill-script are the durable assets.
Why it matters
Reported outcomes from operators running this loop on a consumer subscription app at ~10M users: "record month for purchases and revenue within a week" after switching from copy-paste-plus-variation to per-concept apps. One agency partner producing creative for clients reports 2,000 complex creatives for one client in one weekend; another client's request for "just 8 concepts" decomposed to 1,872 distinct assets (60 images + 60 video assets + 15 talking heads + 15 voices + 15 slide shows + 4 utility grids + 1 packshot + 15 combined videos per concept, plus ~20% garbage). Without the per-concept-app structure, none of that volume reaches the auction.
End-to-end
- Stop making cosmetic variations. Meta and similar platforms deduplicate server-side via perceptual hashing. Hook swap, button color change, even a different opening line on the same shot — these collapse into one concept in the ranking and one of them wins. Variations must be different concepts, not cosmetic edits.
- Define your concept catalog. Audit which creative concept types actually work for your category (close-up testimonial, packshot grid, talking-head explainer, animated explainer, lifestyle b-roll). For each, you'll build one Cursor app.
- Airtable as the variable matrix. One table per concept catalog. Columns: persona, voice, location, hook, language, ad set, status. Each row is a generation job. Marketing operators add rows; the apps consume them. Airtable's the user-visible spine — engineers don't need to touch it for ops.
- One Cursor-coded app per concept. Each app: read N rows from Airtable, generate keyframes via nano-banana, run keyframes through Kling AI or Veo to get clips, layer packshot + voice + music, write the result back to Airtable with status and a thumbnail. Apps are small, single-purpose, disposable. Don't try to build a generic super-app — every operator who tried that ended up with a worse Airtable.
- Upload via Meta Marketing API directly. Skip Ads Manager UI. Script the upload — batched into 50 creatives/day across iOS/Android campaigns is the working volume one operator runs. One missing API toggle ("App store details (Off)") still needs manual handling; everything else is scripted.
- First-frame rule for talking heads. If the starting frame has a closed mouth, nano-banana / Imagen 4 will render unnaturally white "toilet-tile" teeth on the first open. Force the starting frame to include visible teeth in the prompt.
- Daily kill-script. Pull spend + Hook Rate + Hold Rate per asset 24h after launch. Flag underperformers. After operator approval, the script switches them off. Hook Rate + Hold Rate dominate the ranking — bad hook in the first 2 seconds, nothing downstream saves it.
- Run an internal self-check loop on the generators. Each concept app should pass its own output through a critic agent (matches brand? matches hook brief? face composition acceptable?) before queueing for upload. By the 3rd iteration of a concept app, the operator reports it produces shippable creatives without human review.
Prompts
Verbatim concept-app architecture:
Per concept app:
read N rows from Airtable (persona × hook × geo × language × ad set)
generate keyframes: nano-banana
string into video: Kling AI or Veo
assemble: packshot + voice + music
upload: Meta Marketing API → ad set
write back: Airtable row → status + asset URL
Daily kill-script outline:
# cron: 0 9 * * * (daily 9am, 24h after the previous day's batch launch)
for asset in fetch_active_assets():
stats = meta_api.get_asset_stats(asset.id, last_24h=True)
if stats.hook_rate < HOOK_THRESHOLD or stats.hold_rate < HOLD_THRESHOLD:
flag_for_kill(asset, reason=stats)
notify_operator(flagged_list)
# operator clicks approve; script switches off after confirmation
Gotchas
- Cosmetic variations get deduped. Hook swap or button color is not a new concept to the ranker. Variations must be concept-level different.
- Toilet-tile teeth on closed-mouth starting frames. Force visible teeth in the first-frame prompt.
- AI disclosure labels drop CTR ~33%. Research cited in source. When platforms auto-label AI-generated content, pre-plan budget reallocation. Avoid AI-impersonating-real-people testimonials entirely — FTC-prohibited and hit with $1,000–$5,000/violation state fines.
- ComfyUI is overkill for ad creative. Stay on nano-banana + Kling/Veo. Reserve ComfyUI + Unreal Engine 5 + Wan2 + VACE for film-grade VFX or brand-conformant pipelines where you can't risk text-to-video drift.
- Don't build a single super-app. Every operator who tried collapsed back to per-concept apps. The matrix lives in Airtable; the apps stay disposable.
- TikTok-virality doesn't predict Meta. Different ranking weights; use organic TikTok as directional signal at best, not as the A/B filter.
Tools
- Meta Marketing API access (or equivalent for other ad platforms)
- Cursor — for coding the per-concept apps
- Airtable — variable matrix and ops surface for the marketing team
- nano-banana (Gemini 3 Image Pro) — keyframe image generation
- Kling AI or Veo — keyframe-to-video
- Python + perceptual-hashing libs — for dedup pre-check before upload
- One embedded "AI developer" who can spin a new concept app in a day when marketing requests one