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.
No inputs handy? Try one of these
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
claude mcp add --transport http puras https://mcp.puras.co/mcpOAuth on first call — no key to paste. Then ask the agent to run static-image-ad from skill puras/product-ad-studio.
pip install puras
puras login # or set PURAS_API_KEY
puras run puras/product-ad-studio/static-image-ad -i key=valueimport 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"]})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."
}
}
}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.