> ## Documentation Index
> Fetch the complete documentation index at: https://agenticadvertisingorg-snap-format-preview-links.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Generative Creative

The Creative Protocol enables AI-powered creative generation and asset management for advertising campaigns. This guide will help you create your first creative in 5 minutes.

> **Technical Reference**: This guide shows how to use the [`build_creative` task](/dist/docs/2.5.3/creative/task-reference/build_creative). For complete API specifications, see the task reference documentation.

## Overview

The Creative Protocol provides AI-powered creative generation:

* **`build_creative`**: Generate creative content using AI with either static manifests or dynamic code
* **`preview_creative`**: Generate previews of creative manifests
* **`list_creative_formats`**: Discover supported creative formats

Assets are provided via [Brand Manifest](/dist/docs/2.5.3/creative/brand-manifest) - no separate asset library management needed.

## Quick Start: Generate Your First Creative

### Step 1: Basic Creative Generation

Here's the simplest possible request to generate a native display ad:

```json theme={null}
{
  "message": "Create a simple ad for a coffee shop promotion - 20% off all drinks this week",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_native"
  },
  "output_mode": "manifest"
}
```

### Step 2: Understanding the Response

You'll receive a structured creative manifest:

```json theme={null}
{
  "creative_manifest": {
    "format_id": {
      "agent_url": "https://creative.adcontextprotocol.org",
      "id": "display_native"
    },
    "assets": {
      "headline": {
        "content": "20% Off All Drinks This Week!"
      },
      "description": {
        "content": "Visit our cozy coffee shop and enjoy premium coffee at an unbeatable price."
      },
      "call_to_action": {
        "content": "Visit Today"
      }
    }
  }
}
```

### Step 3: Refine Your Creative

Iterate on the generated creative by modifying the manifest and regenerating:

```json theme={null}
{
  "message": "Make the headline more exciting and add urgency",
  "target_format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_native"
  },
  "creative_manifest": {
    "format_id": {
      "agent_url": "https://creative.adcontextprotocol.org",
      "id": "display_native"
    },
    "assets": {
      "headline": {
        "content": "20% Off All Drinks This Week!"
      }
    }
  }
}
```

## Common Patterns

### Using Brand Manifests

Provide brand context for better creative generation:

```json theme={null}
{
  "message": "Create a display ad for our coffee shop promotion",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250"
  },
  "brand_manifest": {
    "url": "https://mycoffeeshop.com",
    "name": "Brew & Co",
    "colors": {
      "primary": "#6F4E37",
      "secondary": "#C4A35A"
    },
    "tone": "warm and inviting"
  },
  "output_mode": "manifest"
}
```

**Minimal Brand Manifest**: Start with just a URL for low-friction creative generation:

```json theme={null}
{
  "message": "Create a coffee shop ad",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_native"
  },
  "brand_manifest": {
    "url": "https://mycoffeeshop.com"
  }
}
```

See [Brand Manifest Reference](/dist/docs/2.5.3/creative/brand-manifest) for comprehensive examples.

### Using Your Own Assets

Provide existing assets to incorporate into the creative:

```json theme={null}
{
  "message": "Create a display ad featuring our signature latte",
  "target_format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_300x250"
  },
  "creative_manifest": {
    "format_id": {
      "agent_url": "https://creative.adcontextprotocol.org",
      "id": "display_300x250"
    },
    "assets": {
      "brand_logo": {
        "url": "https://mycoffeeshop.com/assets/logo.png",
        "width": 200,
        "height": 50
      }
    }
  }
}
```

### Generating Dynamic Code

For real-time personalization, use code mode:

```json theme={null}
{
  "message": "Create a weather-responsive coffee ad that shows hot drinks when cold, iced drinks when warm",
  "format_id": {
    "agent_url": "https://creative.adcontextprotocol.org",
    "id": "display_native"
  },
  "output_mode": "code"
}
```

## Format Discovery

### Standard Formats

Common format IDs you can use immediately:

* `display_native` - Native advertising format
* `display_300x250` - Medium rectangle banner
* `video_standard_30s` - 30-second video ad

### Publisher-Specific Formats

For custom publisher formats, specify the source:

```json theme={null}
{
  "message": "Create a premium video ad",
  "format_id": {
    "agent_url": "https://premium-publisher.com",
    "id": "premium_video_15s"
  },
  "output_mode": "manifest"
}
```

## Next Steps

* **Browse Examples**: See [Task Reference](/dist/docs/2.5.3/creative/task-reference/build_creative) for detailed examples
* **Learn Advanced Features**: Explore real-time inference and dynamic creative generation
* **Integration Guide**: Learn how to integrate with your existing creative workflows
* **Best Practices**: Asset organization and creative optimization strategies

## Common Issues

### Format Not Found

If you get a format error, the publisher may not support that format. Try:

1. Use a standard AdCP format first (`display_native`, `video_standard_30s`)
2. Check the publisher's `list_creative_formats` endpoint
3. Verify the `format_source` URL is correct

### Creative Quality Issues

To improve creative output:

1. Be more specific in your message: "Create a minimalist coffee ad with earth tones"
2. Provide comprehensive brand manifest with assets and guidelines
3. Use the conversational refinement feature to iterate (via `context_id`)

### Asset Management

Assets are provided via [Brand Manifest](/dist/docs/2.5.3/creative/brand-manifest):

1. Include assets in brand manifest with descriptive tags
2. Use `asset_filters` in requests to select specific assets
3. Reference product catalogs for large inventories

Ready to create your first creative? Start with the basic example above and explore from there!
