Clear search
Close search
Google apps
Main menu

Real Time Bidding differences for Programmatic Guaranteed Deals


A Programatic Guaranteed deal is a fixed number of impressions the buyer has committed to purchasing. CPM, ad sizes, and start / end date for the deal are all fixed. 

Every callout for a Programatic Guaranteed deal must be bid on. The number of deal callouts may be less than the number of ad requests from the publisher if the bidder is not optimally setup.  Quota and error based throttling for Programatic Guaranteed callouts are enforced. A buyer hitting either of these throttles will see less than 100% of ad requests as callouts.

Learn more about the Real-Time Bidding Protocol


  1. Contact your support representative to enable Programatic Guaranteed
  2. Bidders must turn on the option to always include Guaranteed deals in their pretargeting settings (in the AdX user interface).
  3. We recommend bidders to create a separate ad group configured to always match Programatic Guaranteed deal traffic.

Additional Real Time Bidding fields for Programatic Guaranteed

  • direct_deal_id 
    • Consistent with PA/PD, every PG deal is addressed by a deal id.
  • deal_type 
    • will be set to PROGRAMMATIC_GUARANTEED
  • Fixed_cpm_micros 
    • represents the deal terms CPM that was agreed by both parties. At this time, we ignore the bid price (in the response) in the auction and always clear the bid at the deal terms CPM. 
  • Publisher_blocks_overridden 
    • This value will be always set be true for PG deals. Consistent with PA/PD, this setting overrides publisher blocking setting but not override AdX policies or Ad Review Center decisions.
  • Remaining_impressions_to_buy

All other RTB fields (e.g. ad slot size, creative attributes etc.,) remain the same with for Programatic Guaranteed.

Additions to MatchingAdData in the bid request

Additions to the bid request are highlighted below:

// Information about the pre-targeting configs that matched.
message MatchingAdData {

// Information about any deals that matched for this inventory.
message DirectDeal {
// An id identifying the deal.
optional int64 direct_deal_id = 1 [
(datapol.semantic_type) = ST_PUBLISHER_ID

// The fixed CPM deal that applies to your account for this adslot. If
// you choose to bid on this impression, then you must bid at least the
// value of fixed_cpm_micros, and if you win, you will always be charged
// fixed_cpm_micros. The value is in micros of your account currency.
// For example, if the fixed cpm is 1290000 (1.29 in your account
// currency), then you need to bid at least this amount. If you win, you
// will be charged a CPM of 1.29 in your account currency.
optional int64 fixed_cpm_micros = 2;

// The type of the deal.
enum DealType {

optional DealType deal_type = 3 [default = UNKNOWN_DEAL_TYPE];

// Whether the publisher has exempted this deal from configured blocks.
// This setting does not override AdX policies or Ad Review Center
// decisions.
optional bool publisher_blocks_overridden = 4 [default = false];

// The number of remaining true looks that are guaranteed to you.
// This field applies to programmatic guaranteed and buyer choice deals.
optional int64 remaining_looks = 5;

// The number of remaining impressions that you have committed to buy.
// This field applies to programmatic guaranteed and buyer choice deals.
optional int64 remaining_impressions_to_buy = 6;

Negotiate deals

  • Deals can be negotiated via the AdX user interface. Learn more 
    • Search for transaction type "Programatic guaranteed" in the search box of the Discover tab in AdX Marketplace.
  • Deals can also be negotiated via the AdX Buyer REST API v2

Finalize deals with setup complete 

  1. Once a deal proposal is finalized, you can choose to upload creatives and associate them to the deal (using the Buyer REST API v1.4).
    1. This is done using the addDeal method in the Rest API
  2. Then you must indicate that setup is complete
    1. By clicking the Setup Complete button in AdX UI
    2. Or though REST API v1.4 (use deal ID as proposal ID)
Was this article helpful?
How can we improve it?