Create the Creatives
Create creatives for a specific advertiser
URL: POST/api/v1/creatives
Request Parameters
Parameter | Description | Type | Required | Possible Values |
---|---|---|---|---|
advertiserId | The ID of the specific advertiser | integer | Y | A valid advertiser Id |
metadata | Fields belonging in a creative:
| JSON object | Y | The values:
|
adUnits | Ad units on creative platform: marqueeDesktop, marqueeApp, skylineDesktop, skylineApp, skylineDesktopV2, skylineAppV2, skylineDesktopV3, skylineAppV3, brandboxDesktop, brandboxApp, galleryDesktop, galleryApp Note: Only 8 ad units are required : marqueeDesktop, marqueeApp, skylineDesktop, skylineApp, brandboxDesktop, brandboxApp, galleryDesktop, galleryApp. please consider all others optional Each ad unit contains following fields:
| JSON object | Y | marqueeDesktop marqueeApp skylineDesktop skylineApp skylineDesktopV2 skylineAppV2 skylineDesktopV3 skylineAppV3 brandboxDesktop brandboxApp galleryDesktop galleryApp |
Creative Ad Unit Character Limits
Character limits vary across the various ad units, refer to the tables below for character length limits per ad unit.
marqueeDesktop / tablet
Text | Character Limit | Required/Optional |
---|---|---|
headline | 25 | Required |
subhead | 55 | Required |
cta | 16 | Required |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Required |
logoAltText | 150 | Required |
marqueeApp
Text | Character Limit | Required/Optional |
---|---|---|
headline | 25 | Required |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Required |
logoAltText | 150 | Required |
skylineDesktop
Text | Character Limit | Required/Optional |
---|---|---|
headline | 25 | Required |
subhead | 30 | Optional |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Optional |
logoAltText | 150 | Required |
skylineApp
Text | Character Limit | Required/Optional |
---|---|---|
headline | 25 | Required |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
logoAltText | 150 | Required |
skylineDesktopV2
Text | Character Limit | Required/Optional |
---|---|---|
headline | 35 | Required |
subhead | 40 | Optional |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Optional |
logoAltText | 150 | Required |
skylineAppV2
Text | Character Limit | Required/Optional |
---|---|---|
headline | 35 | Required |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
logoAltText | 150 | Required |
skylineDesktopV3
Text | Character Limit | Required/Optional |
---|---|---|
headline | 35 | Required |
subhead | 40 | Optional |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Required |
logoAltText | 150 | Required |
skylineAppV3
Text | Character Limit | Required/Optional |
---|---|---|
headline | 35 | Required |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Required |
logoAltText | 150 | Required |
brandboxDesktop
Text | Character Limit | Required/Optional |
---|---|---|
headline | 25 | Required |
subhead | 55 | Required |
cta | 16 | Required |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Required |
logoAltText | 150 | Required |
brandboxApp
Text | Character Limit | Required/Optional |
---|---|---|
headline | 25 | Required |
subhead | 55 | Required |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Required |
logoAltText | 150 | Required |
galleryDesktop full/mini
Text | Character Limit | Required/Optional |
---|---|---|
headline | 25 | Required |
subhead | 55 | Required |
cta | 16 | Required |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Required |
logoAltText | 150 | Required |
galleryApp
Text | Character Limit | Required/Optional |
---|---|---|
headline | 25 | Required |
cta | 16 | Required |
legalDisclaimerText | 600 | Optional |
legalDisclaimerLabel | 12 | Optional |
legalDisclaimerPopUpCopy | 600 | Optional |
imageAltText | 150 | Required |
logoAltText | 150 | Required |
Please refer to the Appendix to find the required, optional, and non-required assets for each ad unit
Sample Error Messages Thrown for Create Creative API
Scenario | Error Message |
---|---|
field not found | $.<fieldName>: null found, string expected |
text validations |
|
Headers
Header Name | Description | Required | Values |
---|---|---|---|
Authorization | The token will provide you the access to the API. It is same for all advertisers you access through the API. | Y | Please utilize the generated auth_token shared with you at the time of partner onboarding from the Getting Started Guide |
WM_CONSUMER.ID | We will provide you the consumer ID to access the API. It is same for all advertisers you access through the API. | Y | Please use the generated ConsumerId shared with you at the time of partner onboarding. Refer to the Getting Started Guide for more information |
WM_SEC.AUTH_SIGNATURE | Auth signature as an API key. | Y | Use the signature generator code from Getting Started Guide to generate this value |
WM_SEC.KEY_VERSION | We will provide you with the KEY VERSION to access the API. It is same for all advertisers you access through the API. | Y | 1 |
WM_CONSUMER.intimestamp | Timestamp for which the auth signature is generated. Use Unix epoch format for the timestamp. | Y | Use the signature generator code from Getting Started Guide to generate this value |
Sample Request: Create Creative
curl -X POST \
'https://developer.api.us.stg.walmart.com/api-proxy/service/display/api/v1/creatives' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <auth_token>' \
--header 'WM_SEC.AUTH_SIGNATURE: **************' \
--header 'WM_SEC.KEY_VERSION: 1' \
--header 'WM_CONSUMER.ID: adfwe-v23-faasd2r-afs-asdfqeff' \
--header 'WM_CONSUMER.intimestamp: 1565309779' \
--data '{ "advertiserId": 123, "metadata": { "name": "New Creative", "folderId": "1a15de37-47c1-53ad-7c1a-2481d3c7a123", "templateId": "436" }, "adUnits": { "marqueeDesktop": { "headline": "Buy our product", "subhead": "It is cool", "cta": "NOW!", "imageAltText": "A picture of our product", "logoAltText": "Our company'\''s logo", "legalDisclaimerText": "Some text", "legalDisclaimerLabel": "Legal Disclaimer", "legalDisclaimerPopUpCopy": "Body for the pop up disclaimer", "variantId": "436", "images": [ { "name": "desktopImage", "assetId": "<assetId>", "crop": { "focal": { "x": 0, "y": 0 }, "rectangular": { "x": 0, "y": 0, "w": 0, "h": 0 } } }, { "name": "desktopLogo", "assetId": "<assetId>" } ] }, "marqueeApp": { "headline": "Buy our product", "subhead": "It is cool", "cta": "NOW!", "imageAltText": "A picture of our product", "logoAltText": "Our company'\''s logo", "legalDisclaimerText": "Some text", "variantId": "436", "images": [ { "name": "mobileImage", "assetId": "<assetId>" }, { "name": "mobileLogo", "assetId": "<assetId>" } ] }, "skylineDesktop": { "headline": "Buy our product", "subhead": "It is cool", "cta": "NOW!", "imageAltText": "A picture of our product", "logoAltText": "Our company'\''s logo", "legalDisclaimerText": "Some text", "variantId": "436", "images": [ { "name": "desktopImage", "assetId": "<assetId>" }, { "name": "desktopLogo", "assetId": "<assetId>" } ] }, "skylineApp": { "headline": "Buy our product", "subhead": "It is cool", "cta": "NOW!", "imageAltText": "A picture of our product", "logoAltText": "Our company'\''s logo", "legalDisclaimerText": "Some text", "variantId": "436", "images": [ { "name": "mobileImage", "assetId": "<assetId>" }, { "name": "mobileLogo", "assetId": "<assetId>" } ] }, "skylineDesktopV2": { "headline": "Gentle & soft", "subhead": "Your subhead goes here", "logoAltText": "Parents Choice logo", "backgroundColorHex": "#abcdef", "textColor": "gray", "imageAltText": "image alt text", "legalDisclaimerText": "Disclaimer text", "legalDisclaimerLabel": "Disclaimer", "legalDisclaimerPopUpCopy": "Popup Disclaimer text", "images": [ { "name": "desktopImage", "assetId": "<asset_id>" }, { "name": "desktopLogo", "assetId": "<asset_id>" } ] }, "skylineAppV2": { "headline": "Gentle & soft", "logoAltText": "Parents Choice logo", "backgroundColorHex": "#000000", "textColor": "white", "imageAltText": "image alt text", "legalDisclaimerText": "Disclaimer text", "legalDisclaimerLabel": "Disclaimer", "legalDisclaimerPopUpCopy": "Popup Disclaimer text", "images": [ { "name": "mobileImage", "assetId": "<asset_id>" }, { "name": "mobileLogo", "assetId": "<asset_id>" } ] }, "skylineDesktopV3": { "headline": "Gentle & soft", "subhead": "Your subhead goes here", "logoAltText": "Parents Choice logo", "backgroundColorHex": "#abcdef", "textColor": "gray", "imageAltText": "image alt text", "legalDisclaimerText": "Disclaimer text", "legalDisclaimerLabel": "Disclaimer", "legalDisclaimerPopUpCopy": "Popup Disclaimer text", "images": [ { "name": "desktopImage", "assetId": "<asset_id>" }, { "name": "desktopLogo", "assetId": "<asset_id>" } ] }, "skylineAppV3": { "headline": "Gentle & soft", "logoAltText": "Parents Choice logo", "backgroundColorHex": "#000000", "textColor": "white", "imageAltText": "image alt text", "legalDisclaimerText": "Disclaimer text", "legalDisclaimerLabel": "Disclaimer", "legalDisclaimerPopUpCopy": "Popup Disclaimer text", "images": [ { "name": "mobileImage", "assetId": "<asset_id>" }, { "name": "mobileLogo", "assetId": "<asset_id>" } ] }, "brandboxDesktop": { "headline": "Buy our product", "subhead": "It is cool", "cta": "NOW!", "imageAltText": "A picture of our product", "logoAltText": "Our company'\''s logo", "legalDisclaimerText": "Some text", "variantId": "436", "images": [ { "name": "desktopImage", "assetId": "<assetId>" }, { "name": "desktopLogo", "assetId": "<assetId>" } ] }, "brandboxApp": { "headline": "Buy our product", "subhead": "It is cool", "cta": "NOW!", "imageAltText": "A picture of our product", "logoAltText": "Our company'\''s logo", "legalDisclaimerText": "Some text", "variantId": "436", "images": [ { "name": "mobileImage", "assetId": "<assetId>" }, { "name": "mobileLogo", "assetId": "<assetId>" } ] }, "galleryDesktop": { "headline": "Buy our product", "subhead": "It is cool", "cta": "NOW!", "imageAltText": "A picture of our product", "logoAltText": "Our company'\''s logo", "legalDisclaimerText": "Some text", "variantId": "436", "images": [ { "name": "desktopImage", "assetId": "<assetId>" }, { "name": "desktopLogo", "assetId": "<assetId>" } ] }, "galleryApp": { "headline": "Buy our product", "subhead": "It is cool", "cta": "NOW!", "imageAltText": "A picture of our product", "logoAltText": "Our company'\''s logo", "legalDisclaimerText": "Some text", "variantId": "436", "images": [ { "name": "mobileImage", "assetId": "<assetId>" }, { "name": "mobileLogo", "assetId": "<assetId>" } ] }, }
}'
Response
Element | Description | Type |
---|---|---|
code | The response code can have following values:
Click here for more information about Status Codes and Errors | string |
details | Possible values of details:
| string |
creativeId | ID of the creative. It is returned in response only if code=success | string |
message | Details of the error if value of code is failure and validation errors were found | string |
Sample Response 1
[ { "code": "success", "details": ["success"], "creativeId": "e02a09b2-1e3c-2g22-bf47-8a123c35002a" }
]
Sample Response 2
[ { "code": "failure", "details": ["CREATIVE_VALIDATION_ERROR"], "message":"Found 8 validation error(s).\n$.adUnits.marqueeDesktop.headline: must be at least 1 characters long $.adUnits.marqueeDesktop.subhead does not end with a period(.), exclamation(!), question(?), or an asterisk(*). $.adUnits.marqueeDesktop.cta does not follow sentence casing. $.adUnits.marqueeDesktop.imageAltText: must be at least 1 characters long\n $.adUnits.marqueeDesktop.logoAltText: must be at least 1 characters long $.adUnits.marqueeDesktop.images: null found, array expected\n Disclaimer Pop up copy and Label should be used together. $.metadata.templateId: does not have a value in the enumeration [436]" }
]
Sample Response 1 - Failure
[ { "code": "failure", "message": "Found 1 validation error(s).n$.adUnits.skylineDesktopV3.backgroundColorHex: should be a valid hexadecimal color code", "details": [ "CREATIVE_VALIDATION_ERROR" ] }
]
Sample Response 2 - Failure
[ { "code": "failure", "message": "Found 1 validation error(s). $.adUnits.skylineDesktopV3.textColor:text color can only be 'white' or 'gray' ", "details": [ "CREATIVE_VALIDATION_ERROR" ] }
]
Note: textColor and backgroundColorHex must meet WCAG contrast requirements.
Sample Response 3 - Failure
[ { "code": "failure", "message": "Found 1 validation error. Background color does not meet WCAG contrast requirements with the provided text color. Please choose a different combination.", "details": [ "CREATIVE_VALIDATION_ERROR" ] }
]
Note: backgroundColorHex will be validated to not be within a tolerance zone of any Walmart reserved color. If validation does not pass, some related colors will be suggested.
Sample Response 4 - Failure
[ { "code": "failure", "message": "Found 1 validation error. Background color violates Walmart color guidelines: #ff0000. nHere are some color suggestions: #ED013B, #E40038, #DB0230, #D2012E, #C80226, #BF011E, #C00018, #B7000F, #B70006, #B50B00, #B01D00, #B32A00, #AF3100, #B33900, #BA4900, #C24D01, #C65401", "details": [ "CREATIVE_VALIDATION_ERROR" ] }
]
Sample Response 5 - Failure
[ { "code": "failure", "message": "Found 1 validation error. Text color 'white' is not valid with default background color (#F8F8F8)due to WCAG contrast requirements.", "details": [ "CREATIVE_VALIDATION_ERROR" ] }
]
Updated 7 days ago