Create a new creative via POST. Supports multiple creative kinds: Custom Tag (BANNER+TAG), Hosted Banner, Video (VAST URL/XML/Hosted), Audio, Native, and DOOH. Provide creativeType, creativeSubtype, type.mediaType, and type-specific payload; omit id. One of advertiserId or campaignId is required.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Request
Request body (common fields)
| Name | Type | Description | Required |
|---|---|---|---|
| name | String | Creative name (max 400 characters) | Yes |
| creativeType | String | One of: BANNER, NATIVE, AUDIO, VIDEO, DOOH | Yes |
| creativeSubtype | String | Depends on creativeType (see matrix below) | Yes |
| type | Object | Media type configuration; see Type object | Yes |
| advertiserId | Number | Advertiser ID | Yes* |
| campaignId | Number | Campaign ID (advertiser resolved from campaign if only this is sent) | Yes* |
| size | Object | Dimensions; see Size object | Conditional** |
| landingPageUrl | String | Click-through URL | Conditional*** |
| htmlAsset | String | HTML/JS tag content (for BANNER + TAG) | Conditional**** |
| imageUrl | String | Image URL (for BANNER + HOSTED) | Conditional**** |
| video | Object | Video payload; see Video | Conditional**** |
| audio | Object | Audio payload; see Audio | Conditional**** |
| native | Object | Native payload; see Native | Conditional**** |
| dooh | Object | DOOH payload; see DOOH | Conditional**** |
| channels | Array of String | e.g. ["MOBILE","DESKTOP"] | No |
| crawlableUrl | String | Optional | No |
| externalCreativeid | String | Max 26 characters | No |
| impressionTrackingPixel1 … 4 | String | Optional tracking pixel URLs | No |
| display | Object | Optional; display.htmlAsset can supply HTML for tag creatives | No |
| status | String | e.g. PENDING, INCOMPLETE; usually omit on create | No |
- One of
advertiserIdorcampaignIdis required; both may be included.
** Size: Required for BANNER + TAG (and other tag-based display creatives). Optional or inferred for BANNER+HOSTED, VIDEO, AUDIO, NATIVE, DOOH.
*** landingPageUrl: Required for hosted display (BANNER+HOSTED), hosted video/audio, and Native creatives.
**** Type-specific: Required per creative type × subtype; see Creative type × subtype matrix.
Type object
| Name | Type | Description | Required |
|---|---|---|---|
| mediaType | String | One of: BANNER, VAST, NATIVE, MRAID, VPAID, VAST_WITH_VPAID, AUDIO | Yes |
| id | Number | Creative type ID; see Creative Type IDs | No |
| vendorId | Number | Vendor ID (e.g. 8 = GCM for video); see Vendor Enum list | No |
| videoType | String | One of: FLV, MP4, WMV, WEBM, JS; use null for non-video | No |
For create, only mediaType is required. Use id and vendorId when you need vendor-specific mapping (e.g. GCM video).
Size object
| Name | Type | Description | Required |
|---|---|---|---|
| width | Number | Width in pixels (1–10239) | When size is required |
| height | Number | Height in pixels (1–10239) | When size is required |
Required when the creative type requires dimensions in the payload (e.g. BANNER + TAG). For BANNER+HOSTED, VIDEO, AUDIO, DOOH, size can be omitted or inferred from asset.
Creative type × subtype matrix
| creativeType | creativeSubtype | Description | Type-specific required fields |
|---|---|---|---|
| BANNER | TAG | Custom tag (HTML/JS) | size, htmlAsset (or display.htmlAsset) |
| BANNER | HOSTED | Hosted image banner | imageUrl, landingPageUrl |
| VIDEO | VASTURL | VAST wrapper (URL) | video.vastUrl; type.vendorId often required (e.g. 8) |
| VIDEO | VASTXML | VAST tag (inline XML) | video.vastXml; type.vendorId often required |
| VIDEO | HOSTED | Hosted video | video.mediaUrls, landingPageUrl |
| AUDIO | VASTURL | VAST audio wrapper | audio.vastUrl |
| AUDIO | VASTXML | VAST audio tag | audio.vastXml |
| AUDIO | HOSTED | Hosted audio | audio.mediaUrls, landingPageUrl |
| NATIVE | IMAGE | Native with image | native (headline, caption, sponsoredBy, imageUrl, imageIcon) |
| NATIVE | VASTURL | Native VAST URL | native.vastUrl |
| NATIVE | VASTXML | Native VAST tag | native.vastXml |
| NATIVE | HOSTED | Native hosted video | native.mediaUrls, landingPageUrl. |
| DOOH | IMAGE | DOOH image | dooh.imageUrl |
| DOOH | VIDEO | DOOH video | dooh.mediaUrls |
Type-specific request bodies
Video
- VASTURL:
video.vastUrl(string). - VASTXML:
video.vastXml(string). - HOSTED:
video.mediaUrls(array of strings).
Audio
- VASTURL:
audio.vastUrl(string). - VASTXML:
audio.vastXml(string). - HOSTED:
audio.mediaUrls(array of strings). Optional:audio.daast.
Native
- IMAGE:
native.headline,native.caption,native.sponsoredBy,native.imageUrl,native.imageIcon(typical). - VASTURL / VASTXML / HOSTED:
native.vastUrl,native.vastXml, ornative.mediaUrlsas applicable.
DOOH
- IMAGE:
dooh.imageUrl(string). - VIDEO:
dooh.mediaUrls(array of strings).
Example payloads
Use these as request bodies for POST /creative/save. Replace campaignId, advertiserId, and URLs with your own values.
1. Custom Tag (BANNER + TAG)
HTML/JS third-party or custom tag. Requires size and htmlAsset.
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Custom Tag Banner",
"creativeType": "BANNER",
"creativeSubtype": "TAG",
"type": {
"mediaType": "BANNER"
},
"size": {
"width": 300,
"height": 250
},
"htmlAsset": "<script src=\"https://example.com/ad-tag.js\"></script>"
}2. Hosted Banner (BANNER + HOSTED)
Hosted image with click-through. Requires imageUrl and landingPageUrl. Size is optional.
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Hosted Banner",
"creativeType": "BANNER",
"creativeSubtype": "HOSTED",
"type": {
"mediaType": "BANNER"
},
"imageUrl": "https://placehold.co/300x250.png",
"landingPageUrl": "https://example.com/landing"
}3. Video – VAST URL (VIDEO + VASTURL)
VAST wrapper. video.vastUrl is required by the API.
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Video VAST URL",
"creativeType": "VIDEO",
"creativeSubtype": "VASTURL",
"type": {
"mediaType": "VAST"
},
"size": {
"width": 1920,
"height": 1080
},
"video": {
"vastUrl": "https://example.com/vast.xml"
}
}4. Video – VAST XML (VIDEO + VASTXML)
VAST tag (inline XML).
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Video VAST XML",
"creativeType": "VIDEO",
"creativeSubtype": "VASTXML",
"type": {
"mediaType": "VAST"
},
"size": {
"width": 1920,
"height": 1080
},
"video": {
"vastXml": "<VAST version=\"2.0\"><Ad><InLine>...</InLine></Ad></VAST>"
}
}5. Video – Hosted (VIDEO + HOSTED)
Hosted video file(s). Requires video.mediaUrls.
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Hosted Video",
"creativeType": "VIDEO",
"creativeSubtype": "HOSTED",
"type": {
"mediaType": "VAST"
},
"size": {
"width": 1920,
"height": 1080
},
"video": {
"mediaUrls": ["https://example.com/video.mp4"]
}
}6. Audio – VAST URL (AUDIO + VASTURL)
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Audio VAST URL",
"creativeType": "AUDIO",
"creativeSubtype": "VASTURL",
"type": {
"mediaType": "AUDIO"
},
"audio": {
"vastUrl": "https://example.com/audio-vast.xml"
}
}7. Audio – VAST XML (AUDIO + VASTXML)
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Audio VAST XML",
"creativeType": "AUDIO",
"creativeSubtype": "VASTXML",
"type": {
"mediaType": "AUDIO"
},
"audio": {
"vastXml": "<VAST version=\"2.0\"><Ad><InLine>...</InLine></Ad></VAST>"
}
}8. Audio – Hosted (AUDIO + HOSTED)
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Hosted Audio",
"creativeType": "AUDIO",
"creativeSubtype": "HOSTED",
"type": {
"mediaType": "AUDIO"
},
"audio": {
"mediaUrls": ["https://example.com/audio.mp3"]
},
"landingPageUrl": "https://example.com"
}9. Native – Image (NATIVE + IMAGE)
Native banner with headline, caption, image. Requires native object with headline, caption, sponsoredBy, imageUrl, imageIcon.
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test Native Banner",
"creativeType": "NATIVE",
"creativeSubtype": "IMAGE",
"type": {
"mediaType": "NATIVE"
},
"size": {
"width": 1200,
"height": 627
},
"native": {
"headline": "Headline text",
"caption": "Caption text",
"sponsoredBy": "Brand",
"imageUrl": "https://placehold.co/1200x627.png",
"imageIcon": "https://placehold.co/300x300.png"
},
"landingPageUrl": "https://example.com"
}10. DOOH – Image (DOOH + IMAGE)
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test DOOH Image",
"creativeType": "DOOH",
"creativeSubtype": "IMAGE",
"type": {
"mediaType": "BANNER"
},
"size": {
"width": 1920,
"height": 1080
},
"dooh": {
"imageUrl": "https://example.com/dooh-image.jpg"
}
}11. DOOH – Video (DOOH + VIDEO)
{
"campaignId": 546834,
"advertiserId": 107967,
"name": "Test DOOH Video",
"creativeType": "DOOH",
"creativeSubtype": "VIDEO",
"type": {
"mediaType": "VAST"
},
"size": {
"width": 1920,
"height": 1080
},
"dooh": {
"mediaUrls": ["https://example.com/dooh-video.mp4"]
}
}Response
- 200: Response includes
messages(array) andentity(the created creative object with id, name, type, status, etc.). - 4xx/5xx: Error body per API standards. Validation errors (e.g. missing required field, invalid creativeType/creativeSubtype) are returned in
messages.
Reference
- For mapping of type.id and vendor names, see Creative Type IDs.
401Unauthorized
403Forbidden
404Not Found