AI Image Ad Generator

An AI ad creative generator for static image ads. Give it a brief (a product link or your product photos work too) and it researches the product, pulls your real logo off your site so the brand mark stays consistent, picks a proven ad layout, writes the headline and CTA, and renders one finished ad in the placement size you choose — 4:5, 1:1, 9:16, or 16:9 for Instagram, Facebook, TikTok, or Google.

from $0.75 per ad·Run it free in the playground, then call it from your app.

What you're selling, who it's for — a link works too.

Loading…

No inputs handy? Try one of these

Output appears here — run the skill, or pick an example to see a real input/output pair.

For developers

Run it from your own stack.

This skill is an API. One call runs the whole pipeline server-side as a long-running job and returns the result — from Python, plain HTTP, or an MCP-connected coding agent.

API access — MCP · Python SDK · cURL · JSON schemas
MCP· recommended for coding agents
claude mcp add --transport http puras https://mcp.puras.co/mcp

OAuth on first call — no key to paste. Then ask the agent to run static-image-ad from skill puras/product-ad-studio.

CLI
pip install puras puras login # or set PURAS_API_KEY puras run puras/product-ad-studio/static-image-ad -i key=value
Python SDK
import puras client = puras.Client() # PURAS_API_KEY from env result = client.run("puras/product-ad-studio/static-image-ad", {"brief":"A layered tropical iced drink for hot afternoons. Fun, refreshing, summer vibe.","style":"bold","aspect_ratio":"4:5","include_people":true,"product_images":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-product.webp"]})
HTTP API· wait=true blocks until the job finishes
curl -X POST "https://api.puras.co/v1/jobs?skillpack=puras/product-ad-studio&wait=true" \ -H "Authorization: Bearer $PURAS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"skill":"static-image-ad","inputs":{"brief":"A layered tropical iced drink for hot afternoons. Fun, refreshing, summer vibe.","style":"bold","aspect_ratio":"4:5","include_people":true,"product_images":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-product.webp"]}}'
Input schema (JSON Schema)
{
  "type": "object",
  "required": [
    "brief"
  ],
  "properties": {
    "cta": {
      "type": "string",
      "maxLength": 24,
      "description": "Button text like \"Shop Now\". Auto-picked if left empty."
    },
    "brief": {
      "type": "text",
      "maxLength": 2000,
      "description": "What you're selling, who it's for — a link works too."
    },
    "offer": {
      "type": "string",
      "maxLength": 80,
      "description": "A real promo to feature, e.g. \"30% off this week\"."
    },
    "style": {
      "enum": [
        "auto",
        "premium",
        "minimal",
        "bold",
        "warm",
        "playful",
        "clean",
        "editorial"
      ],
      "type": "string",
      "description": "Visual vibe for the ads. Auto picks the best fit."
    },
    "aspect_ratio": {
      "enum": [
        "9:16",
        "4:5",
        "1:1",
        "16:9"
      ],
      "type": "string",
      "default": "4:5",
      "description": "Which ad shape to make. Feed-friendly 4:5 by default."
    },
    "include_people": {
      "type": "boolean",
      "default": true,
      "description": "Allow lifestyle ads with people. On by default."
    },
    "product_images": {
      "type": "array",
      "items": {
        "type": "image"
      },
      "maxItems": 5,
      "minItems": 1,
      "description": "Optional product photos, so the real product stays accurate."
    }
  }
}
Output schema (JSON Schema)
{
  "type": "object",
  "properties": {
    "ad": {
      "type": "image",
      "description": "The finished static image ad."
    }
  }
}
SpecDocs

Call AI Image Ad Generator from your app.

Run it free in the playground above, then wire it in with one call — from Python, TypeScript, or your coding agent over MCP. Every run returns an exact cost receipt.

Every run is billed to the cent — see pricing.