Request delivery estimate
Use this endpoint to model performance metrics prior to activation.
Overview
Use the Delivery Estimate API to forecast projected delivery performance for a specific ad group configuration before launch.
Delivery estimates help you understand the potential range of impressions, clicks, ad spend, and orders based on current or simulated ad group settings.
This endpoint is commonly used to validate whether an ad group configuration is likely to deliver enough scale and performance before activation.
Availability
Supported for Onsite Display only.
How Delivery Estimate fits into campaign planning
Configure
Define targeting, bids, budgets, schedule, and item set readiness.
Estimate
Run Delivery Estimate using stored configuration or temporary overrides.
Review
Check impressions, clicks, spend, and order forecasts.
Refine
Adjust targeting or bids to improve projected delivery.
Launch
Proceed to activation once forecasted performance looks acceptable.
How it works
Delivery estimates simulate projected auction and inventory behavior using:
- targeting configuration
- bids
- budgets
- schedule
- featured item sets (only required for orders forecast)
The API can forecast using:
- stored ad group configuration
- Simulated values supplied in the request
Important behaviorDelivery estimate requests do not modify stored campaign or ad group configuration. Simulated values exist only for the duration of the forecast request.
When to use Delivery Estimate
Use Delivery Estimate when you need to:
- test targeting changes before launch
- validate budget and bid strategy
- compare delivery scenarios
- estimate order potential before launch
- understand expected spend and click outcomes
Use Reach Estimate when you need to:
- validate inventory scale
- compare targeting breadth
- estimate impression availability
Before you begin
- Valid
advertiserId - Valid
campaignId - Targeting, flights, bid, and budget configuration defined
- Featured item set assigned when forecasting orders
Readiness checkIf you are forecasting orders, the featured item set must exist and be in
BUILTstatus.
Create Item Set
Item set request submitted.
BUILT
Processing complete and ready for measurement.
Associate
Item set can be attached to campaigns for order forecasting.
Endpoint
POST /api/v2/deliveryEstimate
POST /api/v2/deliveryEstimateRequest details
How this request is used
Use this endpoint to evaluate projected performance before launch or before updating ad group configuration.
This is especially useful when:
- testing targeting changes
- validating budget and bid strategy
- comparing delivery scenarios
- estimating order potential before launch
Understanding forecast behavior
Delivery estimate requests can use:
| Configuration source | Behavior |
|---|---|
| Stored ad group settings | Uses existing configuration |
| Simulation values in request | Temporarily simulates different settings |
Important behaviorIf budget, schedule, and/or delivery speed settings are configured at the campaign level, simulated values in the request are ignored.
Key fields and behaviors
-
metricimpressions,clicks,adSpend,orders,cpc,cps,sales -
timeframes
Specifies the forecast timeframes returned (daily,30days,lifetime)
To generate a valid estimate, the following must exist either:
- in the stored ad group configuration
- or inside the request payload
Required configuration areas
Configuration structure is the same as standard ad group configuration.
To generate a valid estimate, the following must exist either in the stored ad group configuration or inside the request payload.
- Schedule
- Delivery speed
- Budget
- Bid configuration
- Targeting (targeting object, geotargeting, and audiences)
Existing ad group rules still apply
Delivery estimate requests follow the same targeting and delivery rules as standard ad group configuration.
This means:
- audience eligibility still applies
- targeting validation still applies
- unsupported targeting combinations still fail validation
Forecasted metrics
What this API supports forecasting
Impressions
Projected winning impressions across supported timeframes.
Clicks
Estimated click volume based on projected delivery behavior.
Ad spend
Estimated spend range across the requested timeframe.
Orders
Projected order range based on featured item set measurement.
Understanding order forecasts
Featured item set requirement
Orders can only be forecasted when the campaign has a BUILT featured item set attached for measurement.
Important behaviorIf no featured item set exists, the API returns a partial forecast response.
Other metrics such as impressions, clicks, and ad spend still return successfully.
Most commonly:
- orders forecasting failed because no featured item set was attached
Understanding override behavior
Supported override areas
The request can temporarily simulate changes to:
- targeting
- bids
- budgets
- frequency caps
- delivery speed
- schedule
Sample requests
Existing ad group with item set associated
curl --location --request POST 'https://developer.api.us.walmart.com/api-proxy/service/display/api/v1/api/v2/deliveryEstimate' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <auth_token>' \
--header 'WM_SEC.AUTH_SIGNATURE: ***********' \
--header 'WM_CONSUMER.ID: <consumer_id>' \
--header 'WM_SEC.KEY_VERSION: 1' \
--header 'WM_CONSUMER.intimestamp: 1565309779' \
--data '{ "advertiserId": 1, "campaignId": 9, "adGroupId": 2, "metric": [ "impressions", "clicks", "adSpend", "orders" ], "timeframes": ["daily", "30days", "lifetime"], "startDate": "2024-06-27T00:00:00Z", "endDate": "2024-12-30T23:59:59Z", "targeting": { "and": [ { "runOfSite": true }, { "geoTargets": [ { "id": 1 } ] } ] }, "maxBid": 10, "baseBid": 2, "frequencyCapDay": 50, "frequencyCapWeek": 50, "frequencyCapMonth": 50, "dailyBudget": 100, "deliverySpeed": "evenly"
}'Existing ad group without item set
curl --location --request POST 'https://developer.api.us.walmart.com/api-proxy/service/display/api/v1/api/v2/deliveryEstimate' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <auth_token>' \
--header 'WM_SEC.AUTH_SIGNATURE: ***********' \
--header 'WM_CONSUMER.ID: <consumer_id>' \
--header 'WM_SEC.KEY_VERSION: 1' \
--header 'WM_CONSUMER.intimestamp: 1565309779' \
--data '{ "advertiserId": 1, "campaignId": 9, "adGroupId": 2, "metric": [ "impressions", "clicks", "adSpend", "orders" ], "timeframes": ["daily", "30days", "lifetime"]
}'Without ad group
curl --location --request POST 'https://developer.api.us.walmart.com/api-proxy/service/display/api/v1/api/v2/deliveryEstimate' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <auth_token>' \
--header 'WM_SEC.AUTH_SIGNATURE: ***********' \
--header 'WM_CONSUMER.ID: abcde-v123-fa2r-a1fs-asd45f6qef' \
--header 'WM_SEC.KEY_VERSION: 1' \
--header 'WM_CONSUMER.intimestamp: 1565309779' \
--data '{ "advertiserId": 1, "campaignId": 9, "metric": [ "impressions","clicks","adSpend","orders" ], "timeframes":["daily","30days","lifetime"], "startDate": "2024-06-27T00:00:00Z", "endDate": "2024-12-30T23:59:59Z", "targeting": { "and": [ { "runOfSite": true }, { "geoTargets": [ { "id": 1 } ] } ] }, "maxBid": 10, "frequencyCapDay": 50, "frequencyCapWeek": 50, "frequencyCapMonth": 50, "dailyBudget": 100, "deliverySpeed": "evenly" }' Response details
What this response returns
Returns projected delivery ranges across one or more timeframes.
Key fields to use
forecastId
Forecast request IDestimates
Forecasted metric rangesdaily
Estimated daily impressions30days
Estimated 30-day impressionslifetime
Estimated impressions across full flightminValue
Lower estimate boundmaxValue
Upper estimate bound
How to interpret the results
The API returns a range instead of an exact forecast because inventory availability changes dynamically.
Use the forecasted ranges to compare scenarios and determine whether the proposed configuration is likely to meet your performance goals.
Metric interpretation
| Metric | What it helps you decide |
|---|---|
| Impressions | Whether the campaign is likely to deliver enough scale |
| Clicks | Whether the campaign is likely to generate engagement |
| Ad spend | Whether the budget is likely to pace as expected |
| Orders | Whether the campaign is likely to generate attributable sales |
Sample responses
With item set
{ "code": "success", "forecastId": "567", "estimates": { "impressions": { "daily": { "minValue": 1, "maxValue": 2 }, "30days": { "minValue": 1, "maxValue": 2 }, "lifetime": { "minValue": 1, "maxValue": 2 } }, "clicks": { "daily": { "minValue": 3, "maxValue": 4 }, "30days": { "minValue": 1, "maxValue": 2 }, "lifetime": { "minValue": 3, "maxValue": 4 } }, "adSpend": { "daily": { "minValue": 5, "maxValue": 7 }, "30days": { "minValue": 2, "maxValue": 3 }, "lifetime": { "minValue": 5, "maxValue": 7 } }, "orders": { "daily": { "minValue": 100, "maxValue": 400 }, "30days": { "minValue": 6200, "maxValue": 7900 }, "lifetime": { "minValue": 42000, "maxValue": 50000 } } }, "details": [ "DELIVERY_ESTIMATE_SUCCESS" ]
}Without item set / partial forecast
{ "code": "partial_response", "forecastId": "567", "estimates": { "impressions": { "daily": { "minValue": 1, "maxValue": 2 }, "30days": { "minValue": 1, "maxValue": 2 }, "lifetime": { "minValue": 1, "maxValue": 2 } }, "clicks": { "daily": { "minValue": 3, "maxValue": 4 }, "30days": { "minValue": 1, "maxValue": 2 }, "lifetime": { "minValue": 3, "maxValue": 4 } }, "adSpend": { "daily": { "minValue": 5, "maxValue": 7 }, "30days": { "minValue": 2, "maxValue": 3 }, "lifetime": { "minValue": 5, "maxValue": 7 } }, "orders": { "daily": { "minValue": -1, "maxValue": -1 }, "30days": { "minValue": -1, "maxValue": -1 }, "lifetime": { "minValue": -1, "maxValue": -1 } } }, "errors": [ "ITEMSETID_IS_REQUIRED_FOR_ORDERS_METRICS" ]
}Common issues
| Issue | What it usually means |
|---|---|
| missing required schedule configuration | Required dates were not supplied |
| Requesting forecast for incomplete ad group | Existing ad groups must have schedule, budget, bid, and targeting configured prior to forecast |
| unavailable audiences | Audience status is not available |
| invalid targeting objects | Targeting configuration failed validation |
| budget lower than bid value | Budget and bid settings are not aligned |
| forecasting orders without a featured item set | Orders cannot be forecasted until item set requirements are met |
| assuming simulated values persist | Override values exist only for the request |
What happens next
After retrieving estimates:
- compare projected performance scenarios
- adjust targeting or bids
- validate whether delivery goals are achievable
- use Reach Estimate for inventory-only planning
Related pages
Updated about 7 hours ago
