# Ad Exchange Buyer API . products

## Instance Methods

Gets the requested product by id.

Gets the requested product.

### Method Details

`get(productId)`

    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.
        "creatorContacts": [ # Optional contact information for the creator of this product. (buyer-readonly)
          {
            "email": "A String", # Email address of the contact.
            "name": "A String", # The name of the contact.
          },
        ],
        "kind": "adexchangebuyer#product", # Identifies what kind of resource this is. Value: the fixed string "adexchangebuyer#product".
        "sharedTargetings": [ # 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)
          {
            "inclusions": [ # The list of value to include as part of the targeting.
              {
                "longValue": "A String", # The long value to exclude/include.
                "dayPartTargetingValue": { # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING.
                  "dayParts": [
                    {
                      "dayOfWeek": "A String",
                      "endHour": 42,
                      "startMinute": 42,
                      "endMinute": 42,
                      "startHour": 42,
                    },
                  ],
                  "timeZoneType": "A String",
                },
                "creativeSizeValue": { # The creative size value to exclude/include.
                  "creativeSizeType": "A String", # The Creative size type.
                  "companionSizes": [ # For video size type, the list of companion sizes.
                    {
                      "width": 42, # The width of the creative.
                      "height": 42, # The height of the creative.
                    },
                  ],
                  "size": { # For regular or video creative size type, specifies the size of the creative.
                    "width": 42, # The width of the creative.
                    "height": 42, # The height of the creative.
                  },
                },
                "stringValue": "A String", # The string value to exclude/include.
              },
            ],
            "exclusions": [ # The list of values to exclude from targeting.
              {
                "longValue": "A String", # The long value to exclude/include.
                "dayPartTargetingValue": { # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING.
                  "dayParts": [
                    {
                      "dayOfWeek": "A String",
                      "endHour": 42,
                      "startMinute": 42,
                      "endMinute": 42,
                      "startHour": 42,
                    },
                  ],
                  "timeZoneType": "A String",
                },
                "creativeSizeValue": { # The creative size value to exclude/include.
                  "creativeSizeType": "A String", # The Creative size type.
                  "companionSizes": [ # For video size type, the list of companion sizes.
                    {
                      "width": 42, # The width of the creative.
                      "height": 42, # The height of the creative.
                    },
                  ],
                  "size": { # For regular or video creative size type, specifies the size of the creative.
                    "width": 42, # The width of the creative.
                    "height": 42, # The height of the creative.
                  },
                },
                "stringValue": "A String", # The string value to exclude/include.
              },
            ],
            "key": "A String", # The key representing the shared targeting criterion.
          },
        ],
        "terms": { # The negotiable terms of the deal (buyer-readonly)
          "brandingType": "A String", # Visibilty of the URL in bid requests.
          "estimatedGrossSpend": { # Non-binding estimate of the estimated gross spend for this deal Can be set by buyer or seller.
            "pricingType": "A String", # The pricing type for the deal/product.
            "currencyCode": "A String", # The currency code for the price.
            "amountMicros": 3.14, # The price value in micros.
          },
          "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
          "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
            "fixedPrices": [ # Fixed price for the specified buyer.
              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                  "accountId": "A String", # Adx account id of the buyer.
                },
                "price": { # The specified price
                  "pricingType": "A String", # The pricing type for the deal/product.
                  "currencyCode": "A String", # The currency code for the price.
                  "amountMicros": 3.14, # The price value in micros.
                },
              },
            ],
          },
          "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
            "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
            "fixedPrices": [ # Fixed price for the specified buyer.
              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                  "accountId": "A String", # Adx account id of the buyer.
                },
                "price": { # The specified price
                  "pricingType": "A String", # The pricing type for the deal/product.
                  "currencyCode": "A String", # The currency code for the price.
                  "amountMicros": 3.14, # The price value in micros.
                },
              },
            ],
            "guaranteedLooks": "A String", # Count of guaranteed looks. Required for deal, optional for product.
          },
          "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
            "reservePricePerBuyers": [ # Reserve price for the specified buyer.
              { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                  "accountId": "A String", # Adx account id of the buyer.
                },
                "price": { # The specified price
                  "pricingType": "A String", # The pricing type for the deal/product.
                  "currencyCode": "A String", # The currency code for the price.
                  "amountMicros": 3.14, # The price value in micros.
                },
              },
            ],
            "privateAuctionId": "A String", # Id of the corresponding private auction.
          },
          "description": "A String", # Description for the proposed terms of the deal.
        },
        "name": "A String", # The name for this product as set by the seller. (buyer-readonly)
        "syndicationProduct": "A String", # The syndication product associated with the deal. (readonly, except on create)
        "flightEndTimeMs": "A String", # The proposed end time for the deal (ms since epoch) (buyer-readonly)
        "labels": [ # Optional List of labels for the product (optional, buyer-readonly).
          {
            "createTimeMs": "A String", # The creation time (in ms since epoch) for the label.
            "deprecatedMarketplaceDealParty": { # Information about the party that created the label.
              "buyer": { # The buyer/seller associated with the deal. One of buyer/seller is specified for a deal-party.
                "accountId": "A String", # Adx account id of the buyer.
              },
              "seller": { # The buyer/seller associated with the deal. One of buyer/seller is specified for a deal party.
                "subAccountId": "A String", # Optional sub-account id for the seller.
                "accountId": "A String", # The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.
              },
            },
            "label": "A String", # The label to use.
            "accountId": "A String", # The accountId of the party that created the label.
          },
        ],
        "seller": { # Information about the seller that created this product (readonly, except on create)
          "subAccountId": "A String", # Optional sub-account id for the seller.
          "accountId": "A String", # The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.
        },
        "webPropertyCode": "A String",
        "state": "A String", # The state of the product. (buyer-readonly)
        "hasCreatorSignedOff": 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.
        "inventorySource": "A String", # What exchange will provide this inventory (readonly, except on create).
        "flightStartTimeMs": "A String", # Inventory availability dates. (times are in ms since epoch) The granularity is generally in the order of seconds. (buyer-readonly)
        "creationTimeMs": "A String", # Creation time in ms. since epoch (readonly)
        "lastUpdateTimeMs": "A String", # Time of last update in ms. since epoch (readonly)
        "revisionNumber": "A String", # The revision number of the product. (readonly)
        "productId": "A String", # The unique id for the product (readonly)
      }

`search(pqlQuery=None)`

    Gets the requested product.

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

    Returns:
      An object of the form:

        {
        "products": [ # 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.
            "creatorContacts": [ # Optional contact information for the creator of this product. (buyer-readonly)
              {
                "email": "A String", # Email address of the contact.
                "name": "A String", # The name of the contact.
              },
            ],
            "kind": "adexchangebuyer#product", # Identifies what kind of resource this is. Value: the fixed string "adexchangebuyer#product".
            "sharedTargetings": [ # 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)
              {
                "inclusions": [ # The list of value to include as part of the targeting.
                  {
                    "longValue": "A String", # The long value to exclude/include.
                    "dayPartTargetingValue": { # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING.
                      "dayParts": [
                        {
                          "dayOfWeek": "A String",
                          "endHour": 42,
                          "startMinute": 42,
                          "endMinute": 42,
                          "startHour": 42,
                        },
                      ],
                      "timeZoneType": "A String",
                    },
                    "creativeSizeValue": { # The creative size value to exclude/include.
                      "creativeSizeType": "A String", # The Creative size type.
                      "companionSizes": [ # For video size type, the list of companion sizes.
                        {
                          "width": 42, # The width of the creative.
                          "height": 42, # The height of the creative.
                        },
                      ],
                      "size": { # For regular or video creative size type, specifies the size of the creative.
                        "width": 42, # The width of the creative.
                        "height": 42, # The height of the creative.
                      },
                    },
                    "stringValue": "A String", # The string value to exclude/include.
                  },
                ],
                "exclusions": [ # The list of values to exclude from targeting.
                  {
                    "longValue": "A String", # The long value to exclude/include.
                    "dayPartTargetingValue": { # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING.
                      "dayParts": [
                        {
                          "dayOfWeek": "A String",
                          "endHour": 42,
                          "startMinute": 42,
                          "endMinute": 42,
                          "startHour": 42,
                        },
                      ],
                      "timeZoneType": "A String",
                    },
                    "creativeSizeValue": { # The creative size value to exclude/include.
                      "creativeSizeType": "A String", # The Creative size type.
                      "companionSizes": [ # For video size type, the list of companion sizes.
                        {
                          "width": 42, # The width of the creative.
                          "height": 42, # The height of the creative.
                        },
                      ],
                      "size": { # For regular or video creative size type, specifies the size of the creative.
                        "width": 42, # The width of the creative.
                        "height": 42, # The height of the creative.
                      },
                    },
                    "stringValue": "A String", # The string value to exclude/include.
                  },
                ],
                "key": "A String", # The key representing the shared targeting criterion.
              },
            ],
            "terms": { # The negotiable terms of the deal (buyer-readonly)
              "brandingType": "A String", # Visibilty of the URL in bid requests.
              "estimatedGrossSpend": { # Non-binding estimate of the estimated gross spend for this deal Can be set by buyer or seller.
                "pricingType": "A String", # The pricing type for the deal/product.
                "currencyCode": "A String", # The currency code for the price.
                "amountMicros": 3.14, # The price value in micros.
              },
              "estimatedImpressionsPerDay": "A String", # Non-binding estimate of the impressions served per day Can be set by buyer or seller.
              "nonGuaranteedFixedPriceTerms": { # The terms for non-guaranteed fixed price deals.
                "fixedPrices": [ # Fixed price for the specified buyer.
                  { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                    "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                      "accountId": "A String", # Adx account id of the buyer.
                    },
                    "price": { # The specified price
                      "pricingType": "A String", # The pricing type for the deal/product.
                      "currencyCode": "A String", # The currency code for the price.
                      "amountMicros": 3.14, # The price value in micros.
                    },
                  },
                ],
              },
              "guaranteedFixedPriceTerms": { # The terms for guaranteed fixed price deals.
                "guaranteedImpressions": "A String", # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
                "fixedPrices": [ # Fixed price for the specified buyer.
                  { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                    "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                      "accountId": "A String", # Adx account id of the buyer.
                    },
                    "price": { # The specified price
                      "pricingType": "A String", # The pricing type for the deal/product.
                      "currencyCode": "A String", # The currency code for the price.
                      "amountMicros": 3.14, # The price value in micros.
                    },
                  },
                ],
                "guaranteedLooks": "A String", # Count of guaranteed looks. Required for deal, optional for product.
              },
              "nonGuaranteedAuctionTerms": { # The terms for non-guaranteed auction deals.
                "reservePricePerBuyers": [ # Reserve price for the specified buyer.
                  { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in an product can become [0,1] deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                    "buyer": { # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there's no more specific rule matching the buyer).
                      "accountId": "A String", # Adx account id of the buyer.
                    },
                    "price": { # The specified price
                      "pricingType": "A String", # The pricing type for the deal/product.
                      "currencyCode": "A String", # The currency code for the price.
                      "amountMicros": 3.14, # The price value in micros.
                    },
                  },
                ],
                "privateAuctionId": "A String", # Id of the corresponding private auction.
              },
              "description": "A String", # Description for the proposed terms of the deal.
            },
            "name": "A String", # The name for this product as set by the seller. (buyer-readonly)
            "syndicationProduct": "A String", # The syndication product associated with the deal. (readonly, except on create)
            "flightEndTimeMs": "A String", # The proposed end time for the deal (ms since epoch) (buyer-readonly)
            "labels": [ # Optional List of labels for the product (optional, buyer-readonly).
              {
                "createTimeMs": "A String", # The creation time (in ms since epoch) for the label.
                "deprecatedMarketplaceDealParty": { # Information about the party that created the label.
                  "buyer": { # The buyer/seller associated with the deal. One of buyer/seller is specified for a deal-party.
                    "accountId": "A String", # Adx account id of the buyer.
                  },
                  "seller": { # The buyer/seller associated with the deal. One of buyer/seller is specified for a deal party.
                    "subAccountId": "A String", # Optional sub-account id for the seller.
                    "accountId": "A String", # The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.
                  },
                },
                "label": "A String", # The label to use.
                "accountId": "A String", # The accountId of the party that created the label.
              },
            ],
            "seller": { # Information about the seller that created this product (readonly, except on create)
              "subAccountId": "A String", # Optional sub-account id for the seller.
              "accountId": "A String", # The unique id for the seller. The seller fills in this field. The seller account id is then available to buyer in the product.
            },
            "webPropertyCode": "A String",
            "state": "A String", # The state of the product. (buyer-readonly)
            "hasCreatorSignedOff": 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.
            "inventorySource": "A String", # What exchange will provide this inventory (readonly, except on create).
            "flightStartTimeMs": "A String", # Inventory availability dates. (times are in ms since epoch) The granularity is generally in the order of seconds. (buyer-readonly)
            "creationTimeMs": "A String", # Creation time in ms. since epoch (readonly)
            "lastUpdateTimeMs": "A String", # Time of last update in ms. since epoch (readonly)
            "revisionNumber": "A String", # The revision number of the product. (readonly)
            "productId": "A String", # The unique id for the product (readonly)
          },
        ],
      }