Campaign API provides capability to retrieve, create, update and delete campaigns for a specific advertiser.
Usage:
To retrieve a specific campaign or all the campaigns for a specific advertiser
To create a new campaign in a draft state for a specific advertiser
To update an existing campaign
Limitations:
A maximum of 50 campaigns can be created/updated in a single POST/PUT batch request
A maximum of 50 campaigns can be deleted in a single PUT batch request
Limit on length of campaign name is 255 characters
There is no limit on number of ad groups to be created within a campaign
There is no limit on the amount of daily budget that can carry forward to the next day
If the daily budget is defined, unspent budget from the present day will be carried forward to the next day. Maximum budget spent on a given day will be limited to twice of the set daily Budget amount
Campaigns go live at PST midnight of the scheduled start date
Maximum number of campaigns that an advertiser can create per advertiser account is 5000
Details about ‘Request Header' and 'Authorization’ are available in the
Authorization Guide
List All the Campaigns
Description: Retrieve a specific campaign or all the campaigns for a specific advertiser. Deleted campaigns will not be included.
End Point: /api/v1/campaigns
HTTP Method: GET
Query Parameters
Parameter
Description
Type
Required
Possible Values
campaignId
The ID of the campaign. It returns a specific campaign in response
Integer
N
A valid campaign ID
advertiserId
The ID of the advertiser. It returns all campaigns run by specific advertiser in response
Integer
Y
Advertiser ID for which the campaign(s) is(are) to be retrieved
filter[name]
A valid campaign name with which the desired campaign can be searched in the absence of campaign id
String
N
Provide a campaign name to search the relevant campaign by name instead of campaign Id.
filter[lastModifiedDate]
Provide a date to fetch only those campaigns which were modified on or after that date Note: Modified here means: If there was any change to campaign set up
Type of campaign. Possible values for campaign type are: sponsoredProducts, sba Note: You receive campaign type “sba” in association with targeting type “manual” (for Search Brand Amplifier campaigns)
String
targetingType
The targeting type of the campaign is a set of options to create campaigns with different bidding types. Possible values to targeting type are: manual, auto Note: You receive targeting type as “manual” in case of keyword bidding campaigns (including Search Brand Amplifier)
String
status
Specified status of campaign. Possible status values are: Proposal, Scheduled, Rescheduled, Live, Paused, Completed, Deleted Note: If you extend an already completed campaign, the campaign status will change to “rescheduled” and will eventually switch to “live”
Object
budgetType
The type of budget allocation chosen for this campaign. Possible values of budgetType are: Daily, Total, Both
String
startDate
The date to start campaign
Date
endDate
The date when Campaign ends. It returns value 9999-12-30 if running indefinitely
Date
totalBudget
Total budget of campaign
Double
dailyBudget
Daily budget of campaign
Double
rollover
The indicator to suggest if the unspent daily budget from the previous day should be carried forward to next day’s daily budget or not. The default and only value of rollover is “true” at present.
Boolean
campaignId
The ID of the campaign
Integer
advertiserId
The ID of the advertiser for which the campaign is retrieved
Description: Create a new campaign in a draft state for a specific advertiser.
End Point: /api/v1/campaigns
HTTP Method: POST
Query Parameters
Parameter
Description
Type
Required
Possible Values
advertiserId
The ID of the advertiser for whom the ad group(s) should be returned
Integer
Y
Unique numeric identifier
Body Parameters
Parameter
Description
Type
Required
Possible Values
name
The name of the campaign
Integer
N
The campaign name should be unique and correspond to the campaign ID
status
Specified status of the campaign
String
N
enabled: use this status to schedule a paused campaign paused: use this status to pause a live campaign completed: use this status to end a live campaign extend: You can resume an already completed campaign to reuse it without having to create same campaign again with help of “extend” proposal: use this status when a scheduled campaign which has never gone live, has been modified and needs to be re-submitted for review
For more details, please refer Note section below the table
campaignType
Type of campaign. Possible values for campaign type are: sponsoredProducts sba
String
N
sba, keyword
Note: You receive campaign type “sba” in association with targeting type “manual” (for Search Brand Amplifier campaigns)
targetingType
The targeting type of the campaign is a set of options to create campaigns with different bidding types.
String
N
Possible values to targeting type are: manual auto
Note: You receive targeting type as “manual” in case of keyword bidding campaigns (including Search Brand Amplifier)
startDate
The date to start campaign
date
N
Date should be in format: yyyy-mm-dd
endDate
The date when Campaign ends. You can choose to run the campaign indefinitely as well
date
N
To run campaign indefinitely, set its value as 9999-12-30
budgetType
The type of budget allocation you want to choose for your campaign.
String
N
Possible values: daily, total, both
totalBudget
Total budget of campaign
double
N
For 1p seller: The value of Total budget should at least be $100
dailyBudget
Daily budget of campaign.
Note: Daily budget cannot exceed your total budget amount There is no limit on the amount of daily budget that can carry forward to the next day
double
N
For 1p seller: The value of daily budget should at least be $50
rollover
The indicator to suggest if the unspent daily budget from the previous day should be carried forward to next day’s daily budget
boolean
N
Possible values: true
Note: Currently rollover only accepts “true” as a value. However, in future it may be updated to accept “false” as well.
advertiserId
The ID of the advertiser. It returns all campaigns run by specific advertiser in response
Integer
Y
Advertiser ID for which the campaign(s) is(are) to be retrieved
Note:
The status parameter - When you try to enable a Search Brand Amplifier (SBA) campaign in “paused” or “proposal” status, and if the campaign is not eligible to go live, the error message will specifically outline the criteria that campaign fails to meet, which could be either or a combination of these:
SBA Profile enabled and approved
Items enabled and approved
Keyword enabled and approved
Proposal status is only applicable for SBA campaigns. Post review completion, the campaign status will automatically change to “enabled” then “scheduled” and finally to “live”. However, the campaign must be eligible to go live. A campaign can only go “live” when its start date is defined and following are approved - SBA Profile, Items & Keyword. If a campaign review is revised for SBA Profile such that the SBA Profile is rejected by MAP team, the campaign will be “paused”. A “paused” campaign cannot stay “live” or cannot be auto scheduled. If this happens, you need to change the campaign profile as per guidelines and resubmit it for review. If you extend an ended campaign, the system will auto-change the status to “rescheduled” and then to “live” as per the defined start date for campaign. A campaign can be auto scheduled only if it is in “proposal” status.
Campaign end date should be greater than or equal to today's date
Total budget validation failed. The total budget should be between $1000 and $1 Million.
Daily budget validation failed. The daily budget should be between $100 and Total Campaign Budget .
Advertiser Id validation failed
Channel validation failed, valid values are WALMARTs and ONLINE_GROCERY .
Daily Budget cannot be more than Total Budget
Empty Input
Invalid campaign name
advertiser Id not found.
Advertiser Id: <advertiserId> is not eligible for this type of campaign. Please ensure that your brand is registered as an approved brand with brandportal.walmart.com before submitting this campaign create request.
Advertiser <advertiserId> is not eligible for passing dynamic bidding attribute
Advertiser <advertiserId> is not allowed to use this feature
Budget type validation failed. Please send a valid budget type value.
You have exceeded the maximum number of 5000 campaigns per account. Please end existing campaigns to continue.
403
Forbidden
User not Authenticated
AdOps role does not access to any campaigns
You do not have access to create this campaign
429
Too Many Requests
<Exception Message>
500
Internal Server Error
There was an error processing the request
Update Existing Campaigns
Description: Update an existing campaign
End Point: /api/v1/campaigns
HTTP Method: PUT
Query Parameters
Parameter
Description
Type
Required
Possible Values
advertiserId
The ID of the advertiser. It returns all campaigns run by specific advertiser in response
Integer
N
Advertiser ID for which the campaign(s) is(are) to be retrieved
Body Parameters
Parameter
Description
Type
Required
Possible Values
campaignId
The ID of the campaign. It returns a specific campaign in response
Integer
Y
A valid campaign ID
name
Name of the campaign
String
Y
Relevant String value representing the ad group
status
Specified status of campaign
Object
Y
Possible status values are: Proposal, Scheduled, Rescheduled, Live, Paused, Completed, Deleted
Campaign end date should be greater than or equal to today's date
Start date should be before end date
Budget type validation failed
Advertiser Id validation failed
Channel is invalid parameter while updating campaign
Campaign is not schedulable
EMPTY INPUT
Invalid campaign name
Campaign is rescheduled to proposal status due to:<Exception Message>
403
Forbidden
User not Authenticated
you do not have access to update this campaign
404
Not Found
Campaign not found
422
Operation Not Allowed
You can only refresh a completed campaign
Campaign cannot be updated in current state
429
Too Many Requests
<Exception Message>
500
Internal Server Error
There was an error processing the request
Delete Existing Campaigns
Description: Delete an existing campaign and its ad groups if campaign is scheduled but hasn’t gone live. You cannot delete a campaign that has gone live.
Notes:
It allows you to delete one or more campaigns
You will be able to delete any campaign which has never gone Live
Once campaigns go live:
They cannot be deleted
Ad Items/Ad Groups/Keywords in the campaign cannot be deleted, but they can be disabled
Campaign start date and end date cannot be changed
End Point: /api/v1/campaigns/delete
HTTP Method: PUT
Query Parameters
Parameter
Description
Type
Required
Possible Values
advertiserId
The ID of the advertiser. It returns all campaigns run by specific advertiser in responsen
Integer
N
Advertiser ID for which the campaign(s) is(are) to be retrieved