In Programmatic Guaranteed Deals, you negotiate with sellers on the number of
impressions that you will purchase at a fixed price. If you accept a proposal
for a Programmatic Guaranteed Deal, you commit to purchasing the seller's
inventory based on the negotiated terms. To learn more about your commitments
and tools for monitoring your compliance, see the Help Center article
describing the
[Programmatic Guaranteed SLA framework](https://support.google.com/authorizedbuyers/answer/10727457).

## Create

Programmatic Guaranteed Deals are created when negotiations start with a
request for proposal (RFP). You can initiate negotiations by sending an RFP to
a seller with [`buyers.proposals.sendRfp`](https://developers.google.com/authorized-buyers/apis/guides/marketplace/send-proposals).
The RFP must contain `programmaticGuaranteedTerms` in order for the resulting
proposal to be for a Programmatic Guaranteed Deal. Sellers can also send you an
RFP, which will appear as a proposal in Marketplace API. Once created, you can
find the proposal for the deal with
[`buyers.proposals.list`](https://developers.google.com/authorized-buyers/apis/guides/marketplace/view-proposals#list_multiple_proposals),
and negotiation between you and the seller can begin.

> [!NOTE]
> **Note:** When sending an RFP, you must identify the seller you intend to negotiate with using their publisher profile. You can browse and find available sellers with the `buyers.publisherProfiles` resource. For more information, see the [publisher profiles guide](https://developers.google.com/authorized-buyers/apis/guides/marketplace/publisher-profiles).

## Negotiate

Once a proposal for a Programmatic Guaranteed Deal is created, you can
negotiate with the seller by adjusting the proposal and its corresponding deal
until either both parties are satisfied, or the proposal is canceled. In a
successful negotiation, you might perform any of the following:

- **Poll for changes to the
  [proposal](https://developers.google.com/authorized-buyers/apis/guides/marketplace/view-proposals) or
  [deal](https://developers.google.com/authorized-buyers/apis/guides/marketplace/view-deals)** : Whenever a change is made to a proposal or its corresponding deal, the `proposalRevision` will increment. You can use this to detect when the seller has accepted your proposal or responded with a counter-offer.
- **Patch the
  [proposal](https://developers.google.com/authorized-buyers/apis/guides/marketplace/edit-proposals#patch)
  or [deal](https://developers.google.com/authorized-buyers/apis/guides/marketplace/update-deals)** : Modify your proposal or send a counter-offer to the seller. This will increment the `proposalRevision`.
- **[Communicate](https://developers.google.com/authorized-buyers/apis/guides/marketplace/edit-proposals#add_a_note)
  with the seller** : Proposals contain [notes](https://developers.google.com/authorized-buyers/apis/marketplace/reference/rest/v1/buyers.proposals#Proposal.FIELDS.notes) that are visible to buyers and sellers. As an example, you can [add a note](https://developers.google.com/authorized-buyers/apis/guides/marketplace/edit-proposals#add_a_note) to provide context about a change you made to a proposal or its deal.

> [!NOTE]
> **Note:** It is important that the creatives you intend to use for a deal are ready to be placed in bids when that deal begins serving. You should use the Real-time Bidding API to [submit creatives for review](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/buyer-creatives#submit_creatives_for_review) and verify that they are approved.

## Finalize and prepare for serving

When you are satisfied with a proposal and its `state` is
`BUYER_ACCEPTANCE_REQUESTED`, you can
[accept the proposal](https://developers.google.com/authorized-buyers/apis/guides/marketplace/manage-proposals#accept_proposal).
This finalizes the deal, which begins serving at the `flightStartTime`.

In order to ensure that the deal only begins serving when you have creatives
prepared, we recommend you contact your Technical Account Manager to opt your
Programmatic Guaranteed Deals out of this default behavior, and instead
manually signal when they are ready to serve. Here's an example workflow where
you manually signal when your Programmatic Guaranteed Deals are ready to serve:

- [Negotiate](https://developers.google.com/authorized-buyers/apis/guides/marketplace/programmatic-guaranteed-deals#negotiation) the proposal with the seller
- Use Real-time Bidding API to [submit creatives](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/buyer-creatives#submit_creatives_for_review) for review: The creatives you intend to place must be reviewed and approved for use in deals.
- [Accept](https://developers.google.com/authorized-buyers/apis/guides/marketplace/manage-proposals#accept_proposal) the proposal: Once a proposal is accepted, the accepted deals are reflected in finalized deals.
- Use Real-time Bidding API to [retrieve](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/buyer-creatives#get_an_individual_creative) the creatives submitted earlier, and confirm they are [approved](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/creative-fields#approved) for use in bids on deals in Real-time Bidding: View the [`dealsPolicyCompliance`](https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/v1/bidders.creatives#Creative.CreativeServingDecision.FIELDS.deals_policy_compliance) to verify that the creatives are approved and can be placed in response to incoming deal bid requests.
  - If the creative was not approved, review the [topics](https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/v1/bidders.creatives#Creative.PolicyCompliance.FIELDS.topics) to determine the reason for disapproval. Adjust the creative as necessary, and [patch](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/buyer-creatives#patch_an_existing_creative) it to initiate review once again until all issues are resolved.
- Use the Real-time Bidding API to [add](https://developers.google.com/authorized-buyers/apis/guides/rtb-api/buyer-creatives#add_deals_to_creatives_for_publisher_review) the deal to all creatives that will be used in the deal: Adding a deal to a creative lets the publisher associated with the deal review that creative before serving begins.
  - If a publisher requires manual creative review, bids with creatives that haven't been approved by the publisher will be filtered from the auction. Google recommends adding the deal to all creatives you intend to use in the deal before your deal begins.
- Manually signal that the deal is [ready to serve](https://developers.google.com/authorized-buyers/apis/guides/marketplace/serve-deals#manually_serve_deals): Once the deal is ready to serve, you will begin receiving bid requests for the deal at the configured `flightStartTime`, which will continue until either its `flightEndTime` or `impressionCap` is reached.

## Renegotiate

After a deal is finalized, you or the seller can initiate
[renegotiation](https://developers.google.com/authorized-buyers/apis/guides/marketplace/deals#start_renegotiation)
by modifying the proposal or its deals. During renegotiation, the
[`finalizedDeals`](https://developers.google.com/authorized-buyers/apis/marketplace/reference/rest/v1/buyers.finalizedDeals)
resource reflects the previous agreement and will continue serving based on
that if possible. The [`deals`](https://developers.google.com/authorized-buyers/apis/marketplace/reference/rest/v1/buyers.proposals.deals)
resource instead reflects the current state of the renegotiation, which will
proceed similarly to the initial
[negotiation](https://developers.google.com/authorized-buyers/apis/guides/marketplace/programmatic-guaranteed-deals#negotiation).

If both you and the seller accept the renegotiated deal, it will overwrite the
original finalized deal and serve based on the new agreement. Otherwise, if it
is canceled, the deal will revert to its state before renegotiation began.

## Bid on impressions for Programmatic Guaranteed Deals

When a Programmatic Guaranteed Deal begins serving, your
[Real-time Bidding](https://developers.google.com/authorized-buyers/rtb/start) integration will receive bid
requests for that deal, and must bid based on the terms of the deal--for
example, at a specific price for a set number of impressions over a period of
time.

A given bid request may include more than one PG deal. When this happens, you
are expected to respond for each deal ID submitted in the request. Fields
directly relevant to Programmatic Guaranteed Deals include the following:

| Google protocol | OpenRTB protocol | Description |
|---|---|---|
| `BidRequest.adslot.matching_ad_data.direct_deal.direct_deal_id` | `BidRequest.imp.pmp.deals.id` | Unique identifier for the deal. This will be equivalent to the resource ID of the deal as returned by Marketplace API. |
| `BidRequest.adslot.matching_ad_data.direct_deal.deal_type` | `BidRequest.imp.pmp.deals.ext.deal_type` | The type of auction, which will be set to `PROGRAMMATIC_GUARANTEED`, or "3" for OpenRTB JSON. |
| `BidRequest.adslot.matching_ad_data.direct_deal.fixed_cpm_micros` | `BidRequest.imp.pmp.deals.bidfloor` | Will be equivalent to the CPM of the deal that was agreed to by the buyer and seller--this would appear as `fixedPrice` in Marketplace API. For Programmatic Guaranteed Deals, this will override any value specified in the bid response. |
| `BidRequest.adslot.matching_ad_data.direct_deal.publisher_blocks_overridden` | `BidRequest.imp.pmp.deals.ext.publisher_blocks_overridden` | Always `true` for Programmatic Guaranteed Deals, meaning that excluded categories are allowed. |
| `BidRequest.adslot.matching_ad_data.direct_deal.must_bid` | `BidRequest.imp.pmp.deals.ext.must_bid` | Indicates whether buyers are required to bid on the deal. For example, if the deal is ahead of schedule, this would be set False and bidding would be optional. Otherwise, bidding is required, meaning that failing to bid may negatively impact deal delivery and inventory availability. |

> [!WARNING]
> **Warning:** You must place a bid when you receive a bid request where the `must_bid` field is `true`. Failing to place a bid repeatedly can cause your account to become non-compliant with the SLA requirements for Programmatic Guaranteed Deals, and may result in Google taking enforcement steps on your account.

## Pause and resume serving

You should use the `buyers.finalizedDeals.pause` method to pause a finalized
Programmatic Guaranteed deal if you are temporarily unable to bid on it. For
example, you might do this if your creative was initially approved, but was
disapproved and consequently needs to be resubmitted. Note that while this
will stop you from receiving bid requests for the deal, you will still need to
meet any obligations that were negotiated as terms for the deal.

To resume serving the finalized deal, you can use
`buyers.finalizedDeals.resume`.