Create Creative
What is a Creative?
As described in the Creatives section of this guide, a creative contains detailed information about a specific ad, such as ad size, URL, format, and other fields. When you set up a flight with ads, creatives become an important part of the flight, since this is where the information about the ad is kept.
API Syntax
When using the Create Creative API, it is important to understand the syntax required to make the request. Because the Kevel API is a RESTful API, there is a specific request format that must be followed to ensure the endpoint can process the request. The format is:
POST https://api.kevel.co/v1/creative
Where:
POST- the type of API request being made.
https://api.kevel.co- the URL for the request.
v1- the API version.
creative- the API endpoint being called.
Creative Parameter Fields
The Create Creative API call is a POST call, meaning you must enter a number of body parameters as part of the request before calling the endpoint. These parameters enable you to specify the fields included in the creative. Although there are many different parameters you can add as part of the request, there are several required fields that must be part of the request in order to create the creative. These fields are:
- AdvertiserId
- The ID of the Advertiser.
- AdTypeId
- The ad size's ID. More info here.
- isActive
- Specifies whether creative is eligible to serve.
Enabling Creatives To Be Served
In order to have a creative be eligible to serve, you must use the Creative Flight Maps (Ads) endpoints. These endpoints will map the creative to a flight's ad.
Uploading Creatives
You may also choose to upload a creative to Kevel so it is hosted on the Kevel site. To upload a creative, use the Upload Creative Image endpoint after the creative has been created.
AdvertiserId
int32
required
The ID of the Advertiser.
AdTypeId
int32
required
The ad size's ID. More info here.
IsActive
boolean
required
Specifies whether creative is eligible to serve.
Title
string
A short description of creative (in UI, it is called 'Friendly Name'). Max 500 characters.
ImageName
string
The file name as it is stored in our database. It is not needed to create a creative, but it will be passed back in the result view. If the string is manually entered, it will result in a null string.
Body
string
This is the body text associated with AdType 1 (in UI it's called "Text"). If AdType1 is not being used, pass an empty string: "".
Url
string
The click URL. Max length is 2000 characters. Must not contain leading or trailing spaces.
Alt
string
Alt text. The maximum length is 500 characters after HTML-encoding the value.
IsDeleted
boolean
Specifies whether creative is deleted.
IsHTMLJS
boolean
Specifies whether to override image with HTML or JavaScript ad. If true = the ScriptBody field should have value.
ScriptBody
string
If IsHTMLJS = true, then this field needs to be filled with a HTML/JavaScript ad.
Metadata
string
Adds custom metadata to your creative. Note that this should be a JSON object in a string, for example: { ... "Metadata": "{ \"foo\":1234 }" } The entire Metadata string must be url encoded to support URLs and special characters that can break the JSON object. Maximum character limit of 1000 characters.
ImageLink
string
The URL of an image hosted remotely. Use if you are serving an image file without uploading it to Kevel's CDN or calling it in the ScriptBody
SaveEmptyCreative
boolean
If set to true, this allows you to save or update a creative that contains no ScriptBody or Metadata. Note that SaveEmptyCreative is not a database field on the creative object, but is instead an option when creating or updating creatives. This means that the SaveEmptyCreative parameter will always be returned as null once a creative has been created.
IsNoTrack
boolean
Indicates that a creative originating from a third-party (i.e. it uses third-party ad tags) is EFF Do Not Track compliant. Can only be used if DNT is enabled for your account.
IsNetworkAd
boolean
Indicates that a creative originates from a third-party source (such as an ad network) that will serve multiple ads. (BETA)
TemplateId
int32
If you are using a creative template, specifies which template to use. IDs can be retrieved from the Creative Template API.
TemplateValues
string
If you are using a creative template, sets the values for the fields in the creative. Fields must match the TemplateId and the object must be wrapped in a string. For example: "{\"ctString\":\"A string goes here\",\"ctExternalFile\":\"http://cdn.com/ad.gif\"}"
``200 200
object
Id
integer
Defaults to 0
Title
string
ImageName
string
Url
string
Body
string
AdvertiserId
integer
Defaults to 0
IsActive
boolean
Defaults to true
AdTypeId
integer
Defaults to 0
Alt
string
IsDeleted
boolean
Defaults to true
IsSync
boolean
Defaults to true
IsHTMLJS
boolean
Defaults to true
ScriptBody
string
Metadata
string
ImageLink
string
IsNoTrack
boolean
Defaults to true
IsNetworkAd
boolean
Defaults to true
Updated 10 months ago
A minimally viable creative. Note that it includes no Title or creative contents.
curl -X POST -H 'X-Adzerk-ApiKey:<API-KEY>' -H "Content-Type:application/json" "https://api.kevel.co/v1/creative" --data-binary '{"AdvertiserId":12345,"AdTypeId":5,"IsActive":true}'
A minimally viable image creative without an uploaded image (to upload an image, see "Upload Creative Image"):
curl -X POST -H 'X-Adzerk-ApiKey:<API-KEY>' -H "Content-Type:application/json" "https://api.kevel.co/v1/creative" --data-binary '{"AdvertiserId":12345,"AdTypeId":5,"Title":"Image Creative","Url":"http://adzerk.com","Body":"","IsActive":true}'
A minimally viable image creative with an externally hosted image:
curl -X POST -H 'X-Adzerk-ApiKey:<API-KEY>' -H "Content-Type:application/json" "https://api.kevel.co/v1/creative" --data-binary '{"AdvertiserId":12345,"AdTypeId":5,"Title":"Image Creative","Url":"http://adzerk.com","Body":"","IsActive":true,"ImageLink":"http://cdn.com/ad.gif"}'
A minimally viable JS/HTML creative:
curl -X POST -H 'X-Adzerk-ApiKey:<API-KEY>' -H "Content-Type:application/json" "https://api.kevel.co/v1/creative" --data-binary '{"AdvertiserId":12345,"AdTypeId":5,"Title":"JS/HTML Creative","IsActive":true,"ScriptBody":"Creative contents","IsHTMLJS":true}'
A minimally viable Static Text Link creative:
curl -X POST -H 'X-Adzerk-ApiKey:<API-KEY>' -H "Content-Type:application/json" "https://api.kevel.co/v1/creative" --data-binary '{"AdvertiserId":12345,"AdTypeId":20,"IsActive":true,"Title":"Static Text Link example","Url":"http://adzerk.com"}'