---
title: "POST /v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:addCreative"
method: POST
path: "/v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:addCreative"
tags: ["buyers"]
---

# POST /v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:addCreative

`POST /v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:addCreative`

## Request

- Base URL: `https://authorizedbuyersmarketplace.googleapis.com`
- URL: `https://authorizedbuyersmarketplace.googleapis.com/v1/buyers/{buyersId}/finalizedDeals/{finalizedDealsId}:addCreative`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/authorized-buyers-marketplace`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/authorized-buyers-marketplace`

Add creative to be used in the bidding process for a finalized deal. For programmatic guaranteed deals, it's recommended that you associate at least one approved creative with the deal before calling SetReadyToServe, to help reduce the number of bid responses filtered because they don't contain approved creatives. Creatives successfully added to a deal can be found in the Realtime-bidding Creatives API creative.deal_ids. This method only applies to programmatic guaranteed deals. Maximum number of 1000 creatives can be added to a finalized deal.

## Path parameters

- `buyersId` string, required
- `finalizedDealsId` string, required

## Request body

- AddCreativeRequest: Request message for adding creative to be used in the bidding process for the finalized deal.
  - `creative` string: Name of the creative to add to the finalized deal, in the format `buyers/{buyerAccountId}/creatives/{creativeId}`. See creative.name.

## Response `200`

Successful response

- FinalizedDeal: A finalized deal is a snapshot of the deal when both buyer and seller accept the deal. The buyer or seller can update the deal after it's been finalized and renegotiate on the deal targeting, terms and other fields, while at the same time the finalized snapshot of the deal can still be retrieved using this API. The finalized deal contains a copy of the deal as it existed when most recently finalized, as well as fields related to deal serving such as pause/resume status, RTB metrics, and more.
  - `deal` Deal: A deal represents a segment of inventory for displaying ads that contains the terms and targeting information that is used for serving as well as the deal stats and status. Note: A proposal may contain multiple deals.
    - `billedBuyer` string: Output only. When the client field is populated, this field refers to the buyer who creates and manages the client buyer and gets billed on behalf of the client buyer; when the buyer field is populated, this field is the same value as buyer; when the deal belongs to a media planner account, this field will be empty. Format : `buyers/{buyerAccountId}`
    - `buyer` string: Output only. Refers to a buyer in Real-time Bidding API's Buyer resource. Format: `buyers/{buyerAccountId}`
    - `buyerPermissionType` 'BUYER_PERMISSION_TYPE_UNSPECIFIED' | 'NEGOTIATOR_ONLY' | 'BIDDER': Output only. The buyer permission type of the deal.
    - `client` string: Output only. Refers to a Client. Format: `buyers/{buyerAccountId}/clients/{clientAccountid}`
    - `createTime` string, google-datetime: Output only. The time of the deal creation.
    - `creativeRequirements` CreativeRequirements: Message captures data about the creatives in the deal.
      - `creativeFormat` 'CREATIVE_FORMAT_UNSPECIFIED' | 'DISPLAY' | 'VIDEO' | 'AUDIO': Output only. The format of the creative, only applicable for programmatic guaranteed and preferred deals.
      - `creativePreApprovalPolicy` 'CREATIVE_PRE_APPROVAL_POLICY_UNSPECIFIED' | 'SELLER_PRE_APPROVAL_REQUIRED' | 'SELLER_PRE_APPROVAL_NOT_REQUIRED': Output only. Specifies the creative pre-approval policy.
      - `creativeSafeFrameCompatibility` 'CREATIVE_SAFE_FRAME_COMPATIBILITY_UNSPECIFIED' | 'COMPATIBLE' | 'INCOMPATIBLE': Output only. Specifies whether the creative is safeFrame compatible.
      - `maxAdDurationMs` string, int64: Output only. The max duration of the video creative in milliseconds. only applicable for deals with video creatives.
      - `programmaticCreativeSource` 'PROGRAMMATIC_CREATIVE_SOURCE_UNSPECIFIED' | 'ADVERTISER' | 'PUBLISHER': Output only. Specifies the creative source for programmatic deals. PUBLISHER means creative is provided by seller and ADVERTISER means creative is provided by the buyer.
      - `skippableAdType` 'SKIPPABLE_AD_TYPE_UNSPECIFIED' | 'SKIPPABLE' | 'INSTREAM_SELECT' | 'NOT_SKIPPABLE' | 'ANY': Output only. Skippable video ads allow viewers to skip ads after 5 seconds. Only applicable for deals with video creatives.
    - `dealType` 'DEAL_TYPE_UNSPECIFIED' | 'PREFERRED_DEAL' | 'PRIVATE_AUCTION' | 'PROGRAMMATIC_GUARANTEED': Output only. Type of deal.
    - `deliveryControl` DeliveryControl: Message contains details about how the deal will be paced.
      - `companionDeliveryType` 'COMPANION_DELIVERY_TYPE_UNSPECIFIED' | 'DELIVERY_OPTIONAL' | 'DELIVERY_AT_LEAST_ONE' | 'DELIVERY_ALL': Output only. Specifies roadblocking in a main companion lineitem.
      - `creativeRotationType` 'CREATIVE_ROTATION_TYPE_UNSPECIFIED' | 'ROTATION_EVEN' | 'ROTATION_OPTIMIZED' | 'ROTATION_MANUAL' | 'ROTATION_SEQUENTIAL': Output only. Specifies strategy to use for selecting a creative when multiple creatives of the same size are available.
      - `deliveryRateType` 'DELIVERY_RATE_TYPE_UNSPECIFIED' | 'EVENLY' | 'FRONT_LOADED' | 'AS_FAST_AS_POSSIBLE': Output only. Specifies how the impression delivery will be paced.
      - `frequencyCap` FrequencyCap[]: Output only. Specifies any frequency caps. Cannot be filtered within ListDealsRequest.
        - `maxImpressions` integer: The maximum number of impressions that can be served to a user within the specified time period.
        - `timeUnitType` 'TIME_UNIT_TYPE_UNSPECIFIED' | 'MINUTE' | 'HOUR' | 'DAY' | 'WEEK' | 'MONTH' | 'LIFETIME' | 'POD' | 'STREAM': The time unit. Along with num_time_units defines the amount of time over which impressions per user are counted and capped.
        - `timeUnitsCount` integer: The amount of time, in the units specified by time_unit_type. Defines the amount of time over which impressions per user are counted and capped.
      - `roadblockingType` 'ROADBLOCKING_TYPE_UNSPECIFIED' | 'ONLY_ONE' | 'ONE_OR_MORE' | 'AS_MANY_AS_POSSIBLE' | 'ALL_ROADBLOCK' | 'CREATIVE_SET': Output only. Specifies the roadblocking type in display creatives.
    - `description` string: Output only. Free text description for the deal terms.
    - `displayName` string: Output only. The name of the deal. Maximum length of 255 unicode characters is allowed. Control characters are not allowed. Buyers cannot update this field. Note: Not to be confused with name, which is a unique identifier of the deal.
    - `eligibleSeatIds` string[]: Output only. If set, this field contains the list of DSP specific seat ids set by media planners that are eligible to transact on this deal. The seat ID is in the calling DSP's namespace.
    - `estimatedGrossSpend` Money: Represents an amount of money with its currency type.
      - `currencyCode` string: The three-letter currency code defined in ISO 4217.
      - `nanos` integer: Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
      - `units` string, int64: The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
    - `flightEndTime` string, google-datetime: Proposed flight end time of the deal. This will generally be stored in a granularity of a second. A value is not necessary for Private Auction deals.
    - `flightStartTime` string, google-datetime: Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (for example, in milliseconds) will be truncated towards the start of time in seconds.
    - `mediaPlanner` MediaPlanner: Represents a media planner account.
      - `accountId` string: Output only. Account ID of the media planner.
      - `ancestorNames` string[]: Output only. The ancestor names of the media planner. Format: `mediaPlanners/{mediaPlannerAccountId}` Can be used to filter the response of the mediaPlanners.list method.
      - `displayName` string: Output only. The display name of the media planner. Can be used to filter the response of the mediaPlanners.list method.
      - `name` string: Identifier. The unique resource name of the media planner. Format: `mediaPlanners/{mediaPlannerAccountId}` Can be used to filter the response of the mediaPlanners.list method.
    - `name` string: Immutable. The unique identifier of the deal. Auto-generated by the server when a deal is created. Format: buyers/{accountId}/proposals/{proposalId}/deals/{dealId}
    - `preferredDealTerms` PreferredDealTerms: Pricing terms for Preferred Deals.
      - `fixedPrice` Price: Represents a price and a pricing type for a deal.
        - `amount` Money: Represents an amount of money with its currency type.
          - `currencyCode` string: The three-letter currency code defined in ISO 4217.
          - `nanos` integer: Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
          - `units` string, int64: The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
        - `type` 'TYPE_UNSPECIFIED' | 'CPM' | 'CPD': The pricing type for the deal.
    - `privateAuctionTerms` PrivateAuctionTerms: Pricing terms for Private Auctions.
      - `floorPrice` Price: Represents a price and a pricing type for a deal.
        - `amount` Money: Represents an amount of money with its currency type.
          - `currencyCode` string: The three-letter currency code defined in ISO 4217.
          - `nanos` integer: Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
          - `units` string, int64: The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
        - `type` 'TYPE_UNSPECIFIED' | 'CPM' | 'CPD': The pricing type for the deal.
      - `openAuctionAllowed` boolean: Output only. True if open auction buyers are allowed to compete with invited buyers in this private auction.
    - `programmaticGuaranteedTerms` ProgrammaticGuaranteedTerms: Pricing terms for Programmatic Guaranteed Deals.
      - `fixedPrice` Price: Represents a price and a pricing type for a deal.
        - `amount` Money: Represents an amount of money with its currency type.
          - `currencyCode` string: The three-letter currency code defined in ISO 4217.
          - `nanos` integer: Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
          - `units` string, int64: The whole units of the amount. For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
        - `type` 'TYPE_UNSPECIFIED' | 'CPM' | 'CPD': The pricing type for the deal.
      - `guaranteedLooks` string, int64: Count of guaranteed looks. For CPD deals, buyer changes to guaranteed_looks will be ignored.
      - `impressionCap` string, int64: The lifetime impression cap for CPM Sponsorship deals. Deal will stop serving when cap is reached.
      - `minimumDailyLooks` string, int64: Daily minimum looks for CPD deal types. For CPD deals, buyer should negotiate on this field instead of guaranteed_looks.
      - `percentShareOfVoice` string, int64: For sponsorship deals, this is the percentage of the seller's eligible impressions that the deal will serve until the cap is reached. Valid value is within range 0~100.
      - `reservationType` 'RESERVATION_TYPE_UNSPECIFIED' | 'STANDARD' | 'SPONSORSHIP': The reservation type for a Programmatic Guaranteed deal. This indicates whether the number of impressions is fixed, or a percent of available impressions. If not specified, the default reservation type is STANDARD.
    - `proposalRevision` string, int64: Output only. The revision number for the proposal and is the same value as proposal.proposal_revision. Each update to deal causes the proposal revision number to auto-increment. The buyer keeps track of the last revision number they know of and pass it in when making an update. If the head revision number on the server has since incremented, then an ABORTED error is returned during the update operation to let the buyer know that a subsequent update was made.
    - `publisherProfile` string: Immutable. Reference to the seller on the deal. Format: `buyers/{buyerAccountId}/publisherProfiles/{publisherProfileId}`
    - `sellerTimeZone` TimeZone: Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).
      - `id` string: IANA Time Zone Database time zone. For example "America/New_York".
      - `version` string: Optional. IANA Time Zone Database version number. For example "2019a".
    - `targeting` MarketplaceTargeting: Targeting represents different criteria that can be used to target deals or auction packages. For example, they can choose to target inventory only if the user is in the US. Multiple types of targeting are always applied as a logical AND, unless noted otherwise.
      - `daypartTargeting` DayPartTargeting: Represents Daypart targeting.
        - `dayParts` DayPart[]: The targeted weekdays and times
          - `dayOfWeek` 'DAY_OF_WEEK_UNSPECIFIED' | 'MONDAY' | 'TUESDAY' | 'WEDNESDAY' | 'THURSDAY' | 'FRIDAY' | 'SATURDAY' | 'SUNDAY': Day of week for the period.
          - `endTime` TimeOfDay: Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
            - `hours` integer: Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
            - `minutes` integer: Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
            - `nanos` integer: Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
            - `seconds` integer: Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
          - `startTime` TimeOfDay: Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.
            - `hours` integer: Hours of a day in 24 hour format. Must be greater than or equal to 0 and typically must be less than or equal to 23. An API may choose to allow the value "24:00:00" for scenarios like business closing time.
            - `minutes` integer: Minutes of an hour. Must be greater than or equal to 0 and less than or equal to 59.
            - `nanos` integer: Fractions of seconds, in nanoseconds. Must be greater than or equal to 0 and less than or equal to 999,999,999.
            - `seconds` integer: Seconds of a minute. Must be greater than or equal to 0 and typically must be less than or equal to 59. An API may allow the value 60 if it allows leap-seconds.
        - `timeZoneType` 'TIME_ZONE_TYPE_UNSPECIFIED' | 'SELLER' | 'USER': The time zone type of the day parts
      - `excludedSensitiveCategoryIds` string[]: Output only. The sensitive content category label IDs excluded. Refer to this file https://storage.googleapis.com/adx-rtb-dictionaries/content-labels.txt for category IDs.
      - `geoTargeting` CriteriaTargeting: Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.
        - `excludedCriteriaIds` string[]: A list of numeric IDs to be excluded.
        - `targetedCriteriaIds` string[]: A list of numeric IDs to be included.
      - `inventorySizeTargeting` InventorySizeTargeting: Represents the size of an ad unit that can be targeted on a bid request.
        - `excludedInventorySizes` AdSize[]: A list of inventory sizes to be excluded.
          - `height` string, int64: The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
          - `type` 'TYPE_UNSPECIFIED' | 'PIXEL' | 'INTERSTITIAL' | 'NATIVE' | 'FLUID': The type of the ad slot size.
          - `width` string, int64: The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
        - `targetedInventorySizes` AdSize[]: A list of inventory sizes to be included.
          - `height` string, int64: The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
          - `type` 'TYPE_UNSPECIFIED' | 'PIXEL' | 'INTERSTITIAL' | 'NATIVE' | 'FLUID': The type of the ad slot size.
          - `width` string, int64: The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
      - `inventoryTypeTargeting` InventoryTypeTargeting: Targeting of the inventory types a bid request can originate from.
        - `inventoryTypes` string[]: The list of targeted inventory types for the bid request.
      - `placementTargeting` PlacementTargeting: Represents targeting about where the ads can appear, for example, certain sites or mobile applications. Different placement targeting types will be logically OR'ed.
        - `mobileApplicationTargeting` MobileApplicationTargeting: Mobile application targeting settings.
          - `firstPartyTargeting` FirstPartyMobileApplicationTargeting: Represents a list of targeted and excluded mobile application IDs that publishers own. Android App ID, for example, com.google.android.apps.maps, can be found in Google Play Store URL. iOS App ID (which is a number) can be found at the end of iTunes store URL. First party mobile applications is either included or excluded.
            - `excludedAppIds` string[]: A list of application IDs to be excluded.
            - `targetedAppIds` string[]: A list of application IDs to be included.
        - `uriTargeting` UriTargeting: Represents a list of targeted and excluded URLs (for example, google.com). For Private Auction Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn't apply.
          - `excludedUris` string[]: A list of URLs to be excluded.
          - `targetedUris` string[]: A list of URLs to be included.
      - `technologyTargeting` TechnologyTargeting: Represents targeting about various types of technology.
        - `deviceCapabilityTargeting` CriteriaTargeting: Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.
          - `excludedCriteriaIds` string[]: A list of numeric IDs to be excluded.
          - `targetedCriteriaIds` string[]: A list of numeric IDs to be included.
        - `deviceCategoryTargeting` CriteriaTargeting: Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.
          - `excludedCriteriaIds` string[]: A list of numeric IDs to be excluded.
          - `targetedCriteriaIds` string[]: A list of numeric IDs to be included.
        - `operatingSystemTargeting` OperatingSystemTargeting: Represents targeting information for operating systems.
          - `operatingSystemCriteria` CriteriaTargeting: Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.
            - `excludedCriteriaIds` string[]: A list of numeric IDs to be excluded.
            - `targetedCriteriaIds` string[]: A list of numeric IDs to be included.
          - `operatingSystemVersionCriteria` CriteriaTargeting: Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.
            - `excludedCriteriaIds` string[]: A list of numeric IDs to be excluded.
            - `targetedCriteriaIds` string[]: A list of numeric IDs to be included.
      - `userListTargeting` CriteriaTargeting: Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.
        - `excludedCriteriaIds` string[]: A list of numeric IDs to be excluded.
        - `targetedCriteriaIds` string[]: A list of numeric IDs to be included.
      - `verticalTargeting` CriteriaTargeting: Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. This cannot be filtered using list filter syntax.
        - `excludedCriteriaIds` string[]: A list of numeric IDs to be excluded.
        - `targetedCriteriaIds` string[]: A list of numeric IDs to be included.
      - `videoTargeting` VideoTargeting: Represents targeting information about video.
        - `excludedPositionTypes` string[]: A list of video positions to be excluded. When this field is populated, the targeted_position_types field must be empty.
        - `targetedPositionTypes` string[]: A list of video positions to be included. When this field is populated, the excluded_position_types field must be empty.
    - `updateTime` string, google-datetime: Output only. The time when the deal was last updated.
  - `dealPausingInfo` DealPausingInfo: Information related to deal pausing.
    - `pauseReason` string: The reason for the pausing of the deal; empty for active deals.
    - `pauseRole` 'BUYER_SELLER_ROLE_UNSPECIFIED' | 'BUYER' | 'SELLER': The party that first paused the deal; unspecified for active deals.
    - `pausingConsented` boolean: Whether pausing is consented between buyer and seller for the deal.
  - `dealServingStatus` 'DEAL_SERVING_STATUS_UNSPECIFIED' | 'ACTIVE' | 'ENDED' | 'PAUSED_BY_BUYER' | 'PAUSED_BY_SELLER': Serving status of the deal.
  - `name` string: The resource name of the finalized deal. Format: `buyers/{accountId}/finalizedDeals/{finalizedDealId}`
  - `readyToServe` boolean: Whether the Programmatic Guaranteed deal is ready for serving.
  - `rtbMetrics` RtbMetrics: Real-time bidding metrics. For what each metric means refer to [Report metrics](https://support.google.com/adxbuyer/answer/6115195#report-metrics)
    - `adImpressions7Days` string, int64: Ad impressions in last 7 days.
    - `bidRate7Days` number, double: Bid rate in last 7 days, calculated by (bids / bid requests).
    - `bidRequests7Days` string, int64: Bid requests in last 7 days.
    - `bids7Days` string, int64: Bids in last 7 days.
    - `filteredBidRate7Days` number, double: Filtered bid rate in last 7 days, calculated by (filtered bids / bids).
    - `mustBidRateCurrentMonth` number, double: Must bid rate for current month.

## Changes

- **2026-10-29** `4e374f878f32`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/google/apis/authorizedbuyersmarketplace/changes/v1/buyers/:buyersId/finalizedDeals/:finalizedDealsId:addCreative/post.md)

---

[API](https://skmtc.dev/google/apis/authorizedbuyersmarketplace.md) - [All operations](https://skmtc.dev/google/apis/authorizedbuyersmarketplace/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/authorizedbuyersmarketplace/revisions/4e374f878f32?raw)
