Back to Templates

Create AI-Generated Meta Ad Campaigns from Product URLs with OpenAI & Firecrawl

Created by

Created by: Adam Crafts || adamcrafts

Adam Crafts

Last update

Last update 23 days ago

Share


AI-Powered Meta Ads Builder (Facebook & Instagram)

Turn any product page into ready-to-run Meta ads—fast, consistent, and client-friendly.

  • Category: Marketing Automation / Ads / AI
  • Price: $25 (one-time)
  • Integrations: Meta (Facebook & Instagram), OpenAI, Firecrawl, n8n
  • Output: Campaign → Ad Sets → Creatives → 1:1 Images (created in PAUSED status)

Description

This template takes a product URL and produces publish-ready Meta ads without the busywork. Your client fills a clean form; the workflow scrapes product data, writes a creative brief, generates ad-set variations, produces 1:1 images with OpenAI, and builds Campaign → Ad Set(s) → Ad(s) in PAUSED for review.

Perfect for: agencies, performance marketers, founders who need repeatable creative and less manual setup.

Highlights

  • Form-based intake (client-friendly)
  • Schema-clean product extraction (no made-up facts)
  • Vision cues for on-brand visuals
  • Platform-safe 1:1 images and copy lengths
  • Auto placements by default (or customize)
  • Creates assets in PAUSED so you stay in control

What’s inside

  • Form Trigger: “AI Ad Creation”
  • Firecrawl: scrape product content + images
  • OpenAI (LLM + Vision): clean JSON + aesthetic/emotion cues
  • Creative Brief Builder: merges product facts with tone/goals
  • Campaign JSON Generator: campaign + ad_sets as strict schema
  • OpenAI Images: 1:1 creatives (1024×1024 by default)
  • Meta Graph API: upload assets, create creatives, campaign, ad sets, and ads (PAUSED)
  • Split / Batch / Wait / If / Set / Merge: stable, scalable processing

How it works

Form → Firecrawl scrape → Product JSON (LLM) → Vision style cues → Creative brief
→ Campaign JSON (LLM) → Split into ad sets → For each ad set:
→ Generate image → Upload to Meta → Create Creative → Create Campaign → Create Ad Set → Create Ad (PAUSED)

What changed in this version

  • 🔐 No hardcoded API keys — all auth uses n8n Credentials
  • 📌 PinData removed — the template ships clean (no sample data)
  • 🧩 Clean placeholders for IDs/links in “Configuration Meta Ads” (your_ad_account_id, etc.)

Requirements

  • OpenAI credential (Chat + Images)
  • Facebook Graph API credential (with ads_management permissions)
  • Firecrawl credential (API key)
  • Your Ad Account ID, Facebook Page ID, Pixel ID, Destination URL

Quick setup (5 steps)

  1. Import the JSON in n8n.

  2. Create Credentials for OpenAI, Facebook Graph API, Firecrawl.

  3. Open “Configuration Meta Ads” node and set:

    • ad_account_id, facebook_page_id, pixel_id, website_link
  4. Open the Form Trigger URL and submit a real product URL.

  5. In Ads Manager, review campaign/ad sets/ads (they’re PAUSED), then enable.


Inputs (Form)

  • Product URL (required)
  • Campaign Type (Launch, Seasonal, Awareness, Retargeting, LTO)
  • Target Platform (Facebook, Instagram)
  • Number Of Variation (integer)
  • Target Audience
  • Key Message / Offer
  • Emotional Tone (multi-select: Joy, Trust, Fear, Surprise, Sadness, Disgust, Anger)

Outputs

  • Creative Brief (concise, platform-aware)

  • Campaign JSON with:

    • Ad sets (audience, placements, schedule/budget placeholders)
    • Creative (primary_text, headline, description, CTA, UTM defaults, reference image)
    • AdConcept (imageName, prompt, emotional hook, 1:1 safe zones)
  • Meta assets created: uploads → creatives → campaign → ad set(s) → ad(s) (PAUSED)


Sticky notes (mandatory)

Credentials

  • Use OpenAI, Facebook Graph API, and Firecrawl credentials in n8n.
  • ⚠️ No hardcoded keys anywhere (HTTP node or otherwise).

Form Testing

  • Use a real product URL with at least one image.
  • Start with 1–2 variations; scale after review.
  • If scraping fails, verify Firecrawl key and the site’s policies.

Meta Upload

  • Set ad_account_id, facebook_page_id, pixel_id, website_link.
  • If uploads fail, check account permissions and app scopes.

OpenAI Images

  • Default: 1:1, 1024×1024.
  • You can change size in the Images node (keep FB/IG safe zones).
  • Prompts should avoid policy-sensitive claims.

Safety & Review

  • Everything is created PAUSED.
  • Review copy, claims, and targeting for compliance.
  • Enable after quality checks.

Security & compliance

  • Secrets live in n8n Credentials or environment variables—never in nodes.
  • Follow Meta ad policies (no restricted claims, no before/after, etc.).
  • Product facts only; unknown fields remain null/empty arrays.

Performance tips

  • Start with auto placements; test Feed/Reels later if needed.
  • Keep primary text 125–200 chars; headline short (testimonial-style in quotes).
  • Use the best product image as reference.
  • Scale carefully: tune Batch and Wait for your throughput.

FAQ

Does it publish automatically?
No. Ads are created PAUSED for review.

Instagram-only campaigns?
Yes. Set placements to IG (or keep auto and let Meta optimize).

Thin product pages?
Extractor returns null for missing fields; the brief adapts without inventing data.

Bring my own audiences?
Swap the generated audience block for your saved audiences or static lists.

Change image model/size?
Yes—edit the OpenAI Images node (model/size). Keep 1:1 for FB/IG.