Documentation Index
Fetch the complete documentation index at: https://agenticadvertisingorg-changeset-release-main.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
preview_creative renders an existing creative manifest into viewable output. It does not generate or modify the input manifest — use build_creative for that. Supports both single creative preview and batch preview (5-10x faster for multiple creatives).
Request Schema: /schemas/v3/creative/preview-creative-request.json
Response Schema: /schemas/v3/creative/preview-creative-response.json
Quick Start
Single Creative Preview
Direct HTML Embedding
For faster rendering without iframe overhead, request HTML directly:Batch Preview (Multiple Creatives)
Preview multiple creatives in one API call (5-10x faster):Variant Preview (Post-Flight)
Preview what a specific variant looked like when served. Usevariant_id from get_creative_delivery response:
get_creative_delivery includes its full manifest, you can also pass the manifest directly to preview_creative as a standard single request to re-render it.
Request Parameters
All modes use a single flat object withrequest_type as the discriminant.
| Parameter | Type | Required | Description |
|---|---|---|---|
request_type | string | Yes | "single", "batch", or "variant" |
creative_manifest | object | Single | Complete creative manifest with all required assets for the format. |
format_id | FormatID | No | Format identifier (agent_url + id). Defaults to creative_manifest.format_id if omitted. Used in single mode. |
inputs | array | No | Array of input sets for multiple preview variants. Used in single mode. |
quality | string | No | "draft" (fast, lower-fidelity) or "production" (full quality). In batch mode, sets the default for all requests. |
output_format | string | No | "url" (default) or "html". In batch mode, sets the default for all requests. |
item_limit | integer | No | Maximum catalog items to render per preview variant. Used in single mode. |
template_id | string | No | Specific template ID for custom format rendering. Used in single mode. |
requests | array | Batch | Array of 1-50 preview requests. Each item accepts creative_manifest (required), format_id, inputs, quality, output_format, item_limit, and template_id. |
variant_id | string | Variant | Platform-assigned variant identifier from get_creative_delivery. |
creative_id | string | No | Creative identifier for context. Used in variant mode. |
request_type is "single", Batch = required when "batch", Variant = required when "variant".
Input Sets
Generate multiple preview variants by providing different contexts:DEVICE_TYPE, COUNTRY, CITY, DMA, GDPR, US_PRIVACY, CONTENT_GENRE, etc.
Context descriptions: For AI-generated content like host-read audio ads.
Response Format
Single Mode Response
Batch Mode Response
Preview Structure
render_id and role.
Previewing generative creative
For generative formats — contextual display, AI-generated native, conversational ads — the creative doesn’t exist until serve time. Preview serves two distinct purposes:Pre-flight: representative samples
Before the campaign runs, use single or batch mode to preview what the agent could generate given different contexts. Passinputs with context_description to simulate serve-time conditions:
Post-flight: exact replay
After the campaign runs, use variant mode to see exactly what was served. Pass avariant_id from get_creative_delivery:
Setting expectations
| Aspect | Standard creative | Generative creative |
|---|---|---|
| Pre-flight preview | Exact — what you see is what runs | Representative — shows the agent’s interpretation of the brief under simulated conditions |
| Post-flight preview | Same as pre-flight | Exact — faithful replay of served output via variant mode |
quality: "draft" | Fast wireframe-quality render | Fast, lower-fidelity generation for reviewing creative direction |
quality: "production" | Full-fidelity render | Full-quality generation for stakeholder sign-off |
| Number of variants | Typically 1 (or a few device variants) | Potentially thousands — one per context |
Conversational and interactive formats
For formats where the ad is stateful — AI chat, interactive experiences, conversational native — preview takes on additional meaning:- Pre-flight renders a representative first interaction or simulated conversation. The
interactive_urlfield in the preview response (when present) provides a sandbox where reviewers can interact with the experience directly. Usecontext_descriptionto simulate different conversation entry points. - Post-flight variant replay shows the actual exchange that occurred. For multi-turn formats, the variant manifest captures the full content the agent produced (message sequence, responses, media assets shown). The level of detail depends on the agent — some provide full transcripts, others provide summarized content with anonymized user signals.
Quality mismatch
If the requested quality level is not supported, the agent renders at the best quality it can provide. The protocol does not require agents to support both levels — an agent that only generates at one fidelity ignores the parameter. There is no response field echoing back the actual quality used, so if quality accuracy matters for your workflow, verify by visual inspection or ask the agent about its capabilities throughlist_creative_formats.
Preview expiration and variant retention
Preview responses may include anexpires_at timestamp. When present, consumers should treat preview URLs as invalid after that time and re-generate them before reuse. When expires_at is omitted, the preview URLs do not expire. For generative creative, re-generating a pre-flight preview may produce different output — the same brief and context can yield different creative each time.
Variant previews (post-flight) depend on the agent retaining variant data. Agents are not required to retain variant data indefinitely. If you request a variant preview for a variant the agent has purged, expect a standard error response. For long-running campaigns, retrieve and archive variant previews periodically rather than assuming they will remain available.
Examples
Device Variants
Batch with HTML Output
Preview multiple creatives for a grid layout:AI-Generated Audio Preview
HTTP Status Codes
Single mode:- 200 OK - Preview generated successfully
- 400 Bad Request - Invalid manifest or format_id
- 404 Not Found - Format not supported
- 200 OK - Batch processed (check individual
successfields) - 400 Bad Request - Invalid batch structure
Key Points
- Every render’s
preview_urlreturns an HTML page for iframe embedding - Use
output_format: "html"for grids of 10+ previews (no iframe overhead) - Batch mode is 5-10x faster than individual requests
- Preview URLs expire only when
expires_atis present; omittedexpires_atmeans no expiration - Handle partial batch failures by checking each result’s
successfield
Related Documentation
- Advanced Preview Patterns - Caching, workflows, implementation notes
- Creative Manifests - Manifest structure
- Creative Formats - Format specifications