# AI Image Ad Generator

> Agent skill on puras — published by puras. 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 across every ad, picks a proven ad layout, writes the headline and CTA, and renders each idea in the placement sizes you choose — 4:5, 1:1, 9:16, and 16:9 for Instagram, Facebook, TikTok, and Google.

- **Skill path:** `puras/product-ad-studio/static-image-ad`
- **Skillpack:** Product Ad Studio (`product-ad-studio`)
- **Skillpack ID:** `39903015-da3d-49a2-b549-9256ef164430`
- **Deployment version:** v51
- **Human page:** https://puras.co/skills/puras/product-ad-studio/static-image-ad
- **API base:** `https://api.puras.co`

## Description

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 across every ad, picks a proven ad layout, writes the headline and CTA, and renders each idea in the placement sizes you choose — 4:5, 1:1, 9:16, and 16:9 for Instagram, Facebook, TikTok, and Google.

## Who it's for

- **DTC & e-commerce sellers** — Spin up on-brand ads for every product and campaign.
- **Performance marketers** — Test fresh creative at the pace your spend demands.
- **Agencies & creative teams** — Produce sized ad sets for multiple clients programmatically.

## AI Image Ad Generator vs AdCreative.ai

| | AdCreative.ai | puras |
| --- | --- | --- |
| Pricing | Subscription with monthly credit limits | Usage-based — pay per ad you generate, exact cost each run |
| How it works | Template-driven generation in their dashboard | Researches the product, picks a layout, and writes the headline and CTA for you |
| Placements | Resize per placement in the editor | Every size you choose (4:5, 1:1, 9:16, 16:9) in one run |
| Where it runs | A web app you log into | API-native — generate ad variations from your own tools |

## FAQ

### What is the best AI ad creative generator for static image ads?

Static Image Ad is built specifically for static (image, not video) ad creatives: you give it a brief or product photo, and it researches the product, picks a proven layout, writes the headline and CTA, and renders the result in the sizes you choose. Because it's usage-based, you pay per run with the exact cost each time — no credits to budget around.

### How do I make Facebook and Instagram ad creatives without a designer?

Describe what you're selling in a brief (a product link works), optionally add product photos, and pick your sizes — the skill writes the headline and call-to-action and renders finished, ready-to-run ad creatives for Meta, Instagram, TikTok, and Google. No design tool or designer needed.

### Can I turn a product photo into an ad with AI?

Yes. Add up to five product photos and the skill keeps your real product accurate while it builds the layout, headline, and CTA around it. A brief alone also works if you don't have a packshot yet.

### Can I generate ad creatives in multiple placement sizes at once?

Yes — choose any of 4:5, 1:1, 9:16, and 16:9, and each ad idea is rendered in every size you pick in one run. 4:5 (feed) is the default since it's Meta's recommended static size, with 9:16 for Stories/Reels and 16:9 for Google display.

### What is a good AdCreative.ai alternative for ecommerce?

Static Image Ad covers the same brief-to-ad workflow — researched layout, headline, and CTA from your product photos — but is explicitly static-only, usage-based (pay per run, no credit caps or overage surprises), and API-native, which fits product ads and small-business/Shopify catalogs you generate on demand.

### What is the best static ad size for Facebook and Instagram?

4:5 (1080×1350) is Meta's recommended default for feed static ads, with 1:1 also feed-friendly and 9:16 for Stories and Reels. This skill defaults to 4:5 and lets you render any of those sizes plus 16:9 for Google placements in a single run.

### Can I call the ad generator from my own app?

Yes — it's API-native. Call it with one API key to generate ad variations on demand at the pace your testing or catalog requires.

## Try it free

AI Image Ad Generator has a free in-browser playground on its page (https://puras.co/skills/puras/product-ad-studio/static-image-ad) — load an example or bring your own inputs and run it with a Google sign-in. No credit card, no subscription; runs are usage-based after the free try.

## Input schema

```json
{
  "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_ratios": {
      "type": "array",
      "items": {
        "enum": [
          "9:16",
          "4:5",
          "1:1",
          "16:9"
        ],
        "type": "string"
      },
      "default": [
        "4:5"
      ],
      "minItems": 1,
      "description": "Which ad shapes to make. Feed-friendly 4:5 by default.",
      "uniqueItems": true
    },
    "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
{
  "type": "object",
  "properties": {
    "ads": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "cta": {
            "type": "string",
            "description": "The button text shown on the ad."
          },
          "layout": {
            "type": "string",
            "description": "The ad layout used for this idea."
          },
          "headline": {
            "type": "string",
            "description": "The headline shown on the ad."
          },
          "output_url": {
            "type": "image",
            "description": "The finished ad image."
          },
          "aspect_ratio": {
            "enum": [
              "9:16",
              "4:5",
              "1:1",
              "16:9"
            ],
            "type": "string",
            "description": "The ad shape this image was made for."
          }
        }
      },
      "minItems": 1,
      "description": "Every ad image produced — the ad, in each size you chose."
    }
  }
}
```

## Examples

### Tropical iced drink — feed ad

A short brief and one product photo. The skill researches the drink and builds one ad idea, with its own headline and button, in the 4:5 feed size.

Inputs:

```json
{
  "brief": "A layered tropical iced drink for hot afternoons. Fun, refreshing, summer vibe.",
  "style": "bold",
  "aspect_ratios": [
    "4:5"
  ],
  "include_people": true,
  "product_images": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-product.webp"
  ]
}
```

### Luxury fragrance — multi-size offer ad

A photo, a short brief, and a real offer. The skill builds one premium offer ad and ships it in feed, Stories, and landscape sizes so it fits every placement.

Inputs:

```json
{
  "cta": "Shop the Gift",
  "brief": "A refined fragrance in a sculptural glass bottle with a leather-textured cap — warm, timeless, luxury. Audience is gift-buyers. Land the gifting angle.",
  "offer": "Free engraving this week",
  "style": "premium",
  "aspect_ratios": [
    "4:5",
    "9:16",
    "16:9"
  ],
  "include_people": false,
  "product_images": [
    "https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/fragrance-product.jpg"
  ]
}
```

### Brief only — no product photo

Just a brief, no photo. The skill imagines the product from your description and renders one ad idea in the feed size — handy when you don't have a packshot yet.

Inputs:

```json
{
  "brief": "A reusable insulated water bottle in matte sage green, keeps drinks cold 24 hours. For everyday commuters and gym-goers. Clean, minimal look.",
  "style": "minimal",
  "aspect_ratios": [
    "4:5"
  ]
}
```

## Use this skill

puras runs this skill on its own backend — you send inputs and get the result back. Three ways to call, fastest first:

### 1. MCP server — recommended for coding agents, no API key

Connect the puras MCP server; auth is OAuth in the browser on first call, so there is nothing to paste.

```bash
claude mcp add --transport http puras https://mcp.puras.co/mcp
```

Any MCP client works — point it at `https://mcp.puras.co/mcp` (HTTP transport). Then ask the agent to run `static-image-ad` from skillpack `puras/product-ad-studio` with your inputs.

### 2. CLI / Python SDK — `pip install puras`

```bash
pip install puras
puras login            # or set PURAS_API_KEY
puras run puras/product-ad-studio/static-image-ad -i key=value
```

From Python:

```python
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_ratios":["4:5"],"include_people":true,"product_images":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-product.webp"]})
```

### 3. HTTP API

`wait=true` blocks until the run reaches a terminal status and returns the result inline.

```bash
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_ratios":["4:5"],"include_people":true,"product_images":["https://uozfqcfhlhugotnevscg.supabase.co/storage/v1/object/public/puras-public-skills/product-ad-studio/tropical-product.webp"]}}'
```

Mint an API key (for CLI / SDK / API) from https://puras.co/api-keys.

## Pricing

Runs are billed usage-based from your workspace credit balance — the cost of a job is the sum of the model token (and any media) usage it incurs. There is no per-call platform fee. The playground and the job result report the exact cost of each run.

- Pricing page: https://puras.co/pricing
- Machine-readable model price registry: `https://api.puras.co/v1/pricing`
