Request Delivery Estimate V2
Use this API to request delivery estimates or winning impressions forecast for a given ad group.
Note: The API currently supports impression metrics only.
URL: POST/api/v2/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
Users can simulate changes by overriding ad group-level settings in the request payload. The API does not modify any stored data.
Note: Currently, the API supports simulation only for ad group-level attributes. Campaign-level budgets or schedules that apply to ad groups are not yet supported for simulation.
Request Parameters
Parameters | Notes | Type | Required | Possible Values |
---|---|---|---|---|
advertiserId | ID of advertiser | integer | Y | Unique numeric identifier |
campaignId | ID of the campaign containing the ad group | string | Y | Valid campaign ID |
adGroupId | ID the ad group to forecast | string | Y | Valid ad group ID |
metric | The list of metrics you are requesting an estimate for. | array | Y | Values:
|
startDate | Simulated start date for ad group scheduling See note regarding parameters set at campaign level or ad group level | date | N | Date must follow this format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX Note: date values are internally converted to EST timezone. |
endDate | Simulated start date for ad group scheduling. 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 | date | N | Date must follow this format: yyyy-MM-dd'T'HH:mm:ss.SSSXXX Note: date values are internally converted to EST timezone. |
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 | Simulated 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. It Must be >=$0.01 |
baseBid | Simulated starting bid for the ad group | double | N | Value of base bid. Value of base bid. It Must be >=$0.01 |
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 | Simulated 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 | Simulated 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 | Values:
|
timeFrames | Specifies the timeframes for which forecasts should be returned. If not provided, forecasts for all available timeframes will be returned. | array | N | Values:
|
Sample Request
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": 16273802, "campaignId": 90279, "adGroupId": 219338, "metric": [ "impressions","clicks","adSpend"], "timeframes":["daily","30days","lifetime"], "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:
| string |
forecastId | forecastId for every successful response | string |
estimates | Contains forecasted metrics over various time ranges. It is a nested json object that contains forecast data for impressions , clicks , and adSpend .The estimates objects are detailed below in a separate table following this one. | json |
details | Details of the response. Values:
| json |
estimates Objects:
each metrics ( impressions
, clicks
, and adSpend
) is structured as follows:
Elements | Description | Type |
---|---|---|
daily | Estimated metric values per day | json |
30days | Estimated metric values for 30 days | json |
lifetime | Estimated metric values for the ad group's full lifetime | json |
each sub-object (daily, 30days, lifetime) contains:
Elements | Description | Type |
---|---|---|
minValue | Lower bound of the estimated metric range | int |
maxValue | Upper bound of the estimated metric range | int |
Delivery Estimate Success Response
{ "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 } } }, "details": [ "DELIVERY_ESTIMATE_SUCCESS" ]
}
Delivery Estimate Failure Response
{ "code": "failure", "details": [ "FAILURE_FETCHING_DELIVERY_ESTIMATE" ]
}
Updated 1 day ago