This article describes how Demand-Side Platforms (DSP) can support agencies by integrating with the Agency platform, providing holistic reporting and workflow efficiencies to agencies and publishers.
Agencies can negotiate and strike programmatic non-guaranteed deals directly with publishers. These Agency-level deals will be negotiated between the agency account and the publisher, and can then be transacted across all DSPs that were set up in the agency account. When an Agency Deal is created, a universal deal ID is generated which is used by all participating DSPs. This reduces duplicate deal IDs (one per DSP seat) for the same campaign.
Integration requirements to transact using an Agency Seat
Agencies provide Google with a list of their DSP Seat IDs from each DSP in the DSP’s namespace, which Google will map to their Agency Seat. DSPs will be required to return the DSP Seat ID in their bid response so spend can be correctly associated with the agency.
- OpenRTB specification (either JSON or Protobuf): fill the
seat
field on theseatbid
. For partners that already fill this field, no immediate action is required. - Google RTB Protobuf Protocol: fill the
BidResponse.ad.ad_slot.seat
.
For bidders that are integrated with our Marketplace API, Google will return deals that agencies have struck in the bidder-scoped finalized deal resource. Given that these deals are not owned by the bidder, agency deals returned in this resource will be read-only and will not have a corresponding proposal.
Deal flow and API requirements to support non-guaranteed deals
Deals are negotiated between agencies and publishers directly through Google UIs.
- A publisher may create a proposal through the Google Ad Manager UI for Agency A.
- Agency A will login to their Agency Account UI to accept the proposal or negotiate changes.
- Once a deal is finalized and active, it will become visible to the Agency’s selected DSPs. These Agency deals (unlike traditional deals) are read-only from the perspective of the DSP but are not immutable (Agencies can renegotiate terms through Google UIs).
In order to access the finalized agency deals, DSPs should integrate with the Authorized buyer Marketplace API. DSPs can obtain a list of finalized deals through the bidder-level Finalized Deals API. Given that Agency deals are owned by the Agency Seat and not a DSP-managed account, buyers.finalizedDeals
and buyers.proposals
will not return these deals. The existing Deals API object will be extended to include additional information relating to Agency Accounts. The following are changes from the public documentation and they are shown in bold.
JSON representation of a Deal
{
// ...
// ... When the media_planner field
// is populated, this field is empty and the billed buyer is
// determined based on the bid response.
// Format: `buyers/{buyerAccountId}`
"billedBuyer"
: string
// Union field negotiating_buyer can be only one of the following:
"buyer
": string,
"client"
: string,
// This field represents a media planner (For example, agency or big
// advertiser).
"mediaPlanner"
: {
object (MediaPlanner)
}
// End of list of possible types for union field negotiating_buyer.
// If set, this field contains the list of DSP specific seat ids that
// are eligible to transact on this deal.
"eligibleSeatId"
: [
string
],
// ...
}
Note: These important changes:
- New
mediaPlanner
field that can be used to identify Agency-specific deals. - The
billedBuyer
field will be empty for Agency-specific deals. - New
eligibleSeatIds
field contains the set of seats in the DSP’s own namespace that are eligible to bid on the deal. Bid responses for the deal with no seat ID specified or a seat ID not in this list will be filtered by Google.