<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="adexchangebuyer_v1_4.html">Ad Exchange Buyer API</a> . <a href="adexchangebuyer_v1_4.products.html">products</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(productId)</a></code></p>
<p class="firstline">Gets the requested product by id.</p>
<p class="toc_element">
  <code><a href="#search">search(pqlQuery=None)</a></code></p>
<p class="firstline">Gets the requested product.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(productId)</code>
  <pre>Gets the requested product by id.

Args:
  productId: string, The id for the product to get the head revision for. (required)

Returns:
  An object of the form:

    { # A product is segment of inventory that a seller wishes to sell. It is associated with certain terms and targeting information which helps buyer know more about the inventory. Each field in a product can have one of the following setting:
    #
    # (readonly) - It is an error to try and set this field. (buyer-readonly) - Only the seller can set this field. (seller-readonly) - Only the buyer can set this field. (updatable) - The field is updatable at all times by either buyer or the seller.
  &quot;billedBuyer&quot;: { # The billed buyer corresponding to the buyer that created the offer. (readonly, except on create)
    &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
  },
  &quot;buyer&quot;: { # The buyer that created the offer if this is a buyer initiated offer (readonly, except on create)
    &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
  },
  &quot;creationTimeMs&quot;: &quot;A String&quot;, # Creation time in ms. since epoch (readonly)
  &quot;creatorContacts&quot;: [ # Optional contact information for the creator of this product. (buyer-readonly)
    {
      &quot;email&quot;: &quot;A String&quot;, # Email address of the contact.
      &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
    },
  ],
  &quot;creatorRole&quot;: &quot;A String&quot;, # The role that created the offer. Set to BUYER for buyer initiated offers.
  &quot;deliveryControl&quot;: { # The set of fields around delivery control that are interesting for a buyer to see but are non-negotiable. These are set by the publisher. This message is assigned an id of 100 since some day we would want to model this as a protobuf extension.
    &quot;creativeBlockingLevel&quot;: &quot;A String&quot;,
    &quot;deliveryRateType&quot;: &quot;A String&quot;,
    &quot;frequencyCaps&quot;: [
      {
        &quot;maxImpressions&quot;: 42,
        &quot;numTimeUnits&quot;: 42,
        &quot;timeUnitType&quot;: &quot;A String&quot;,
      },
    ],
  },
  &quot;flightEndTimeMs&quot;: &quot;A String&quot;, # The proposed end time for the deal (ms since epoch) (buyer-readonly)
  &quot;flightStartTimeMs&quot;: &quot;A String&quot;, # Inventory availability dates. (times are in ms since epoch) The granularity is generally in the order of seconds. (buyer-readonly)
  &quot;hasCreatorSignedOff&quot;: True or False, # If the creator has already signed off on the product, then the buyer can finalize the deal by accepting the product as is. When copying to a proposal, if any of the terms are changed, then auto_finalize is automatically set to false.
  &quot;inventorySource&quot;: &quot;A String&quot;, # What exchange will provide this inventory (readonly, except on create).
  &quot;kind&quot;: &quot;adexchangebuyer#product&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;adexchangebuyer#product&quot;.
  &quot;labels&quot;: [ # Optional List of labels for the product (optional, buyer-readonly).
    {
      &quot;accountId&quot;: &quot;A String&quot;, # The accountId of the party that created the label.
      &quot;createTimeMs&quot;: &quot;A String&quot;, # The creation time (in ms since epoch) for the label.
      &quot;deprecatedMarketplaceDealParty&quot;: { # Information about the party that created the label.
        &quot;buyer&quot;: { # The buyer/seller associated with the deal. One of buyer/seller is specified for a deal-party.
          &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
        },
        &quot;seller&quot;: { # The buyer/seller associated with the deal. One of buyer/seller is specified for a deal party.
          &quot;accountId&quot;: &quot;A String&quot;, # The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.
          &quot;subAccountId&quot;: &quot;A String&quot;, # Optional sub-account id for the seller.
        },
      },
      &quot;label&quot;: &quot;A String&quot;, # The label to use.
    },
  ],
  &quot;lastUpdateTimeMs&quot;: &quot;A String&quot;, # Time of last update in ms. since epoch (readonly)
  &quot;legacyOfferId&quot;: &quot;A String&quot;, # Optional legacy offer id if this offer is a preferred deal offer.
  &quot;marketplacePublisherProfileId&quot;: &quot;A String&quot;, # Marketplace publisher profile Id. This Id differs from the regular publisher_profile_id in that 1. This is a new id, the old Id will be deprecated in 2017. 2. This id uniquely identifies a publisher profile by itself.
  &quot;name&quot;: &quot;A String&quot;, # The name for this product as set by the seller. (buyer-readonly)
  &quot;privateAuctionId&quot;: &quot;A String&quot;, # Optional private auction id if this offer is a private auction offer.
  &quot;productId&quot;: &quot;A String&quot;, # The unique id for the product (readonly)
  &quot;publisherProfileId&quot;: &quot;A String&quot;, # Id of the publisher profile for a given seller. A (seller.account_id, publisher_profile_id) pair uniquely identifies a publisher profile. Buyers can call the PublisherProfiles::List endpoint to get a list of publisher profiles for a given seller.
  &quot;publisherProvidedForecast&quot;: { # This message carries publisher provided forecasting information. # Publisher self-provided forecast information.
    &quot;dimensions&quot;: [ # Publisher provided dimensions. E.g. geo, sizes etc...
      { # This message carries publisher provided breakdown. E.g. {dimension_type: &#x27;COUNTRY&#x27;, [{dimension_value: {id: 1, name: &#x27;US&#x27;}}, {dimension_value: {id: 2, name: &#x27;UK&#x27;}}]}
        &quot;dimensionType&quot;: &quot;A String&quot;,
        &quot;dimensionValues&quot;: [
          { # Value of the dimension.
            &quot;id&quot;: 42, # Id of the dimension.
            &quot;name&quot;: &quot;A String&quot;, # Name of the dimension mainly for debugging purposes, except for the case of CREATIVE_SIZE. For CREATIVE_SIZE, strings are used instead of ids.
            &quot;percentage&quot;: 42, # Percent of total impressions for a dimension type. e.g. {dimension_type: &#x27;GENDER&#x27;, [{dimension_value: {id: 1, name: &#x27;MALE&#x27;, percentage: 60}}]} Gender MALE is 60% of all impressions which have gender.
          },
        ],
      },
    ],
    &quot;weeklyImpressions&quot;: &quot;A String&quot;, # Publisher provided weekly impressions.
    &quot;weeklyUniques&quot;: &quot;A String&quot;, # Publisher provided weekly uniques.
  },
  &quot;revisionNumber&quot;: &quot;A String&quot;, # The revision number of the product. (readonly)
  &quot;seller&quot;: { # Information about the seller that created this product (readonly, except on create)
    &quot;accountId&quot;: &quot;A String&quot;, # The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.
    &quot;subAccountId&quot;: &quot;A String&quot;, # Optional sub-account id for the seller.
  },
  &quot;sharedTargetings&quot;: [ # Targeting that is shared between the buyer and the seller. Each targeting criteria has a specified key and for each key there is a list of inclusion value or exclusion values. (buyer-readonly)
    {
      &quot;exclusions&quot;: [ # The list of values to exclude from targeting. Each value is AND&#x27;d together.
        {
          &quot;creativeSizeValue&quot;: { # Next Id: 7 # The creative size value to exclude/include.
            &quot;allowedFormats&quot;: [ # The formats allowed by the publisher.
              &quot;A String&quot;,
            ],
            &quot;companionSizes&quot;: [ # For video size type, the list of companion sizes.
              {
                &quot;height&quot;: 42, # The height of the creative.
                &quot;width&quot;: 42, # The width of the creative.
              },
            ],
            &quot;creativeSizeType&quot;: &quot;A String&quot;, # The Creative size type.
            &quot;nativeTemplate&quot;: &quot;A String&quot;, # The native template for native ad.
            &quot;size&quot;: { # For regular or video creative size type, specifies the size of the creative.
              &quot;height&quot;: 42, # The height of the creative.
              &quot;width&quot;: 42, # The width of the creative.
            },
            &quot;skippableAdType&quot;: &quot;A String&quot;, # The skippable ad type for video size.
          },
          &quot;dayPartTargetingValue&quot;: { # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING.
            &quot;dayParts&quot;: [
              {
                &quot;dayOfWeek&quot;: &quot;A String&quot;,
                &quot;endHour&quot;: 42,
                &quot;endMinute&quot;: 42,
                &quot;startHour&quot;: 42,
                &quot;startMinute&quot;: 42,
              },
            ],
            &quot;timeZoneType&quot;: &quot;A String&quot;,
          },
          &quot;demogAgeCriteriaValue&quot;: {
            &quot;demogAgeCriteriaIds&quot;: [
              &quot;A String&quot;,
            ],
          },
          &quot;demogGenderCriteriaValue&quot;: {
            &quot;demogGenderCriteriaIds&quot;: [
              &quot;A String&quot;,
            ],
          },
          &quot;longValue&quot;: &quot;A String&quot;, # The long value to exclude/include.
          &quot;requestPlatformTargetingValue&quot;: {
            &quot;requestPlatforms&quot;: [
              &quot;A String&quot;,
            ],
          },
          &quot;stringValue&quot;: &quot;A String&quot;, # The string value to exclude/include.
        },
      ],
      &quot;inclusions&quot;: [ # The list of value to include as part of the targeting. Each value is OR&#x27;d together.
        {
          &quot;creativeSizeValue&quot;: { # Next Id: 7 # The creative size value to exclude/include.
            &quot;allowedFormats&quot;: [ # The formats allowed by the publisher.
              &quot;A String&quot;,
            ],
            &quot;companionSizes&quot;: [ # For video size type, the list of companion sizes.
              {
                &quot;height&quot;: 42, # The height of the creative.
                &quot;width&quot;: 42, # The width of the creative.
              },
            ],
            &quot;creativeSizeType&quot;: &quot;A String&quot;, # The Creative size type.
            &quot;nativeTemplate&quot;: &quot;A String&quot;, # The native template for native ad.
            &quot;size&quot;: { # For regular or video creative size type, specifies the size of the creative.
              &quot;height&quot;: 42, # The height of the creative.
              &quot;width&quot;: 42, # The width of the creative.
            },
            &quot;skippableAdType&quot;: &quot;A String&quot;, # The skippable ad type for video size.
          },
          &quot;dayPartTargetingValue&quot;: { # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING.
            &quot;dayParts&quot;: [
              {
                &quot;dayOfWeek&quot;: &quot;A String&quot;,
                &quot;endHour&quot;: 42,
                &quot;endMinute&quot;: 42,
                &quot;startHour&quot;: 42,
                &quot;startMinute&quot;: 42,
              },
            ],
            &quot;timeZoneType&quot;: &quot;A String&quot;,
          },
          &quot;demogAgeCriteriaValue&quot;: {
            &quot;demogAgeCriteriaIds&quot;: [
              &quot;A String&quot;,
            ],
          },
          &quot;demogGenderCriteriaValue&quot;: {
            &quot;demogGenderCriteriaIds&quot;: [
              &quot;A String&quot;,
            ],
          },
          &quot;longValue&quot;: &quot;A String&quot;, # The long value to exclude/include.
          &quot;requestPlatformTargetingValue&quot;: {
            &quot;requestPlatforms&quot;: [
              &quot;A String&quot;,
            ],
          },
          &quot;stringValue&quot;: &quot;A String&quot;, # The string value to exclude/include.
        },
      ],
      &quot;key&quot;: &quot;A String&quot;, # The key representing the shared targeting criterion.
    },
  ],
  &quot;state&quot;: &quot;A String&quot;, # The state of the product. (buyer-readonly)
  &quot;syndicationProduct&quot;: &quot;A String&quot;, # The syndication product associated with the deal. (readonly, except on create)
  &quot;terms&quot;: { # The negotiable terms of the deal (buyer-readonly)
    &quot;brandingType&quot;: &quot;A String&quot;, # Visibility of the URL in bid requests.
    &quot;crossListedExternalDealIdType&quot;: &quot;A String&quot;, # Indicates that this ExternalDealId exists under at least two different AdxInventoryDeals. Currently, the only case that the same ExternalDealId will exist is programmatic cross sell case.
    &quot;description&quot;: &quot;A String&quot;, # Description for the proposed terms of the deal.
    &quot;estimatedGrossSpend&quot;: { # Non-binding estimate of the estimated gross spend for this deal Can be set by buyer or seller.
      &quot;amountMicros&quot;: 3.14, # The price value in micros.
      &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
      &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
      &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
    },
    &quot;estimatedImpressionsPerDay&quot;: &quot;A String&quot;, # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
    &quot;guaranteedFixedPriceTerms&quot;: { # The terms for guaranteed fixed price deals.
      &quot;billingInfo&quot;: { # External billing info for this Deal. This field is relevant when external billing info such as price has a different currency code than DFP/AdX.
        &quot;currencyConversionTimeMs&quot;: &quot;A String&quot;, # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer&#x27;s currency without discrepancy.
        &quot;dfpLineItemId&quot;: &quot;A String&quot;, # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
        &quot;originalContractedQuantity&quot;: &quot;A String&quot;, # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
        &quot;price&quot;: { # The original reservation price for the deal, if the currency code is different from the one used in negotiation.
          &quot;amountMicros&quot;: 3.14, # The price value in micros.
          &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
          &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
          &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
        },
      },
      &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
        { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
          &quot;auctionTier&quot;: &quot;A String&quot;, # Optional access type for this buyer.
          &quot;billedBuyer&quot;: { # Reference to the buyer that will get billed.
            &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
          },
          &quot;buyer&quot;: { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
            &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
          },
          &quot;price&quot;: { # The specified price
            &quot;amountMicros&quot;: 3.14, # The price value in micros.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
            &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
            &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
          },
        },
      ],
      &quot;guaranteedImpressions&quot;: &quot;A String&quot;, # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
      &quot;guaranteedLooks&quot;: &quot;A String&quot;, # Count of guaranteed looks. Required for deal, optional for product. For CPD deals, buyer changes to guaranteed_looks will be ignored.
      &quot;minimumDailyLooks&quot;: &quot;A String&quot;, # Count of minimum daily looks for a CPD deal. For CPD deals, buyer should negotiate on this field instead of guaranteed_looks.
    },
    &quot;nonGuaranteedAuctionTerms&quot;: { # The terms for non-guaranteed auction deals.
      &quot;autoOptimizePrivateAuction&quot;: True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
      &quot;reservePricePerBuyers&quot;: [ # Reserve price for the specified buyer.
        { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
          &quot;auctionTier&quot;: &quot;A String&quot;, # Optional access type for this buyer.
          &quot;billedBuyer&quot;: { # Reference to the buyer that will get billed.
            &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
          },
          &quot;buyer&quot;: { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
            &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
          },
          &quot;price&quot;: { # The specified price
            &quot;amountMicros&quot;: 3.14, # The price value in micros.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
            &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
            &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
          },
        },
      ],
    },
    &quot;nonGuaranteedFixedPriceTerms&quot;: { # The terms for non-guaranteed fixed price deals.
      &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
        { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
          &quot;auctionTier&quot;: &quot;A String&quot;, # Optional access type for this buyer.
          &quot;billedBuyer&quot;: { # Reference to the buyer that will get billed.
            &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
          },
          &quot;buyer&quot;: { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
            &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
          },
          &quot;price&quot;: { # The specified price
            &quot;amountMicros&quot;: 3.14, # The price value in micros.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
            &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
            &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
          },
        },
      ],
    },
    &quot;rubiconNonGuaranteedTerms&quot;: { # The terms for rubicon non-guaranteed deals.
      &quot;priorityPrice&quot;: { # Optional price for Rubicon priority access in the auction.
        &quot;amountMicros&quot;: 3.14, # The price value in micros.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
        &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
        &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
      },
      &quot;standardPrice&quot;: { # Optional price for Rubicon standard access in the auction.
        &quot;amountMicros&quot;: 3.14, # The price value in micros.
        &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
        &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
        &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
      },
    },
    &quot;sellerTimeZone&quot;: &quot;A String&quot;, # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
  },
  &quot;webPropertyCode&quot;: &quot;A String&quot;, # The web property code for the seller. This field is meant to be copied over as is when creating deals.
}</pre>
</div>

<div class="method">
    <code class="details" id="search">search(pqlQuery=None)</code>
  <pre>Gets the requested product.

Args:
  pqlQuery: string, The pql query used to query for products.

Returns:
  An object of the form:

    {
  &quot;products&quot;: [ # The returned list of products.
    { # A product is segment of inventory that a seller wishes to sell. It is associated with certain terms and targeting information which helps buyer know more about the inventory. Each field in a product can have one of the following setting:
        #
        # (readonly) - It is an error to try and set this field. (buyer-readonly) - Only the seller can set this field. (seller-readonly) - Only the buyer can set this field. (updatable) - The field is updatable at all times by either buyer or the seller.
      &quot;billedBuyer&quot;: { # The billed buyer corresponding to the buyer that created the offer. (readonly, except on create)
        &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
      },
      &quot;buyer&quot;: { # The buyer that created the offer if this is a buyer initiated offer (readonly, except on create)
        &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
      },
      &quot;creationTimeMs&quot;: &quot;A String&quot;, # Creation time in ms. since epoch (readonly)
      &quot;creatorContacts&quot;: [ # Optional contact information for the creator of this product. (buyer-readonly)
        {
          &quot;email&quot;: &quot;A String&quot;, # Email address of the contact.
          &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
        },
      ],
      &quot;creatorRole&quot;: &quot;A String&quot;, # The role that created the offer. Set to BUYER for buyer initiated offers.
      &quot;deliveryControl&quot;: { # The set of fields around delivery control that are interesting for a buyer to see but are non-negotiable. These are set by the publisher. This message is assigned an id of 100 since some day we would want to model this as a protobuf extension.
        &quot;creativeBlockingLevel&quot;: &quot;A String&quot;,
        &quot;deliveryRateType&quot;: &quot;A String&quot;,
        &quot;frequencyCaps&quot;: [
          {
            &quot;maxImpressions&quot;: 42,
            &quot;numTimeUnits&quot;: 42,
            &quot;timeUnitType&quot;: &quot;A String&quot;,
          },
        ],
      },
      &quot;flightEndTimeMs&quot;: &quot;A String&quot;, # The proposed end time for the deal (ms since epoch) (buyer-readonly)
      &quot;flightStartTimeMs&quot;: &quot;A String&quot;, # Inventory availability dates. (times are in ms since epoch) The granularity is generally in the order of seconds. (buyer-readonly)
      &quot;hasCreatorSignedOff&quot;: True or False, # If the creator has already signed off on the product, then the buyer can finalize the deal by accepting the product as is. When copying to a proposal, if any of the terms are changed, then auto_finalize is automatically set to false.
      &quot;inventorySource&quot;: &quot;A String&quot;, # What exchange will provide this inventory (readonly, except on create).
      &quot;kind&quot;: &quot;adexchangebuyer#product&quot;, # Identifies what kind of resource this is. Value: the fixed string &quot;adexchangebuyer#product&quot;.
      &quot;labels&quot;: [ # Optional List of labels for the product (optional, buyer-readonly).
        {
          &quot;accountId&quot;: &quot;A String&quot;, # The accountId of the party that created the label.
          &quot;createTimeMs&quot;: &quot;A String&quot;, # The creation time (in ms since epoch) for the label.
          &quot;deprecatedMarketplaceDealParty&quot;: { # Information about the party that created the label.
            &quot;buyer&quot;: { # The buyer/seller associated with the deal. One of buyer/seller is specified for a deal-party.
              &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
            },
            &quot;seller&quot;: { # The buyer/seller associated with the deal. One of buyer/seller is specified for a deal party.
              &quot;accountId&quot;: &quot;A String&quot;, # The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.
              &quot;subAccountId&quot;: &quot;A String&quot;, # Optional sub-account id for the seller.
            },
          },
          &quot;label&quot;: &quot;A String&quot;, # The label to use.
        },
      ],
      &quot;lastUpdateTimeMs&quot;: &quot;A String&quot;, # Time of last update in ms. since epoch (readonly)
      &quot;legacyOfferId&quot;: &quot;A String&quot;, # Optional legacy offer id if this offer is a preferred deal offer.
      &quot;marketplacePublisherProfileId&quot;: &quot;A String&quot;, # Marketplace publisher profile Id. This Id differs from the regular publisher_profile_id in that 1. This is a new id, the old Id will be deprecated in 2017. 2. This id uniquely identifies a publisher profile by itself.
      &quot;name&quot;: &quot;A String&quot;, # The name for this product as set by the seller. (buyer-readonly)
      &quot;privateAuctionId&quot;: &quot;A String&quot;, # Optional private auction id if this offer is a private auction offer.
      &quot;productId&quot;: &quot;A String&quot;, # The unique id for the product (readonly)
      &quot;publisherProfileId&quot;: &quot;A String&quot;, # Id of the publisher profile for a given seller. A (seller.account_id, publisher_profile_id) pair uniquely identifies a publisher profile. Buyers can call the PublisherProfiles::List endpoint to get a list of publisher profiles for a given seller.
      &quot;publisherProvidedForecast&quot;: { # This message carries publisher provided forecasting information. # Publisher self-provided forecast information.
        &quot;dimensions&quot;: [ # Publisher provided dimensions. E.g. geo, sizes etc...
          { # This message carries publisher provided breakdown. E.g. {dimension_type: &#x27;COUNTRY&#x27;, [{dimension_value: {id: 1, name: &#x27;US&#x27;}}, {dimension_value: {id: 2, name: &#x27;UK&#x27;}}]}
            &quot;dimensionType&quot;: &quot;A String&quot;,
            &quot;dimensionValues&quot;: [
              { # Value of the dimension.
                &quot;id&quot;: 42, # Id of the dimension.
                &quot;name&quot;: &quot;A String&quot;, # Name of the dimension mainly for debugging purposes, except for the case of CREATIVE_SIZE. For CREATIVE_SIZE, strings are used instead of ids.
                &quot;percentage&quot;: 42, # Percent of total impressions for a dimension type. e.g. {dimension_type: &#x27;GENDER&#x27;, [{dimension_value: {id: 1, name: &#x27;MALE&#x27;, percentage: 60}}]} Gender MALE is 60% of all impressions which have gender.
              },
            ],
          },
        ],
        &quot;weeklyImpressions&quot;: &quot;A String&quot;, # Publisher provided weekly impressions.
        &quot;weeklyUniques&quot;: &quot;A String&quot;, # Publisher provided weekly uniques.
      },
      &quot;revisionNumber&quot;: &quot;A String&quot;, # The revision number of the product. (readonly)
      &quot;seller&quot;: { # Information about the seller that created this product (readonly, except on create)
        &quot;accountId&quot;: &quot;A String&quot;, # The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.
        &quot;subAccountId&quot;: &quot;A String&quot;, # Optional sub-account id for the seller.
      },
      &quot;sharedTargetings&quot;: [ # Targeting that is shared between the buyer and the seller. Each targeting criteria has a specified key and for each key there is a list of inclusion value or exclusion values. (buyer-readonly)
        {
          &quot;exclusions&quot;: [ # The list of values to exclude from targeting. Each value is AND&#x27;d together.
            {
              &quot;creativeSizeValue&quot;: { # Next Id: 7 # The creative size value to exclude/include.
                &quot;allowedFormats&quot;: [ # The formats allowed by the publisher.
                  &quot;A String&quot;,
                ],
                &quot;companionSizes&quot;: [ # For video size type, the list of companion sizes.
                  {
                    &quot;height&quot;: 42, # The height of the creative.
                    &quot;width&quot;: 42, # The width of the creative.
                  },
                ],
                &quot;creativeSizeType&quot;: &quot;A String&quot;, # The Creative size type.
                &quot;nativeTemplate&quot;: &quot;A String&quot;, # The native template for native ad.
                &quot;size&quot;: { # For regular or video creative size type, specifies the size of the creative.
                  &quot;height&quot;: 42, # The height of the creative.
                  &quot;width&quot;: 42, # The width of the creative.
                },
                &quot;skippableAdType&quot;: &quot;A String&quot;, # The skippable ad type for video size.
              },
              &quot;dayPartTargetingValue&quot;: { # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING.
                &quot;dayParts&quot;: [
                  {
                    &quot;dayOfWeek&quot;: &quot;A String&quot;,
                    &quot;endHour&quot;: 42,
                    &quot;endMinute&quot;: 42,
                    &quot;startHour&quot;: 42,
                    &quot;startMinute&quot;: 42,
                  },
                ],
                &quot;timeZoneType&quot;: &quot;A String&quot;,
              },
              &quot;demogAgeCriteriaValue&quot;: {
                &quot;demogAgeCriteriaIds&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;demogGenderCriteriaValue&quot;: {
                &quot;demogGenderCriteriaIds&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;longValue&quot;: &quot;A String&quot;, # The long value to exclude/include.
              &quot;requestPlatformTargetingValue&quot;: {
                &quot;requestPlatforms&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;stringValue&quot;: &quot;A String&quot;, # The string value to exclude/include.
            },
          ],
          &quot;inclusions&quot;: [ # The list of value to include as part of the targeting. Each value is OR&#x27;d together.
            {
              &quot;creativeSizeValue&quot;: { # Next Id: 7 # The creative size value to exclude/include.
                &quot;allowedFormats&quot;: [ # The formats allowed by the publisher.
                  &quot;A String&quot;,
                ],
                &quot;companionSizes&quot;: [ # For video size type, the list of companion sizes.
                  {
                    &quot;height&quot;: 42, # The height of the creative.
                    &quot;width&quot;: 42, # The width of the creative.
                  },
                ],
                &quot;creativeSizeType&quot;: &quot;A String&quot;, # The Creative size type.
                &quot;nativeTemplate&quot;: &quot;A String&quot;, # The native template for native ad.
                &quot;size&quot;: { # For regular or video creative size type, specifies the size of the creative.
                  &quot;height&quot;: 42, # The height of the creative.
                  &quot;width&quot;: 42, # The width of the creative.
                },
                &quot;skippableAdType&quot;: &quot;A String&quot;, # The skippable ad type for video size.
              },
              &quot;dayPartTargetingValue&quot;: { # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING.
                &quot;dayParts&quot;: [
                  {
                    &quot;dayOfWeek&quot;: &quot;A String&quot;,
                    &quot;endHour&quot;: 42,
                    &quot;endMinute&quot;: 42,
                    &quot;startHour&quot;: 42,
                    &quot;startMinute&quot;: 42,
                  },
                ],
                &quot;timeZoneType&quot;: &quot;A String&quot;,
              },
              &quot;demogAgeCriteriaValue&quot;: {
                &quot;demogAgeCriteriaIds&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;demogGenderCriteriaValue&quot;: {
                &quot;demogGenderCriteriaIds&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;longValue&quot;: &quot;A String&quot;, # The long value to exclude/include.
              &quot;requestPlatformTargetingValue&quot;: {
                &quot;requestPlatforms&quot;: [
                  &quot;A String&quot;,
                ],
              },
              &quot;stringValue&quot;: &quot;A String&quot;, # The string value to exclude/include.
            },
          ],
          &quot;key&quot;: &quot;A String&quot;, # The key representing the shared targeting criterion.
        },
      ],
      &quot;state&quot;: &quot;A String&quot;, # The state of the product. (buyer-readonly)
      &quot;syndicationProduct&quot;: &quot;A String&quot;, # The syndication product associated with the deal. (readonly, except on create)
      &quot;terms&quot;: { # The negotiable terms of the deal (buyer-readonly)
        &quot;brandingType&quot;: &quot;A String&quot;, # Visibility of the URL in bid requests.
        &quot;crossListedExternalDealIdType&quot;: &quot;A String&quot;, # Indicates that this ExternalDealId exists under at least two different AdxInventoryDeals. Currently, the only case that the same ExternalDealId will exist is programmatic cross sell case.
        &quot;description&quot;: &quot;A String&quot;, # Description for the proposed terms of the deal.
        &quot;estimatedGrossSpend&quot;: { # Non-binding estimate of the estimated gross spend for this deal Can be set by buyer or seller.
          &quot;amountMicros&quot;: 3.14, # The price value in micros.
          &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
          &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
          &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
        },
        &quot;estimatedImpressionsPerDay&quot;: &quot;A String&quot;, # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
        &quot;guaranteedFixedPriceTerms&quot;: { # The terms for guaranteed fixed price deals.
          &quot;billingInfo&quot;: { # External billing info for this Deal. This field is relevant when external billing info such as price has a different currency code than DFP/AdX.
            &quot;currencyConversionTimeMs&quot;: &quot;A String&quot;, # The timestamp (in ms since epoch) when the original reservation price for the deal was first converted to DFP currency. This is used to convert the contracted price into buyer&#x27;s currency without discrepancy.
            &quot;dfpLineItemId&quot;: &quot;A String&quot;, # The DFP line item id associated with this deal. For features like CPD, buyers can retrieve the DFP line item for billing reconciliation.
            &quot;originalContractedQuantity&quot;: &quot;A String&quot;, # The original contracted quantity (# impressions) for this deal. To ensure delivery, sometimes the publisher will book the deal with a impression buffer, such that guaranteed_looks is greater than the contracted quantity. However clients are billed using the original contracted quantity.
            &quot;price&quot;: { # The original reservation price for the deal, if the currency code is different from the one used in negotiation.
              &quot;amountMicros&quot;: 3.14, # The price value in micros.
              &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
              &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
              &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
            },
          },
          &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
            { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
              &quot;auctionTier&quot;: &quot;A String&quot;, # Optional access type for this buyer.
              &quot;billedBuyer&quot;: { # Reference to the buyer that will get billed.
                &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
              },
              &quot;buyer&quot;: { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
              },
              &quot;price&quot;: { # The specified price
                &quot;amountMicros&quot;: 3.14, # The price value in micros.
                &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
                &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
              },
            },
          ],
          &quot;guaranteedImpressions&quot;: &quot;A String&quot;, # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
          &quot;guaranteedLooks&quot;: &quot;A String&quot;, # Count of guaranteed looks. Required for deal, optional for product. For CPD deals, buyer changes to guaranteed_looks will be ignored.
          &quot;minimumDailyLooks&quot;: &quot;A String&quot;, # Count of minimum daily looks for a CPD deal. For CPD deals, buyer should negotiate on this field instead of guaranteed_looks.
        },
        &quot;nonGuaranteedAuctionTerms&quot;: { # The terms for non-guaranteed auction deals.
          &quot;autoOptimizePrivateAuction&quot;: True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction (buyer-readonly).
          &quot;reservePricePerBuyers&quot;: [ # Reserve price for the specified buyer.
            { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
              &quot;auctionTier&quot;: &quot;A String&quot;, # Optional access type for this buyer.
              &quot;billedBuyer&quot;: { # Reference to the buyer that will get billed.
                &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
              },
              &quot;buyer&quot;: { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
              },
              &quot;price&quot;: { # The specified price
                &quot;amountMicros&quot;: 3.14, # The price value in micros.
                &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
                &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
              },
            },
          ],
        },
        &quot;nonGuaranteedFixedPriceTerms&quot;: { # The terms for non-guaranteed fixed price deals.
          &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
            { # Used to specify pricing rules for buyers. Each PricePerBuyer in a product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer we look for the most specific matching rule - we first look for a rule matching the buyer and otherwise look for a matching rule where no buyer is set.
              &quot;auctionTier&quot;: &quot;A String&quot;, # Optional access type for this buyer.
              &quot;billedBuyer&quot;: { # Reference to the buyer that will get billed.
                &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
              },
              &quot;buyer&quot;: { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Adx account id of the buyer.
              },
              &quot;price&quot;: { # The specified price
                &quot;amountMicros&quot;: 3.14, # The price value in micros.
                &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
                &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
              },
            },
          ],
        },
        &quot;rubiconNonGuaranteedTerms&quot;: { # The terms for rubicon non-guaranteed deals.
          &quot;priorityPrice&quot;: { # Optional price for Rubicon priority access in the auction.
            &quot;amountMicros&quot;: 3.14, # The price value in micros.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
            &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
            &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
          },
          &quot;standardPrice&quot;: { # Optional price for Rubicon standard access in the auction.
            &quot;amountMicros&quot;: 3.14, # The price value in micros.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The currency code for the price.
            &quot;expectedCpmMicros&quot;: 3.14, # In case of CPD deals, the expected CPM in micros.
            &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product.
          },
        },
        &quot;sellerTimeZone&quot;: &quot;A String&quot;, # For deals with Cost Per Day billing, defines the timezone used to mark the boundaries of a day (buyer-readonly)
      },
      &quot;webPropertyCode&quot;: &quot;A String&quot;, # The web property code for the seller. This field is meant to be copied over as is when creating deals.
    },
  ],
}</pre>
</div>

</body></html>