Creative Fields
The creative object is returned by every Creative Library endpoint, and is the request body of Create a creative and Update a creative.
Which fields are required, optional or not allowed depends on creative_type. See Creating a creative.
{
"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": {
"ads": [
{
"id": 8765000101,
"campaign_id": 33,
"campaign_name": "Summer sale - US",
"creative_id": 4321000001
}
]
},
"app_install": null,
"ai_disclosure": null,
"custom_id": "SS-2026-HERO"
}Fields
| Field | Modifier | Type | Description |
|---|---|---|---|
id | Read-only | Number | The creative ID. Use it as creative_id when assigning the creative to a campaign. |
name | Optional. Required for DISPLAY | String | A name for the creative, shown in the library. Maximum 300 characters. |
account_id | Read-only | String | The account the creative belongs to. Required in the request body of the cross-account bulk upsert and bulk delete endpoints only. |
status | Read-only | String (enum) | The creative status: ACTIVE, CRAWLING, NEED_TO_EDIT or TERMINATED. |
creative_type | Required on create. Cannot be changed | String (enum) | STATIC_IMAGE, PERFORMANCE_VIDEO or DISPLAY. |
url | Required | String | The landing page URL. Copied to each ad on assignment; each ad's URL can then be changed independently. See Assigning creatives to campaigns. |
thumbnail_url | Required for STATIC_IMAGE. Not allowed for PERFORMANCE_VIDEO and DISPLAY | String | The image URL. Maximum 1000 characters. See Managing images. |
title | Required for STATIC_IMAGE and PERFORMANCE_VIDEO. Not allowed for DISPLAY | String | The ad title. |
description | Optional. Not allowed for DISPLAY | String | The ad description. Maximum 250 characters. |
display_data | Required for DISPLAY. Not allowed otherwise | Object | The display asset or tag and its dimensions. See Display data. |
creative_crop | Optional, STATIC_IMAGE only | Object | Per-aspect-ratio images or crop areas. Same structure as the campaign item creative_crop field. |
performance_video_data | Required for PERFORMANCE_VIDEO. Not allowed otherwise | Object | The video and fallback image. See Performance video data. |
cta | Optional. Not allowed for DISPLAY | Object | { "cta_type": "..." }. Same values as the campaign item CTA. |
rating | Optional. Not allowed for DISPLAY. Read-only when app_install is set | Object | { "rating": 4.5 }. A number between 0.0 and 5.0. |
create_time_in_utc | Read-only | String | Creation time, yyyy-MM-dd HH:mm:ss in UTC. |
disclaimer | Optional. Not allowed for DISPLAY | Object | { "disclaimer_url": "..." }. Requires the disclaimer permission on the account. |
orientation | Read-only | String (enum) | HORIZONTAL or VERTICAL. Derived from the media. |
logo | Optional. Not allowed for DISPLAY. Read-only when app_install is set | Object | { "logo": "<logo image URL>", "position": "..." }. Maximum 300 characters. Requires the logo feature on the account. |
ads | Read-only | Object | The ads created from this creative. null when the creative is not assigned to any campaign. See Ads. |
app_install | Optional on create only. Not allowed for DISPLAY | Object | App install details. See App install. |
ai_disclosure | Optional | Object | { "status": "AI_GENERATED" } or { "status": "NOT_AI_GENERATED" }. Owned by the creative and applied to every ad created from it. See AI Disclosure Object. |
custom_id | Optional | String | A free-text external identifier for your own reference. |
verification_pixel | Optional | Object | Third-party verification pixels. Same structure and rules as the campaign item verification_pixel field. See Tracking and scheduling. |
viewability_tag | Optional | Object | Third-party viewability tags. Same structure and rules as the campaign item viewability_tag field. See Tracking and scheduling. |
start_date | Optional | String | When ads created from this creative start serving, yyyy-MM-dd HH:mm:ss. Same rules as the campaign item start_date field. See Tracking and scheduling. |
end_date | Optional | String | When ads created from this creative stop serving, yyyy-MM-dd HH:mm:ss. Same rules as the campaign item end_date field. See Tracking and scheduling. |
activity_schedule | Optional | Object | The time zone for start_date and end_date. Same structure as the campaign item activity_schedule field. See Tracking and scheduling. |
creative_consolidation | Read-only | Object | Returned only when a create or update was merged into an existing identical creative. See Creative consolidation. |
Unknown fields are rejectedA request that contains a field the creative object does not support returns 400 with the message
Unknown field name '<field>'. Passing a read-only field returns 400 withTrying to modify a read-only field.
Display data
Used by DISPLAY creatives only.
| Field | Modifier | Type | Description |
|---|---|---|---|
display_ad_type | Read-only | String (enum) | HOSTED_IMAGE, HOSTED_HTML, HOSTED_VIDEO, HOSTED_SOCIAL, THIRD_PARTY_TAG or VAST_VIDEO. Derived from the asset or tag. |
hosted_display_data | One of hosted_display_data or ad_tag is required | Object | A hosted asset. On create, pass either { "id": <asset id> } for an asset already uploaded, or { "asset_url": "https://..." } to upload a new asset from its URL. See Upload display ads by URL. On read, also includes asset_url, mime_type and duration_in_seconds. |
ad_tag | One of hosted_display_data or ad_tag is required | String | A third-party ad tag. |
dimensions | Required | Array of objects | One { "width": 300, "height": 250 } object. |
responsive_mode | Optional | String (enum) | RESPONSIVE or FIXED. |
Performance video data
Used by PERFORMANCE_VIDEO creatives only.
| Field | Modifier | Type | Description |
|---|---|---|---|
video_url | Required | String | URL of the video file (MP4). Maximum 2500 characters. |
fallback_url | Required | String | URL of the fallback image (JPG or PNG). Maximum 1000 characters. |
gif_url | Read-only | String | A GIF preview generated from the video. |
App install
| Field | Modifier | Type | Description |
|---|---|---|---|
app_url | Required when app_install is present | String | The app store URL. Must be an iOS App Store or Google Play URL. Maximum 300 characters. |
app_name | Optional | String | The app name. |
downloads | Optional | String | The number of downloads to display. |
ui_version | Optional | String | The app install layout version. |
Ads
The ads object is read-only. It lists the ads created from the creative.
| Field | Type | Description |
|---|---|---|
ads | Array of objects | One entry per ad. |
ads[].id | Number | The ad's ID. This is the item_id of the campaign item. |
ads[].campaign_id | Number | The campaign the ad belongs to. |
ads[].campaign_name | String | The campaign name. |
ads[].creative_id | Number | The creative the ad was created from (this creative). |
Tracking and scheduling
verification_pixel, viewability_tag, start_date, end_date and activity_schedule are available for every creative type. They are defaults for new ads, not shared content:
- When the creative is assigned to a campaign, the new ad gets its own copy of these values.
- Changing them on the creative later applies to ads created after the change. Existing ads keep their values.
- Each ad's values can be changed through Update a campaign item. The ad stays linked to the creative.
- They are not part of the creative's identity, so they do not affect creative consolidation.
For scheduling, provide start_date, end_date and activity_schedule together, with the same date rules as for campaign items. See Item scheduling. A creative whose schedule falls outside a campaign's dates cannot be assigned to that campaign (400).
Creative consolidation
Returned only when a create or update request matched an existing, identical creative in the library. See Updating a creative.
| Field | Type | Description |
|---|---|---|
source_creative_id | Number | The creative that was created or updated by the request, and then merged. null on create. |
matched_creative_id | Number | The existing creative the request was merged into. This is the creative returned in the response. |
reassigned_ad_ids | Array of numbers | The ads that were moved from the source creative to the matched creative. Empty on create. |
See also
- Creative Library overview
- Campaign Item Fields - the ad-level fields.
Updated about 20 hours ago
