Deals object
NOTE: The EPA API has sunset on September 30, 2026. Endpoints are no longer accessible. For alternatives, see EPA to PDP Migration.
The Deals object represents an inventory offered as part of the proposal with associated restrictions for creatives.
Here's what you need to know about the Deals object:
- A Proposal object must have at least one deal in the request.
- A deal can have only one deal term object (
GuaranteedTerms,PreferredDealTerms, andPrivateAuctionTerms) which depends on the deal type. - You can reuse the same external deal ID only if the previous proposal with the existing deal ID matches the following criteria:
- The buyer or seller deleted the proposal.
- The proposal has never been activated and is in the
Rejectedstate. - A party removed the deal that had the existing external deal ID.
- If there are multiple deals in a proposal, all deals must be of the same deal type.
- Each deal must have a creative format restriction.
- After creating the proposal, you can change a preferred deal to private auction and vice versa.
- You cannot change a preferred or private auction deal to guarantee.
The following is a JSON example of the Deals object.
{
"DealId": 4263497813,
"DisplayName": "Test Deal",
"ExternalDealId": "4263497813",
"PublisherIds": [
"1234"
],
"StartTime": "2022-08-15T04:00:00",
"EndTime": "2022-09-15T04:00:00",
"DealType": "Guaranteed",
"GuaranteedTerms": { // Only for guaranteed deals.
"RateType": "CPM",
"Rate": {
"Amount": 0.5,
"CurrencyCode": "USD"
},
"GuaranteedLooks": 1,
"GuaranteedImpressions": 0.6
},
"DealTargetingInfo": {
"FrequencyCaps": [
{
"FrequencyCap": 1,
"ResetIntervalInMinutes": 10
}
],
"GeoTargeting": {
"Included": [
"1n7jkq1fce",
"d1gugk2qn6"
],
"Excluded": [
"q5xb319t45",
"8t9awngqi4",
"x3s3q8xqaj"
]
},
"Sites": {
"Included": [
"finance.yahoo.com"
],
"Excluded": [
"google.com"
]
},
"MobileApps": {
"Included": [
"384590449"
],
"Excluded": [
"com.company.appname"
]
},
"DeviceTypes": {
"Included": [
"Tablet",
"Mobile"
],
"Excluded": [
"PC",
"ConnectedTV"
]
},
"AdEnvironments": {
"Included": [
"App",
"MobileWeb"
],
"Excluded": [
"Web"
]
},
"Categories": {
"Included": [
"IAB9-25",
"IAB9-26",
"IAB9-5"
],
"Excluded": [
"IAB9-30"
]
}
},
"CreateTime": "2022-08-19T18:53:18.05",
"UpdateTime": "2022-08-20T23:01:41.05"
}
Deal object properties
The following table details the Deal object properties.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
DealId |
Required (update) |
Int64 | The unique deal ID that is generated after the deal is created. |
DisplayName |
Required | String(256) | The name of the deal. Be sure to create a descriptive name that helps distinguish this deal from others or indicate its content. |
ExternalDealId |
Required | String(128) | The unique external deal ID that is used to identify the deal in bidding. |
PublisherIds |
Required (nullable) |
String(64) array | The list of IDs of the publishers that are associated with the deal. Here's what you need to know about this property:
|
StartTime |
Required for guaranteed deals | DateTime | The starting date and time of the deal. |
EndTime |
Required for guaranteed deals | DateTime | The end date and time of the guaranteed deal. If you want this deal to last indefinitely, be sure to not include this property in the request. IMPORTANT: If provided, this date and time must occur in the future after the start date. |
DealType |
Required | String(enum) | The type of deal. Possible values include the following:
|
AuctionType |
Optional | String(enum) | The type of auction for the deal. Possible values include the following:
FixedPrice. |
GuaranteedTerms |
Required for guaranteed deals | Object | The negotiated terms for a programmatic guaranteed deal. |
PreferredDealTerms |
Required for preferred deals | Object | The negotiated terms for a preferred deal. |
PrivateAuctionTerms |
Required for private auction deals | Object | The negotiated terms for a private auction. |
CreativeRestrictions |
Required | Object | Restrictions for creatives that are supported by the deal. |
DealTargetingInfo |
Optional | Object | Supply-side targeting information associated with the deal. |
CreateTime |
N/A, response only | DateTime | The date and time when the deal was created. |
UpdateTime |
N/A, response only | DateTime | The date and time when the deal was last updated. |
GuaranteedTerms object
The GuaranteedTerms object represents the terms that are negotiated for a programmatic guaranteed deal. The following table lists its properties.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
RateType |
Required | String(enum) | The pricing type of the deal. The only possible value is CPM. |
Rate |
Required | Object | The pricing rate of the deal. |
GuaranteedLooks |
Required | Integer(int64) | The number of looks or views that are guaranteed to the buyer. This value must be greater than 0. |
GuaranteedImpressions |
Required | Decimal | The guaranteed impressions as a percentage of the GuaranteedLooks value. Here's what you need to know about this property:
|
PreferredDealTerms object
The PreferredDealTerms object represents the terms that are negotiated for a preferred deal. The following table lists its properties.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
RateType |
Required | String(enum) | The pricing type of the deal. The only possible value is CPM. |
Rate |
Required | Object | The pricing rate of the deal. |
PrivateAuctionTerms object
The PrivateAuctionTerms object represents the terms that are negotiated for a private auction deal. Here's what you need to know about this object:
- If you include
RateTypein the request, you must also includeRate. - If you update
RateTypetonull, you must also updateRatetonull.
The following table details the PrivateAuctionTerms object properties.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
RateType |
Optional | String | The pricing type of the deal. The only possible value is CPM. |
Rate |
Required only if RateType is specified |
Object | The pricing rate of the deal. This amount can be used to specify the minimum bid required for the auction. |
Rate object
This object represents the monetary amount with its currency. The following table details the Rate object properties.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
Amount |
Required | Float | The monetary amount. This value must be greater than 0. |
CurrencyCode |
Required | String | The three-letter currency code for the amount as specified in ISO 4217. IMPORTANT: You cannot change the currency code of an activated proposal. |
CreativeRestrictions object
The CreativeRestrictions object specifies the creative format restrictions that are supported by the publisher for this deal. The following table lists its properties.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
CreativeFormat |
Required | String(enum) | The creative media type. Possible values include the following:
|
CreativeRestrictionSpecifications |
Optional (nullable) |
Object array | The list of creative specifications to which you want to apply restrictions. |
CreativeSpecification object
The CreativeSpecification object specifies the list of creative attributes to which you want to apply restrictions. The following table lists the properties of this object and indicates the creative specification and the creative formats to which restrictions apply.
| Property | Required in Request? | Data Type | Description | Supported Creative Formats |
|---|---|---|---|---|
Width |
Optional | Integer(int32) | The width of the region that shows the ad. | Display, Video |
Height |
Optional | Integer(int32) | Height of the region that shows the ad. | Display, Video |
Skippable |
Optional | Boolean | If set to true, the ad can be skipped after a few seconds.If set to false, the ad cannot be skipped.The default value for this property is null. |
Audio, Video |
MinBitrate |
Optional | Integer(int32) | The minimum bitrate in Kbps. | Audio, Video |
MaxBitrate |
Optional | Integer(int32) | The maximum bitrate in Kbps. | Audio, Video |
MinDuration |
Optional | Integer(int32) | The minimum duration in seconds. | Audio, Video |
MaxDuration |
Optional | Integer(int32) | The maximum duration in seconds. | Audio, Video |
DealTargetingInfo object
The DealTargetingInfo object provides information for supply-side targeting that is associated with the deal. The following table lists its properties and the targeting criteria that you can include or exclude from the deal.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
FrequencyCaps |
Optional (nullable) |
Object array | The list of frequency caps that limits the number of times the ad can be served to the user within a certain period. |
GeoTargeting |
Optional (nullable) |
Object | The list of geo segments that you want to include or exclude from this deal. To retrieve a list of supported geo segment IDs, use the POST /v3/geosegment/query/supplyvendor endpoint. |
Sites |
Optional (nullable) |
Object | The list of targeting website domains that you want to include or exclude from this deal.For example, finance.yahoo.com or google.com. |
MobileApps |
Optional (nullable) |
Object | The mobile applications that you want to include or exclude from this deal. Possible Included and Excluded values are Android package names or iOS App IDs. |
DeviceTypes |
Optional (nullable) |
Object | The device types that you want to include or exclude from this deal. Possible Included and Excluded values include the following:
|
AdEnvironments |
Optional (nullable) |
Object | The ad environments that you want to include or exclude from this deal. Possible Included and Excluded values include the following:
|
Categories |
Optional (nullable) |
Object | The content categories that you want to include or exclude from this deal. Valid values are IAB category IDs from the OpenRTB spec. |
FrequencyCaps object
The FrequencyCaps object array is a list that is set up on the supply side and limits how often a single user can be served the same inventory. The following table lists its properties.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
FrequencyCap |
Required | Integer(int32) | The maximum number of impressions that a single user can be served within a certain time period. |
ResetIntervalInMinutes |
Optional | Integer(int32) | The time period (in minutes) during which a single user can be served up to the maximum number of impressions. If you do not include this property in the request, the time period for the frequency cap becomes a lifetime. |
TargetingCriteria object
The TargetingCriteria object provides a list of what to include and exclude from targeting. The following table lists its properties.
| Property | Required in Request? | Data Type | Description |
|---|---|---|---|
Included |
Optional | String array (nullable) |
The targeting criteria that you want to include in the deal. |
Excluded |
Optional | String array (nullable) |
The targeting criteria that you want to exclude from the deal. |