Real-time Bidding differences for Programmatic Guaranteed Deals

Learn the basics of using Real-time Bidding (RTB) for Programmatic Guaranteed deals

A Programmatic Guaranteed (PG) 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. 

Queries per second (QPS) is bypassed for PG, however, if a bidder is QPS-constrained it can result in opportunities being taken away for Preferred Deals (PD), Private Auctions (PA) and Open Auctions (OA) if the bidder is not optimally setup.

A callout may include more than one PG deal ID. When this happens, a bidder is expected to respond with a bid for each deal ID submitted in the request. The bidder should try to respond to as many deal IDs as possible to ensure an accepted bid.

Learn more about the Real-time Bidding (RTB) Protocol.

PG prerequisites

  1. Contact your support representative to review technical eligibility for enabling Programmatic Guaranteed.
  2. Bidders must turn on the option to always include Guaranteed deals in their pretargeting settings (in the Authorized Buyers user interface).

Real-time Bidding fields for Programmatic Guaranteed

  • direct_deal_id 
    • Consistent with Private Auctions/Preferred Deals, every Programmatic Guaranteed deal is addressed by a deal id.
  • deal_type 
  • 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 Programmatic Guaranteed and Preferred Deals. Consistent with Private Auctions, this setting overrides the publisher blocking setting but does not override Ad Exchange policies or Ad Review Center decisions.
  • must_bid
    • While buyers must meet the impression goal on the PG deal, they don’t always have to bid on every callout. To help buyers determine when to pass on callouts or bids, the must_bid signal is exposed:
      • If the deal is pacing ahead of schedule (must_bid=false), the buyer can choose not to bid.
      • If the deal isn’t pacing ahead of schedule (must_bid=true), the buyer is required to bid.
      In either case, the system still tries to effectively monetize the impression. However, when must_bid=true and the buyer doesn’t bid, the buyer may be negatively impacting deal delivery and inventory availability.

All other RTB fields (for example, ad slot size, creative attributes, and so forth) remain the same for Programmatic Guaranteed.


For OpenRTB, Programmatic Guaranteed deals use the OpenRTB standard PMP object.


pmp {
   deals {
      id: "364236728761843960"
      bidfloor: 16.64
      bidfloorcur: "USD"
      at: 3
  • is the same as direct_deal_id.

  • Deals.bidfloor is the same as fixed_cpm_micros (with bidfloorcur indicating the currency).

  • indicates the “auction type”. Programmatic Guaranteed/Preferred Deals will always be set to 3 for “fixed price”.

  • DealExt.must_bid is the same as must_bid.

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 ad slot. 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];

Negotiate deals

Deals can be negotiated in Authorized Buyers. Search for transaction type "Programmatic Guaranteed" in the search box of the Discover tab in Authorized Buyers Marketplace.

Deals can also be negotiated with the AdX Buyer REST API v2

Finalize deals with setup complete

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).

This is done using the addDeal method in the Rest API.

Was this helpful?

How can we improve it?

Need more help?

Try these next steps:

Clear search
Close search
Google apps
Main menu