Create a creative in the account's Creative Library. The creative is not assigned to any campaign. To create ads from it, see Assigning creatives to campaigns.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Overview
Create a creative in the account's Creative Library. The creative is stored in the library and is not assigned to any campaign. To create ads from it, see Assigning creatives to campaigns.
The required fields depend on creative_type. To choose the type and prepare the assets, see Creating a creative.
Native (image) creative
Example - create a STATIC_IMAGE creative:
STATIC_IMAGE creative:POST /backstage/api/1.0/demo-advertiser/creatives{
"creative_type": "STATIC_IMAGE",
"name": "Summer sale hero",
"url": "https://www.demo-advertiser.com/summer-sale",
"thumbnail_url": "https://cdn.demo-advertiser.com/thumbnails/summer-sale.jpg",
"title": "Summer sale: up to 50% off",
"description": "Limited-time offer on the full summer collection",
"cta": {
"cta_type": "SHOP_NOW"
},
"custom_id": "SS-2026-HERO"
}{
"id": 4321000001,
"name": "Summer sale hero",
"account_id": "demo-advertiser",
"status": "ACTIVE",
"creative_type": "STATIC_IMAGE",
"url": "https://www.demo-advertiser.com/summer-sale",
"thumbnail_url": "https://cdn.demo-advertiser.com/thumbnails/summer-sale.jpg",
"title": "Summer sale: up to 50% off",
"description": "Limited-time offer on the full summer collection",
"display_data": null,
"creative_crop": null,
"performance_video_data": null,
"cta": {
"cta_type": "SHOP_NOW"
},
"rating": null,
"create_time_in_utc": "2026-09-01 10:15:30",
"disclaimer": null,
"orientation": "HORIZONTAL",
"logo": null,
"ads": null,
"app_install": null,
"ai_disclosure": null,
"custom_id": "SS-2026-HERO"
}
Required fields (STATIC_IMAGE)
creative_type-"STATIC_IMAGE"url- the landing page URLthumbnail_url- the image URLtitle
Optional fields (STATIC_IMAGE)
name,description,cta,creative_crop,rating,disclaimer,logo,app_install,ai_disclosure,custom_id,verification_pixel,viewability_tag,start_date,end_date,activity_schedule. See Creative fields.To provide different images per aspect ratio (for example a vertical variant), use
creative_crop, with the same structure as for campaign items. See Multi-image and vertical ads.
Motion creative
Example - create a PERFORMANCE_VIDEO creative:
PERFORMANCE_VIDEO creative:POST /backstage/api/1.0/demo-advertiser/creatives{
"creative_type": "PERFORMANCE_VIDEO",
"name": "Summer sale motion",
"url": "https://www.demo-advertiser.com/summer-sale",
"title": "Summer sale: up to 50% off",
"performance_video_data": {
"video_url": "https://cdn.demo-advertiser.com/video/summer-sale.mp4",
"fallback_url": "https://cdn.demo-advertiser.com/video/summer-sale-fallback.jpg"
}
}{
"id": 4321000002,
"name": "Summer sale motion",
"account_id": "demo-advertiser",
"status": "ACTIVE",
"creative_type": "PERFORMANCE_VIDEO",
"url": "https://www.demo-advertiser.com/summer-sale",
"title": "Summer sale: up to 50% off",
"performance_video_data": {
"video_url": "https://cdn.demo-advertiser.com/video/summer-sale.mp4",
"fallback_url": "https://cdn.demo-advertiser.com/video/summer-sale-fallback.jpg",
"gif_url": null
},
...
}
Required fields (PERFORMANCE_VIDEO)
creative_type-"PERFORMANCE_VIDEO"url- the landing page URLtitleperformance_video_data- withvideo_url(MP4) andfallback_url(JPG or PNG)
thumbnail_urlandcreative_cropare not supported for motion creatives: the fallback image goes inperformance_video_data.fallback_url. If passed, the endpoint returns 400.
Optional fields (PERFORMANCE_VIDEO)
name,description,cta,rating,disclaimer,logo,app_install,ai_disclosure,custom_id,verification_pixel,viewability_tag,start_date,end_date,activity_schedule. See Creative fields.
Display creative
Example - create a DISPLAY creative from a hosted asset:
DISPLAY creative from a hosted asset:POST /backstage/api/1.0/demo-advertiser/creatives{
"creative_type": "DISPLAY",
"name": "Summer sale 300x250",
"url": "https://www.demo-advertiser.com/summer-sale",
"display_data": {
"hosted_display_data": {
"id": 55001
},
"dimensions": [
{
"width": 300,
"height": 250
}
]
}
}{
"id": 4321000003,
"name": "Summer sale 300x250",
"account_id": "demo-advertiser",
"status": "ACTIVE",
"creative_type": "DISPLAY",
"url": "https://www.demo-advertiser.com/summer-sale",
"display_data": {
"display_ad_type": "HOSTED_IMAGE",
"hosted_display_data": {
"id": 55001,
"asset_url": "https://cdn.taboola.com/libtrc/static/thumbnails/summer-sale-300x250.jpg",
"mime_type": "image/jpeg"
},
"dimensions": [
{
"width": 300,
"height": 250
}
],
"responsive_mode": "FIXED"
},
...
}
Required fields (DISPLAY)
creative_type-"DISPLAY"nameurl- the landing page URLdisplay_data- with one of:hosted_display_data.id(an asset already uploaded),hosted_display_data.asset_url(a new asset, uploaded from its URL - see Upload display ads by URL) orad_tag(a third-party tag); plusdimensions.
title,description,thumbnail_url,cta,creative_crop,rating,disclaimer,logoandapp_installare not supported for display creatives. If passed, the endpoint returns 400.
Optional fields (DISPLAY)
display_data.responsive_mode,ai_disclosure,custom_id,verification_pixel,viewability_tag,start_date,end_date,activity_schedule. See Creative fields.
Display creative errors
- Passing both
hosted_display_dataandad_tag, or neither, returns 400 (Display data must contain either ad tag or hosted asset id).- An unknown
hosted_display_data.idreturns 404.- Display creatives require the display ads feature on the account.
General guidelines
Guidelines
- The new creative is created with
status=ACTIVEand is unassigned. It does not serve until it is assigned to a campaign.id,account_id,status,orientation,create_time_in_utcandadsare read-only. Passing them returns 400.- Unknown fields are rejected with 400 (
Unknown field name).- Creatives cannot be created under a network account (400); use the advertiser account.
Creative consolidationIf the request is identical to an existing creative in the library, no new creative is created. The existing creative is returned, with a
creative_consolidationobject:matched_creative_idis set to its ID andsource_creative_idisnull. Always readidfrom the response. See Creative consolidation.
See also
- Creating a creative - choosing the creative type and preparing the assets.
- Bulk create creatives - create several creatives in one request.
- Update a creative
