Enable the API
Similar to other Authorized Buyers' APIs, you need to enable the Marketplace API before you can use it. You can enable the Marketplace API with the following steps:
- Go to the Google API Console Enabled APIs page. Select the project you use to access other Authorized Buyers APIs, such as Ad Exchange Buyer II or Real-time Bidding API.
- Click the + ENABLE APIS AND SERVICES link.
- In the search box, type "Authorized Buyers Marketplace API", and press Enter.
- In the search results, select Authorized Buyers Marketplace API.
- Click the ENABLE button to enable the Marketplace API.
- You should now be able to access the Marketplace API with credentials created under this project.
Update your OAuth 2.0 credentials
Existing OAuth 2.0 workflows with the Ad Exchange Buyer II API scope need to be changed to use the Marketplace API scope:
https://www.googleapis.com/auth/authorized-buyers-marketplace
We recommend using the Service Account OAuth 2.0 flow to access the API. All supported OAuth 2.0 flows must specify the new API scope to request a token from Google that can access Marketplace API.
Mapping Ad Exchange Buyer II API resources to the Marketplace API
Clients
If you use Ad Exchange Buyer II API's
accounts.clients
resource, you can migrate to Marketplace API's
buyers.clients
resource.
Resource methods
Ad Exchange Buyer II API | Marketplace API |
---|---|
accounts.clients.create |
buyers.clients.create |
accounts.clients.get |
buyers.clients.get |
accounts.clients.list |
buyers.clients.list
This method now supports list filters. |
accounts.clients.update |
buyers.clients.patch
This method now supports partial updates with the
|
Resource fields
Ad Exchange Buyer II API | Marketplace API |
---|---|
Client.clientAccountId |
Client.name
The |
Client.role |
Client.role |
Client.status |
Client.state |
Client.clientName |
Client.displayName |
Client.visibleToSeller |
Client.sellerVisible |
Client.entityType |
This field has been sunset. |
Client.entityId |
This field has been sunset. |
Client.entityName |
This field has been sunset. |
Client.partnerClientId |
Client.partnerClientId |
Invitations & Users
Marketplace API combines the functionality of Ad Exchange Buyer II API's
accounts.clients.invitations
and accounts.clients.users
resources into a single
buyers.clients.users
resource.
Resource methods
Ad Exchange Buyer II API | Marketplace API |
---|---|
accounts.clients.invitations.create |
buyers.clients.users.create |
accounts.clients.invitations.get |
buyers.clients.users.get |
accounts.clients.invitations.list |
buyers.clients.users.list
Only users with their |
accounts.clients.users.get |
buyers.clients.users.get |
accounts.clients.users.list |
buyers.clients.users.list
|
accounts.clients.users.update |
You can no longer patch client users with the API. We recommend
that you use
|
Resource fields
Ad Exchange Buyer II API | Marketplace API |
---|---|
ClientUserInvitation.invitationId |
This field has been sunset. |
ClientUserInvitation.email |
ClientUser.email |
ClientUserInvitation.clientAccountId |
This field no longer exists for client users. Instead, view the
|
ClientUser.userId |
ClientUser.name
The |
ClientUser.clientAccountId |
This field no longer exists for client users. Instead, view the
|
ClientUser.status |
ClientUser.state |
ClientUser.email |
ClientUser.email |
Products
This resource and its functionality aren't available in Marketplace API.
PublisherProfiles
If you use Ad Exchange Buyer II API's
accounts.publisherProfiles
resource, you can migrate to Marketplace API's
buyers.publisherProfiles
resource.
Resource methods
Ad Exchange Buyer II API | Marketplace API |
---|---|
accounts.publisherProfiles.get |
buyers.publisherProfiles.get |
accounts.publisherProfiles.list |
buyers.publisherProfiles.list
This method now supports list filters. |
Resource fields
Ad Exchange Buyer II API | Marketplace API |
---|---|
PublisherProfile.publisherProfileId |
PublisherProfile.name
The |
PublisherProfile.seller.accountId |
PublisherProfile.seller.accountId |
PublisherProfile.seller.subAccountId |
PublisherProfile.seller.subAccountId |
PublisherProfile.displayName |
PublisherProfile.displayName |
PublisherProfile.domains |
PublisherProfile.domains |
PublisherProfile.mobileApps |
PublisherProfile.mobileApps |
PublisherProfile.logoUrl |
PublisherProfile.logoUrl |
PublisherProfile.directDealsContact |
PublisherProfile.directDealsContact |
PublisherProfile.programmaticDealsContact |
PublisherProfile.programmaticDealsContact |
PublisherProfile.mediaKitUrl |
PublisherProfile.mediaKitUrl |
PublisherProfile.samplePageUrl |
PublisherProfile.samplePageUrl |
PublisherProfile.rateCardUrl |
This field has been sunset. |
PublisherProfile.googlePlusUrl |
This field has been sunset. |
PublisherProfile.overview |
PublisherProfile.overview |
PublisherProfile.buyerPitchStatement |
PublisherProfile.pitchStatement |
PublisherProfile.topHeadlines |
PublisherProfile.topHeadlines |
PublisherProfile.audienceDescription |
PublisherProfile.audienceDescription |
PublisherProfile.isParent |
PublisherProfile.isParent |
Proposals & FinalizedProposals
If you use Ad Exchange Buyer II API's
accounts.proposals
resource, you can migrate to Marketplace API's
buyers.proposals
resource. Deals have been separated from proposals into the
buyers.proposals.deals
sub-resource. Finalized proposals are no longer represented in the API, giving
you more granular control of finalized deals with the
buyers.finalizedDeals
resource.
Resource methods
Resource fields
The proposals
and finalizedProposals
resources share the same Proposal
representation and have similar migration steps.
Ad Exchange Buyer II API | Marketplace API |
---|---|
Proposal.proposalId |
Proposal.name
The |
Proposal.updateTime |
Proposal.updateTime |
Proposal.proposalRevision |
|
Proposal.deals.dealId |
Deal.name
The |
Proposal.deals.proposalId |
Deal.name
The |
Proposal.deals.createTime |
Deal.createTime |
Proposal.deals.updateTime |
Deal.updateTime |
Proposal.deals.createProductId |
This field has been sunset. |
Proposal.deals.createProductRevision |
This field has been sunset. |
Proposal.deals.displayName |
Deal.displayName |
Proposal.deals.buyerPrivateData.referenceId |
This field has been sunset; it is now only exposed at the proposal level. |
Proposal.deals.dealTerms.description |
Deal.description |
Proposal.deals.dealTerms.brandingType |
This field has been sunset. |
Proposal.deals.dealTerms.estimatedGrossSpend |
Deal.estimatedGrossSpend |
Proposal.deals.dealTerms.estimatedImpressionsPerDay |
This field has been sunset. |
Proposal.deals.dealTerms.sellerTimeZone |
Deal.sellerTimeZone |
Proposal.deals.dealTerms.guaranteedFixedPriceTerms |
Note that while |
Proposal.deals.dealTerms.nonGuaranteedFixedPriceTerms |
Note that while |
Proposal.deals.dealTerms.NonGuaranteedAuctionTerms |
Note that while
|
Proposal.deals.webPropertyCode |
This field has been sunset. |
Proposal.deals.sellerContacts |
Proposal.sellerContacts |
Proposal.deals.availableStartTime |
Proposal.flightStartTime |
Proposal.deals.availableEndTime |
Proposal.flightEndTime |
Proposal.deals.description |
Proposal.description |
Proposal.deals.targetingCriterion |
Deal.targeting
It is no longer possible to configure targeting using a key to
determine the targeting category; however, categories that could be
targeted can be found in |
Proposal.deals.targeting |
Deal.targeting
Additional targeting criteria categories have been added. |
Proposal.deals.creativeRestrictions.creativeFormat |
Deal.creativeRequirements.creativeFormat |
Proposal.deals.creativeRestrictions.skippableAdType |
Deal.creativeRequirements.skippableAdType |
Proposal.deals.creativeRestrictions.creativeSpecifications.creativeSize
|
Deal.targeting.inventorySizeTargeting |
Proposal.deals.externalDealId |
This field has been sunset. |
Proposal.deals.syndicationProduct |
This field has been sunset. |
Proposal.deals.creativePreApprovalPolicy |
Deal.creativeRequirements.creativePreApprovalPolicy |
Proposal.deals.creativeSafeFrameCompatibility |
Deal.creativeRequirements.creativeSafeFrameCompatibility
|
Proposal.deals.dealServingMetadata |
Similar information can be found in the
|
Proposal.deals.programmaticCreativeSource |
Deal.creativeRequirements.programmaticCreativeSource |
Proposal.deals.deliveryControl |
Deal.deliveryControl
Additional details about how deals will place have been added. |
Proposal.deals.isSetupComplete |
FinalizedDeal.readyToServe
You can now only signal that a deal is ready to serve if it is
finalized. Use the |
Proposal.originatorRole |
Proposal.originatorRole |
Proposal.seller.accountId |
Proposal.publisherProfile
Use the publisher profile name to identify the seller. You can view
publisher profiles with the |
Proposal.seller.subAccountId |
Proposal.publisherProfile
Use the publisher profile name to identify the seller. You can view
publisher profiles with the |
Proposal.buyer.accountId |
The field used will depend on the account type of the negotiating
buyer. These are resource names of either a Real-time Bidding API
|
Proposal.billedBuyer.accountId |
Proposal.billedBuyer
This is now a resource name referring to a buyer account as
represented in the Real-time Bidding API's |
Proposal.displayName |
Proposal.displayName |
Proposal.proposalState |
Proposal.state |
Proposal.isRenegotiating |
Proposal.isRenegotiating |
Proposal.buyerPrivateData |
Proposal.buyerPrivateData |
Proposal.sellerContacts |
Proposal.sellerContacts |
Proposal.buyerContacts |
Proposal.buyerContacts |
Proposal.privateAuctionId |
This field has been sunset. |
Proposal.isSetupComplete |
FinalizedDeal.readyToServe
Now accessed more granularly with |
Proposal.lastUpdaterOrCommentorRole |
Proposal.lastUpdaterOrCommentorRole |
Proposal.notes.proposalRevision |
This field has been sunset. |
Proposal.notes.noteId |
This field has been sunset. |
Proposal.notes.createTime |
Proposal.notes.createTime |
Proposal.notes.creatorRole |
Proposal.notes.creatorRole |
Proposal.notes.note |
Proposal.notes.note |
Proposal.termsAndConditions |
Proposal.termsAndConditions |