Create new campaign
Create a new campaign using this method. Successfully created campaigns will be assigned a unique campaign ID.
URL: POST/api/v1/campaigns
Note:
- This API supports batch operations with a max batch size of 10. For bulk operation, the advertiser Id must be the same across all requests in the payload.
- You must set all of budgetType, dailyBudget, totalBudget, startDate, endDate, and deliverySpeed parameters at same level i.e. either at campaign level or ad group level
Request Parameters
Parameters | Notes | Type | Required | Possible Values |
---|---|---|---|---|
advertiserId | ID of advertiser whose campaign is to be scheduled | integer | Y | Advertiser ID for which the campaign is to be created |
name | The name of the campaign Note: Limit on length of campaign name is 240 characters | integer | Y | The campaign name should be unique |
description | Campaign description Note: Limit on length of campaign description is 240 characters | string | N | Provide valid description corresponding to campaign type |
objective | Campaign objective | string | N | Values: • awareness • engagement • conversion Note: Default value for objective will be awareness, unless specified |
campaignType | The type of the campaign | string | N | Values of campaignType: ngd |
startDate | The date to start campaign Note: it must be set either at campaign or ad group level | date | Conditional.This field is required only if it is not set at ad group level. Cannot be changed to ad group level later. | Date should be in format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX Note: All date and time values are internally converted to Eastern Time (ET) for processing. Timestamps provided in ISO 8601 format will be normalized to the start of the day in ET (i.e., hours, minutes and seconds are truncated). Please account for this when scheduling start and end dates. |
endDate | The date when campaign ends Note: it must be set either at campaign or ad group level | date | Conditional.This field is required only if it is not set at ad group level. Cannot be changed to ad group level later. | Date should be in format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX To run campaign indefinitely, set its value as ‘9999-12-30T00:00:00Z’ Note: All date and time values are internally converted to Eastern Time (ET) for processing. Timestamps provided in ISO 8601 format will be normalized to the start of the day in ET (i.e., hours, minutes and seconds are truncated). Please account for this when scheduling start and end dates. |
budgetType | The type of budget allocation you want to choose for your campaign Note: it must be set either at campaign or ad group level Campaigns scheduled to run indefinitely must use a daily budget | string | Conditional.This field is required only if it is not set at ad group level. Cannot be changed to ad group level later. | Values: - daily - total |
dailyBudget | Daily budget of campaign Note: • Daily budget cannot exceed your total budget amount • Up to 20% of the unspent budget will be rolled over to the next day • It must be set either at campaign or ad group level • Campaigns scheduled to run indefinitely must use a daily budget | double | Conditional. This field is required only if: -It is not set at ad group level. Cannot be changed to ad group level later. -budgetType is set to be daily | The value of daily budget should at least be $0.01 Note: This field is required only if budgetType is set to be dailyBudget |
totalBudget | Total budget of campaign Note: it must be set either at campaign or ad group level | double | Conditional. This field is required only if: -It is not set at ad group level. Cannot be changed to ad group level later. -budgetType is set to be total | The value of total budget should at least be $0.01 Note: This field is required only if budgetType is set to be totalBudget |
deliverySpeed | Determines pacing of ad delivery Note: it must be set either at campaign or ad group level | Conditional. This field is required only if it is not set at ad group level. Cannot be changed to ad group level later. | Values: • frontloaded • evenly Note: frontloaded pacing is not supported if budgetType is daily |
_Note:
• You can only set either dailyBudget or totalBudget
• To set daily budget, you must choose value of budgetType as “daily” and then define dailyBudget.
• To set total budget, you must choose value of budgetType as “total” and then define totalBudget.
• Budget, Schedule and Delivery speed must be set either at campaign or ad group level
• You must set all of budgetType, dailyBudget, totalBudget, startDate, endDate, and deliverySpeed parameters at
same level i.e. either at campaign level or ad group level, not both
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. This key can be repurposed for SP API access as well. |
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 further explanation on this |
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_CONSUMER.intimestamp | Timestamp for which the auth signature is generated. Use Unix epoch format for the timestamp | Y | Use the signature generator code (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 |
Sample Request
curl -X POST \ 'https://developer.api.us.stg.walmart.com/api-proxy/service/display/api/v1/api/v1/campaigns' \ --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": 1, "name": "string", "description": "string", "objective": "string", "campaignType": "ngd", "startDate": "string", "endDate": "string", "budgetType": "string", "dailyBudget": 0.0, "totalBudget": 0.0, "deliverySpeed": "string" } ]'
Sample Request (Batch Operation)
curl -X POST \ 'https://developer.api.us.stg.walmart.com/api-proxy/service/display/api/v1/api/v1/campaigns' \ --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": 1, "name": "string", "description": "string", "objective": "string", "campaignType": "ngd", "startDate": "string", "endDate": "string", "budgetType": "string", "dailyBudget": 0.0, "totalBudget": 0.0, "deliverySpeed": "string" }, { "advertiserId": 1, "name": "string", "description": "string", "objective": "string", "campaignType": "ngd", "startDate": "string", "endDate": "string", "budgetType": "string", "dailyBudget": 0.0, "totalBudget": 0.0, "deliverySpeed": "string" }
]'
Response
Element | Description | Type |
---|---|---|
code | The response code can have following values:
Click here for more information about Status Codes and Errors | string |
details | Details will populate success or error message depending upon value of code | string |
campaignId | ID of the campaign. This will be returned only when code=success | integer |
name | Name of the campaign | string |
Sample Response
[ { "code": "success", "details": ["string"], "name": "string1", "campaignId": 1 } ]
Sample Response (Batch Operation)
[ { "code": "success", "details": ["string"], "name": "string1", "campaignId": 1 }, { "code": "failure", "details": ["stringA", "stringB"], "name": "string1" } ]
Updated 5 days ago