A deal is an agreement between a publisher and an advertiser to sell a publisher's inventory for a negotiated price by programmatic advertising. Publishers can make premium inventory available to selected advertisers through private marketplaces or deals within a subset of programmatic trading. With deals, publishers can increase their effective CPMs (eCPMs) and fill rates by offering a more specific inventory with first-party data privately.
Publishers can create deals that meet specific buyer needs. These deals can include selected or exclusive inventory, specific audience targeting, formats, or pricing. Publishers can also set up public deals that are available to any buyer that uses Adform DSP or external DSP partners.
With Deals API, you as a publisher can set up standard or programmatic guaranteed deals. Standard deals have two types — preferred (fixed price) deals and private auction deals. Read about each deal type and their differences in Learn About Deals in Adform SSP.
To create a deal, you need a placement ID together with its' creative settings ID, a demand partner ID, and an agency ID to use in your requests. You can use the placement ID to define the placement available in the deal and creative settings ID to specify the ad template assigned to the placement. You also need the demand partner ID and agency ID to specify the DSPs to target with your deal. In addition, if you have an Adform DMP account linked to your SSP account, you can target the audiences in that DMP using data provider ID, category ID, and segment ID.
Tip
To learn about SSP API structure and how different entities are connected, see Learn About SSP APIs.
To start working with Deals API, you need:
-
Adform SSP user account that has these permissions assigned:
-
Manage Deals
-
-
The following scopes assigned to your OAuth client by Adform Support (technical@adform.com):
-
https://api.adform.com/scope/seller.deals: Grants full access to Deals API (required).
-
https://api.adform.com/scope/api.placements.read: Grants read-only access to Placements API (required).
-
https://api.adform.com/scope/seller.buyers: Grants full access to Seller Buyers API (required).
-
-
The following IDs to use in your requests:
-
Data provider ID (optional)
-
Category ID (optional)
-
Segment ID (Audience ID) (optional)
Note
If you don't have an OAuth client yet, follow the procedure in Get Authentication Credentials for Adform APIs to register one.
To use placements in your deals, you must create them in Adform platform. Once your placements are ready, you can retrieve their IDs using Placements API.
To retrieve placement IDs:
-
Open the Postman desktop app.
-
Click
to open a new tab.
-
In the dropdown menu, select GET method.
-
In the request URL field, enter https://api.adform.com/v1/seller/placements.
-
Click Send.
If your placements have creative settings assigned to them, the provided API call returns both the placement IDs and their creative settings IDs.
Demand partners are DSPs that you can target with your deal. To target specific demand partners, you must provide demand partner IDs when creating a deal. You can retrieve these IDs using Seller Buyers API.
To retrieve demand partner IDs:
-
Open the Postman desktop app.
-
Click
to open a new tab.
-
In the dropdown menu, select GET method.
-
In the request URL field, enter https://api.adform.com/v2/seller/buyers/demandpartners.
-
Click Send.
Note
Adform is the only demand partner supported for programmatic guaranteed deals. The ID of Adform's DSP is 1
.
Agencies are the advertisers within Adform DSP that you can target with your deal. To target specific agencies, you must provide agency IDs when creating a deal. You can retrieve these IDs using Seller Buyers API.
To retrieve agency IDs:
-
Open the Postman desktop app.
-
Click
to open a new tab.
-
In the dropdown menu, select GET method.
-
In the request URL field, enter https://api.adform.com/v2/seller/buyers/agencies.
-
Click Send.
If you have an Adform DMP account linked to your SSP account, you can target your deals with your own audiences. To set up DMP targeting via Deals API, you must retrieve the data provider ID as well as any category IDs and segment IDs that you want to use. Adform has different DMP APIs that you can use to retrieve the necessary IDs.
To retrieve the data provider ID:
-
Open the Postman desktop app.
-
Click
to open a new tab.
-
In the dropdown menu, select GET method.
-
In the request URL field, enter https://api.adform.com/v1/dmp/dataproviders.
-
Click Send.
To retrieve category IDs:
-
Open the Postman desktop app.
-
Click
to open a new tab.
-
In the dropdown menu, select GET method.
-
In the request URL field, enter https://api.adform.com/v1/dmp/categories.
-
Click Send.
To retrieve segment IDs:
-
Open the Postman desktop app.
-
Click
to open a new tab.
-
In the dropdown menu, select GET method.
-
In the request URL field, enter https://api.adform.com/v1/dmp/segments.
-
Click Send.
Note
To link a DMP account with an SSP account, reach out to Publishers Support (publishers@adform.com).
To create a new deal, set up your API request body in Postman:
-
Open the Postman desktop app.
-
Click
to open a new tab.
-
In the dropdown menu, select POST method.
-
In the request URL field, enter https://api.adform.com/v1/seller/deals.
-
Copy the example request body provided under POST method in the List of API Operations section.
-
In Postman, in the Body tab, paste the example request body.
-
In Postman, replace the example values in request body with values relevant for your deal. See the parameter list and the request body model for more information.
-
Depending on the deal type that you want to create, set up specific deal settings for
priority
,price
, andbuyers
. See the table below for more information.
To create a private auction, preferred, or programmatic guaranteed deal, set up your deal settings as shown:
Parameter Name |
Values for Private Auction Deal |
Values for Preferred Deal |
Values for Programmatic Guaranteed Deal |
---|---|---|---|
|
|
|
|
|
|
1 to 9 |
|
|
Deal floor price |
Fixed CPM price |
Fixed CPM price |
|
|
|
|
|
To target all demand partners, set the To target selected demand partners, set the |
To target all demand partners, set the To target selected demand partners, set the |
Set the |
|
Agency settings depend on the selection of demand partners:
|
Agency settings depend on the selection of demand partners:
|
To target all agencies, set the To target selected agencies, set the |
Deals API provides separate endpoints to update:
-
All deal details
-
Creative settings
-
Deal status
If you need to update the entire deal or a placement, you must use the endpoint for all deal details.
To update all deal details, set up your API request body in Postman:
-
Open the Postman desktop app.
-
Click
to open a new tab.
-
In the dropdown menu, select PUT method.
-
In the request URL field, enter https://api.adform.com/v1/seller/deals/{dealid}.
Note
Replace the
{dealid}
part in the endpoint with the ID of the deal that you want to update. -
Copy the example request body provided within that PUT method in the List of API Operations section.
-
In Postman, in the Body tab, paste the example request body.
-
In Postman, replace the example values in request body with values relevant for your deal. See the parameter list and the request body model for more information.
Note
If you've used Postman to create the deal that you want to update, you can go to the History tab in the sidebar to reuse the values from the previous API call. For more convenience when working with APIs, consider using Postman collections to save and organize your API calls.
All deals must include general deal settings as well as information about fees, availability, placements, and targeting. These are the parameters that you must define for all types of deals:
General Deal Settings
Parameter Name |
Scope |
Description |
Enum or example values |
Type |
---|---|---|---|---|
|
Optional |
Deal ID can be custom or automatically generated. Requirements for custom deal ID:
For Adform to generate a deal ID automatically, set the |
|
String |
|
Required |
Name can contain a maximum of 255 characters including spaces. |
|
String |
|
Required |
Deal priority type defines the way Adform ranks bids in auctions:
|
|
String |
|
Required |
Level defines the priority of a deal in relation to other deals. You must define the level only for Priority level values range from 1 to 9, with 1 being lowest priority and 9 being highest priority. For |
|
Integer |
|
Required |
Value defines the price of the deal. Depending on the deal price type, value can be fixed CPM or deal floor price. Value must be a number between 0.01 and 999999999.99. Adform uses the currency selected in your SSP account settings. |
|
Number |
|
Required |
Type defines the price type of the deal:
|
|
String |
|
Optional |
Demand partner IDs define which demand partners can buy the inventory sold through the deal. List demand partner IDs if |
|
Integer |
|
Required |
This parameter defines whether all demand partners can buy the inventory sold through the deal. |
|
Boolean |
|
Optional |
Agency IDs define which agencies belonging to Adform DSP can buy the inventory sold through the deal. List agency IDs if |
|
Integer |
|
Required |
This parameter defines whether all agencies belonging to Adform DSP can buy the inventory sold through the deal. |
|
Boolean |
|
Required |
This parameter defines whether advertiser access rules set on the inventory should be bypassed. |
|
Boolean |
|
Required |
Status defines the status of the deal:
When deal status is |
|
String |
Deal Custom Fees
Parameter Name |
Scope |
Description |
Enum or example values |
Type |
---|---|---|---|---|
|
Required |
Type defines the fee type of the deal:
|
|
String |
|
Required |
Value defines the deal fee. For fixed CPM fee deals, value is the amount deducted from the bid. For revenue share fee deals, value is the percentage deducted from the bid. For fixed CPM fee deals, value must be a number between 0.01 and 999999999.99. For revenue share fee deals, value must be a number between 0.001 and 100. |
|
Number |
|
Required |
This parameter defines whether the deal fee should override the publisher fee. |
|
Boolean |
Deal Availability
Parameter Name |
Scope |
Description |
Enum or example values |
Type |
---|---|---|---|---|
|
Required |
|
|
String |
|
Optional |
|
|
String |
|
Required |
Type defines the time period over which impressions are counted. If impression count isn't relevant for your deal, set the |
|
String |
|
Required |
Count defines the number of estimated impressions during the time period provided in |
|
Integer |
|
Optional |
Terms and conditions define any additional information to be included in the deal. Terms and conditions can contain a maximum of 65,535 characters including spaces. If no terms and conditions apply to the deal, set the |
String |
Deal Placements
Parameter Name |
Scope |
Description |
Enum or example values |
Type |
---|---|---|---|---|
|
Required |
Placement IDs define which placements are available through the deal. Deals without placements can't be activated. |
|
Integer |
|
Optional |
Creative settings define the formats and sizes of ad templates assigned to the listed placements. |
|
Integer |
Inventory Targeting
Parameter Name |
Scope |
Description |
Enum or example values |
Type |
---|---|---|---|---|
|
Required |
Data provider ID defines the DMP account that is linked to the SSP account. If SSP account doesn't have a linked DMP account, set the |
|
Integer |
|
Required |
Category ID defines the categories of the linked DMP account that can be targeted. You can set a maximum of 10 DMP targeting rules on a deal. If SSP account doesn't have a linked DMP account, set the |
|
Integer |
|
Required |
Segments define the segments in the categories of the linked DMP account that can be targeted. You can set a maximum of 10 DMP targeting rules on a deal. If SSP account doesn't have a linked DMP account, set the |
|
Integer |
|
Required |
This parameter defines whether all key-value pairs and all keywords must be included in the impression. |
|
Boolean |
|
Required |
Matching defines the matching type for key-value pairs and keywords. |
|
String |
|
Required |
If no key-value pair targeting rules apply to the deal, set the |
|
String |
|
Required |
If no key-value pair targeting rules apply to the deal, set the |
|
String |
|
Required |
If no keyword targeting rules apply to the deal, set the |
|
String |