blob: c68ce7789b8e66b3d7fb28ad42f1c2e0fb211923 [file] [log] [blame]
<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>