Campaign recommendations
Overview
The Search Engine Marketing (SEM) campaign recommendations API enables sellers to optimize campaign performance by providing budget and bidding strategy recommendations derived from campaign performance signals. Recommendations are generated for eligible active campaigns.
Use cases
This API allows you to:
- Optimize campaign budgets and bidding strategies
- Improve ROAS through data-driven recommendations
- Prioritize high-impact campaigns by projected impact metrics
Key data considerations
- Recommendations are generated only for eligible active campaigns. Inactive or ineligible campaigns will not return results.
- Projected metrics are estimates. Actual performance may vary based on campaign activity, inventory availability, and market conditions.
- Recommendations may suggest budget adjustments, bidding strategy changes, or both, depending on campaign eligibility.
- Poll this endpoint periodically to surface the most current optimization opportunities.
Endpoint
POST /v3/advertising/sem/campaigns/recommendations/searchSupported filters
| Filter field | Description |
|---|---|
campaignIds | Filter by campaign IDs |
recommendationType | Filter by BUDGET or BIDDING_STRATEGY |
Supported sorting
| Field | Orders |
|---|---|
adspend | ASC, DESC |
Recommendation types
| Recommendation type | Description |
|---|---|
BUDGET | Budget increase or adjustment recommendations |
BIDDING_STRATEGY | Bidding strategy optimization recommendations |
Request sample
curl --request POST \ --url 'https://marketplace.walmartapis.com/v3/advertising/sem/campaigns/recommendations/search' \ --header 'WM_QOS.CORRELATION_ID: b3261d2d-028a-4ef7-8602-633c23200af6' \ --header 'WM_MARKET: US' \ --header 'WM_SVC.NAME: Walmart Marketplace' \ --header 'WM_SEC.ACCESS_TOKEN: <Your_access_token>' \ --header 'WM_GLOBAL_VERSION: 3.1' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "page": { "offset": 0, "limit": 10 }, "filters": [ { "field": "recommendationType", "values": ["BUDGET"] } ] }'import requests url = "https://marketplace.walmartapis.com/v3/advertising/sem/campaigns/recommendations/search" headers = { "WM_QOS.CORRELATION_ID": "b3261d2d-028a-4ef7-8602-633c23200af6", "WM_MARKET": "US", "WM_SVC.NAME": "Walmart Marketplace", "WM_SEC.ACCESS_TOKEN": "<Your_access_token>", "WM_GLOBAL_VERSION": "3.1", "Accept": "application/json", "Content-Type": "application/json"
} payload = { "page": { "offset": 0, "limit": 10 }, "filters": [ { "field": "coopRecommendationType", "values": ["BUDGET"] } ]
} response = requests.post(url, headers=headers, json=payload)
print(response.json())Modify your code
You can customize recommendation queries by:
- Filtering by campaign IDs
- Retrieving only
BUDGETorBIDDING_STRATEGYrecommendations - Sorting campaigns by
adspend - Adjusting pagination values
Example customization
{ "sort": { "field": "adspend", "order": "DESC" }
}Response sample
{ "pagination": { "pageNo": 0, "pageSize": 10, "totalCount": 1, "totalPages": 1, "hasNextPage": false, "hasPreviousPage": false }, "data": [ { "campaignId": "2085840575", "name": "Electronics Growth Campaign", "dailyBudget": 1000, "campaignRecommendations": [ { "type": "BUDGET", "subType": "INCREASE_DAILY_BUDGET", "recommendedValue": "2400.0" } ] } ]
}Results
A successful response returns paginated campaign-level recommendations for active SEM campaigns. Each campaign includes current settings and one or more recommendations with projected performance impact metrics.
Error handling
| Status code | Description | Remediation |
|---|---|---|
400 | Invalid request parameters | Validate filters, sort fields, and paging values |
401 | Unauthorized | Verify access token |
403 | Forbidden | Confirm SEM access permissions |
422 | Unprocessable entity | Validate request body structure |
429 | Rate limit exceeded | Retry later |
500 | Internal server error | Retry request |
503 | Service unavailable | Retry with exponential backoff |
Best practices
- Review projected metrics before applying any recommendation
- Prioritize recommendations with the highest projected click or impression lift
- Retrieve recommendations on a regular cadence to catch new optimization opportunities
- Implement an approval workflow before enabling any auto-apply logic
- Surface recommendation data in campaign dashboards for visibility across your team

