Request Delivery Estimate V1
Use this API to request delivery estimates or winning impressions forecast for a given ad group.
Note: The API currently supports impression metrics only.
What It Does:
- Predicts delivery performance of an ad group using its configured schedule, targeting, budget, and bid.
Allows developers to simulate changes to ad group configuration by overriding fields in the request payload. - Does not modify any stored ad group or campaign data — simulation is used solely for forecasting purposes.
- To return a valid delivery estimate, the following ad group-level attributes must be available either in the stored ad group OR passed in the request: schedule, budget, bid and targeting. If any of the four are missing in the ad group and not provided in the request payload, the API returns an error.
Simulation (“What-If” analysis) support:
- You can override ad group-level startDate, endDate, baseBid,maxBid, frequencyCap, dailyBudget, totalBudget, deliverySpeed and targeting in the request body to simulate changes without modifying the actual ad group.
- Campaign-level schedules, budget & deliverySpeed that cascade to ad groups cannot yet be simulated in this API. If budget, schedule and deliverySpeed are set at the campaign level, the API will disregard these values if passed, and the forecast provided will use the original campaign values instead.
- All overrides are non-persistent. This API does not modify stored campaign or ad group data.
URL: POST/api/v1/deliveryEstimate
Delivery Estimate Request Notes
When requesting an estimate or forecast for an ad group, remember the following for parameters originally set at the campaign level or the ad group level.
If the following request parameters are set at the campaign level:
- startDate
- endDate
- dailyBudget
- totalBudget
- deliverySpeed
If the following request parameters are set at the ad group level:
- startDate
- endDate
- targeting
- maxBid
- baseBid
- frequencyCapDay
- frequencyCapWeek
- frequencyCapMonth
- dailyBudget
- totalBudget
- deliverySpeed
Request Parameters
Parameters | Notes | Type | Required | Possible Values |
---|---|---|---|---|
advertiserId | ID of advertiser | integer | Y | Unique numeric identifier |
campaignId | ID of the campaign | integer | Y | Unique numeric identifier |
adGroupId | ID the ad group | integer | Y | Unique numeric identifier |
metric | The specified metric you are requesting an estimate for. Note: “impressions” is currently the only supported metric. | array | Y | Value: impressions |
startDate | Date when the ad group is set to go live. See note regarding parameters set at campaign level or ad group level | datetime | N | Date must follow this format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX Note: All date and time values are internally converted to Eastern Time (ET) for processing. All timestamps must be provided in ISO 8601 format. Timestamps are normalized to the start of the hour in Eastern Time (ET)—this means any minutes and seconds will be truncated. Please account for this when requesting for forecasts. |
endDate | The date when ad group ends. For ad groups that run indefinitely, use the value: endDate = ‘9999-12-30T00:00:00Z’ See note regarding parameters set at campaign level or ad group level | datetime | N | Date must follow this format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX Note: All date and time values are internally converted to Eastern Time (ET) for processing. All timestamps must be provided in ISO 8601 format. Timestamps are normalized to the start of the hour in Eastern Time (ET)—this means any minutes and seconds will be truncated. Additionally, the end date must be set to a time after 12:00 PM ET Please account for this when requesting for forecasts. |
targeting | A nested array element with following elements:
Note: only Exact match type is allowed for negative keywords Note: This is how tiers in API call map to the representation on ad center UI: See note regarding limitations of parameters set at campaign level or ad group level | The values: • keywords • contextual • behavioral • runOfSite • geoTargets | ||
maxBid | Maximum bid value for the ad group See note regarding limitations of parameters set at campaign level or ad group level | double | N | Value of max bid |
baseBid | Starting bid for the ad group | double | N | Value of base bid |
frequencyCapDay | The number of times the ad from specific ad group should be shown to the same user in a day | integer | N | Integer values between 1 and 511 |
frequencyCapWeek | The number of times the ad from specific ad group should be shown to the same user in a week | integer | N | Integer values between 3 and 511 |
frequencyCapMonth | The number of times the ad from specific ad group should be shown to the same user in a month | integer | N | Integer values between 5 and 511 |
dailyBudget | Daily budget of the ad group See note regarding limitations of parameters set at campaign level or ad group level | double | N | The value of daily budget should at least be $0.01 |
totalBudget | Total budget of ad group See note regarding limitations of parameters set at campaign level or ad group level | double | N | The value of total budget should at least be $0.01 |
deliverySpeed | Determines pacing of ad delivery. See note regarding limitations of parameters set at campaign level or ad group level | double | N | • frontloaded • evenly |
Sample Request
curl --location --request POST 'https://developer.api.us.walmart.com/api-proxy/service/display/api/v1/api/v1/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": 16273802, "campaignId": 90279, "adGroupId": 219338, "metric": ["impressions"], "startDate": "2024-06-27T00:00:00Z", "endDate": "2024-12-30T23:59:59Z", "targeting": { "and": [ { "runOfSite": true }, { "geoTargets": [ { "id": 247796189 } ] } ] }, "maxBid": 10, "baseBid": 2, "frequencyCapDay": 50, "frequencyCapWeek": 50, "frequencyCapMonth": 50, "dailyBudget": 100, "totalBudget": 100, "deliverySpeed": "FRONTLOADED" }'
Response
Element | Description | Type |
---|---|---|
code | The response code can have following values:
Click here for more information about Status Codes and Errors | string |
metric | The metric that was specified in the request body; i.e., IMPRESSIONS | string |
minValue | Minimum number of the specified metric for the delivery estimate. | integer |
maxValue | Maximum number of the specified metric for the delivery estimate. Note:
| integer |
details | Details of the request status | string |
Sample Response
[ { "code": "success", "metric": "IMPRESSIONS", "minValue": 7000, "maxValue": 14000, "details": [ "IMPRESSION_ESTIMATE_SUCCESS" ] }
]
Updated about 16 hours ago