> ## Documentation Index
> Fetch the complete documentation index at: https://docs.adcontextprotocol.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Creative Lifecycle

> AdCP creative lifecycle — discover supported formats, sync creative assets to sellers, manage libraries, and track approval status across campaigns.

Creative management is central to successful media buying campaigns. AdCP manages the complete creative lifecycle from initial format discovery through ongoing optimization, providing comprehensive tools for managing creative assets throughout their entire lifecycle.

## Overview

AdCP's creative management system handles:

* **Format specifications** for all supported creative types
* **Asset lifecycle management** from creation to optimization
* **Cross-platform synchronization** of creative libraries
* **Standard format support** for consistent delivery

## Key Creative Tasks

### Creative Synchronization

Use [`sync_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/sync_creatives) to upload and manage creative assets in the creative library hosted by your seller or creative platform. This ensures your creatives are available for assignment across platforms and campaigns.

For sellers that advertise `inline_creative_management: true` without `creative.has_creative_library: true`, creatives are supplied as package-scoped `packages[].creatives` on `create_media_buy` or `update_media_buy` instead of through a reusable library.

### Creative Library Management

Use [`list_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/list_creatives) to view and manage your creative asset library, including status tracking and performance metadata.

## The Three Main Phases

AdCP manages creatives through three main phases:

### Phase 1: Format Discovery

Before producing assets, determine both the inventory contract and the creative operation that can satisfy it. AdCP 3.2 uses three explicit sources:

* Publisher acceptance: `adagents.json.formats[]`
* Seller deliverability: each `get_products` result's closed `format_options[]` set
* Creative-agent operations: `get_adcp_capabilities.creative.supported_formats[]`

`list_creative_formats` and recursive `creative_agents[]` discovery are deprecated. To find a producer for a publisher format, query the AgenticAdvertising.org registry by `{publisher_domain, format_option_id}` or by a compatible canonical `format_kind`, then confirm the selected agent directly with `get_adcp_capabilities`.

#### Inventory-first

"What products match my campaign, and what creative contracts do they accept?"

```javascript theme={null}
const products = await get_products({
  idempotency_key: "550e8400-e29b-41d4-a716-446655442049",
  buying_mode: "brief",
  brand: { domain: "acmeoutdoor.example" },
  brief: "Acme Outdoor product launch campaign"
});

const acceptedOptions = products.products.flatMap(product => product.format_options);
// Each option is already a complete canonical declaration: format_kind,
// params, slots, and optionally publisher_domain + format_option_id.
```

#### Creative-first

"Which creative agents can build this exact publisher contract?"

```javascript theme={null}
const { agents } = await fetch(
  "/api/registry/agents?publisher_domain=shorts.streamhaus.example" +
  "&format_option_id=vertical_video&creative_operation=build"
).then(response => response.json());

const creativeAgent = connectAdcpAgent(agents[0].url);
const capabilities = await creativeAgent.get_adcp_capabilities({ protocols: ["creative"] });
const capability = capabilities.creative.supported_formats.find(entry =>
  entry.format.publisher_domain === "shorts.streamhaus.example" &&
  entry.format.format_option_id === "vertical_video" &&
  entry.operations.includes("build")
);

const result = await creativeAgent.build_creative({
  target_capability_id: capability.capability_id,
  message: "Produce a concise vertical launch video",
  brand: { domain: "acmeoutdoor.example" }
});
```

### Phase 2: Creative Production

Once you understand format requirements, create the actual creative assets according to the specifications discovered in Phase 1.

### Phase 3: Creative Library Management

AdCP uses creative libraries hosted by creative-capable agents, where assets are uploaded once and assigned to multiple campaigns. This approach enables:

* Upload creatives to account-level library
* Assign creatives to specific campaigns/packages
* Reuse creatives across multiple media buys
* Track performance across all assignments

Asset management is handled through [brand identity](/dist/docs/3.2.0-beta.0/brand-protocol/brand-json), which provides brand-level assets with tags for discovery.

## Platform Considerations

Different platforms have varying creative requirements:

### Google Ad Manager

* Supports standard IAB formats
* Requires policy compliance review
* Creative approval typically within 24 hours

### Kevel

* Supports custom template-based creatives
* Real-time creative decisioning
* Flexible format support

### Triton Digital

* Audio-specific platform
* Supports standard audio formats
* Station-level creative targeting

## Response Times

Creative operations have varying response times:

* **Format listings**: \~1 second (database lookup)
* **Creative sync**: Minutes to days (asset processing and approval)
* **Library queries**: \~1 second (database lookup)

## Best Practices

1. **Format Planning**: Review supported formats before creative production
2. **Early Upload**: Submit creatives well before campaign launch
3. **Adaptation Acceptance**: Consider publisher suggestions for better performance
4. **Asset Organization**: Use clear naming conventions for creative IDs
5. **Performance Monitoring**: Track creative effectiveness and iterate
6. **Quality Control**: Follow format specifications exactly
7. **File Optimization**: Optimize file sizes for fast loading
8. **Testing**: Test assets across different devices and platforms

## Related Documentation

* **[`sync_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/sync_creatives)** - Bulk creative management with upsert semantics
* **[`list_creatives`](/dist/docs/3.2.0-beta.0/creative/task-reference/list_creatives)** - Advanced creative library querying and filtering
* **[Canonical formats](/dist/docs/3.2.0-beta.0/creative/canonical-formats)** - Publisher, product, and creative-agent format authority
* **[Brand identity](/dist/docs/3.2.0-beta.0/brand-protocol/brand-json)** - Brand identity and asset management
* **[Creative Formats](/dist/docs/3.2.0-beta.0/creative/formats)** - Understanding format specifications and discovery
* **[Creative Channel Guides](/dist/docs/3.2.0-beta.0/creative/channels/video)** - Format examples across video, display, audio, DOOH, and carousels
* **[Asset Types](/dist/docs/3.2.0-beta.0/creative/asset-types)** - Understanding asset roles and specifications
