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.
Deals can be standard or programmatic guaranteed. Standard deals have two types — preferred (fixed price) deals and private auction deals. Here's how each type of deal differs:
-
Private Auction: A publisher can invite advertisers for exclusive bidding on special, non-guaranteed inventory packages before making them available in an open auction. All invited advertisers participate in an auction, which is won by the highest bidder. Adform considers the deal price as a floor price. The advertiser will pay the highest price they offer.
This type of deal is beneficial when the publisher wants to:
-
Have more control over which buyers can bid on their inventory.
-
Get the highest CPM offer for their premium inventory.
-
Increase brand safety and avoid potential ad fraud.
-
-
Preferred Deal (Fixed Price): A publisher negotiates price and terms for exclusive inventory with a single advertiser for a first-look. There's no guaranteed buying or traffic reservation, but the publisher might want to negotiate a minimum spend. The deal price is fixed and the advertiser pays only the agreed CPM.
This type of deal is beneficial when the publisher wants to:
-
Foster long-term partnerships with specific advertisers.
-
Negotiate higher CPMs for their premium inventory.
-
Maintain greater control over the brands and ads that appear on their platforms.
-
-
Programmatic Guaranteed (PG): A publisher and an advertiser directly negotiate a price and terms for the inventory that is reserved (guaranteed). Both publisher and advertiser commit to guaranteed traffic and spend. In Adform SSP, those deals represent the highest priority deal type for fixed-price trading within Adform exchange.
This type of deal is beneficial when the publisher wants to:
-
Offer exclusivity to selected advertisers.
-
Guarantee revenue stream (due to fixed pricing).
-
Simplify the media buying process by reducing the need for constant monitoring and bid management associated with real-time bidding (RTB).
-
With Deals API, publishers can set up each of those deal types.
Use Deals API to:
-
Optimize deal-related tasks, improve scalability, and save time with bulk actions for creating and retrieving multiple deals.
-
Simplify your workflows and improve efficiency by using Deals API to manage all your deals from your own system.
-
Create always-on deals based on performance KPIs or dynamic criteria, and to simplify the process of updating placements within deals.
To start working with Deals API, you must:
-
Have an Adform SSP account.
-
Have an API-specific user account within your business account.
-
Have the Manage Deals permission assigned to the API user account.
-
Get your OAuth credentials and all necessary access.
-
Retrieve the necessary IDs for Deals API calls.
To work with Deals API, Adform must assign the following scopes to your OAuth client:
-
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).
If you have a DMP account linked to your SSP account and you want to target it in your deals, you need additional scopes:
-
https://api.adform.com/scope/dmp.dataproviders.readonly: Grants read-only access to DMP Data Provider API (optional).
-
https://api.adform.com/scope/dmp.categories.readonly: Grants read-only access to DMP Category API (optional).
-
https://api.adform.com/scope/dmp.segments.readonly: Grants read-only access to DMP Segment API (optional).
To get the required access, contact Adform Support (technical@adform.com) with your OAuth client and the list of needed scopes.
If you don't have an OAuth client yet, follow the procedure in Get Authentication Credentials for Adform APIs to register one.
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 |