REST Resource: products

Resource: Product

Product data. After inserting, updating, or deleting a product, it may take several minutes before changes take effect.

JSON representation
{
  "id": string,
  "offerId": string,
  "title": string,
  "description": string,
  "link": string,
  "imageLink": string,
  "additionalImageLinks": [
    string
  ],
  "lifestyleImageLinks": [
    string
  ],
  "contentLanguage": string,
  "targetCountry": string,
  "feedLabel": string,
  "channel": string,
  "expirationDate": string,
  "disclosureDate": string,
  "adult": boolean,
  "kind": string,
  "brand": string,
  "color": string,
  "googleProductCategory": string,
  "gtin": string,
  "itemGroupId": string,
  "material": string,
  "mpn": string,
  "pattern": string,
  "price": {
    object (Price)
  },
  "salePrice": {
    object (Price)
  },
  "salePriceEffectiveDate": string,
  "productHeight": {
    object (ProductDimension)
  },
  "productLength": {
    object (ProductDimension)
  },
  "productWidth": {
    object (ProductDimension)
  },
  "productWeight": {
    object (ProductWeight)
  },
  "shipping": [
    {
      object (ProductShipping)
    }
  ],
  "freeShippingThreshold": [
    {
      object (FreeShippingThreshold)
    }
  ],
  "shippingWeight": {
    object (ProductShippingWeight)
  },
  "sizes": [
    string
  ],
  "taxes": [
    {
      object (ProductTax)
    }
  ],
  "customAttributes": [
    {
      object (CustomAttribute)
    }
  ],
  "identifierExists": boolean,
  "installment": {
    object (Installment)
  },
  "loyaltyProgram": {
    object (LoyaltyProgram)
  },
  "loyaltyPrograms": [
    {
      object (LoyaltyProgram)
    }
  ],
  "multipack": string,
  "customLabel0": string,
  "customLabel1": string,
  "customLabel2": string,
  "customLabel3": string,
  "customLabel4": string,
  "isBundle": boolean,
  "mobileLink": string,
  "availabilityDate": string,
  "shippingLabel": string,
  "unitPricingMeasure": {
    object (ProductUnitPricingMeasure)
  },
  "unitPricingBaseMeasure": {
    object (ProductUnitPricingBaseMeasure)
  },
  "shippingLength": {
    object (ProductShippingDimension)
  },
  "shippingWidth": {
    object (ProductShippingDimension)
  },
  "shippingHeight": {
    object (ProductShippingDimension)
  },
  "displayAdsId": string,
  "displayAdsSimilarIds": [
    string
  ],
  "displayAdsTitle": string,
  "displayAdsLink": string,
  "displayAdsValue": number,
  "sellOnGoogleQuantity": string,
  "promotionIds": [
    string
  ],
  "maxHandlingTime": string,
  "minHandlingTime": string,
  "costOfGoodsSold": {
    object (Price)
  },
  "autoPricingMinPrice": {
    object (Price)
  },
  "source": string,
  "includedDestinations": [
    string
  ],
  "excludedDestinations": [
    string
  ],
  "adsGrouping": string,
  "adsLabels": [
    string
  ],
  "adsRedirect": string,
  "productTypes": [
    string
  ],
  "ageGroup": string,
  "availability": string,
  "condition": string,
  "gender": string,
  "sizeSystem": string,
  "sizeType": string,
  "additionalSizeType": string,
  "energyEfficiencyClass": string,
  "minEnergyEfficiencyClass": string,
  "maxEnergyEfficiencyClass": string,
  "taxCategory": string,
  "transitTimeLabel": string,
  "shoppingAdsExcludedCountries": [
    string
  ],
  "pickupMethod": string,
  "pickupSla": string,
  "linkTemplate": string,
  "mobileLinkTemplate": string,
  "productDetails": [
    {
      object (ProductProductDetail)
    }
  ],
  "productHighlights": [
    string
  ],
  "subscriptionCost": {
    object (ProductSubscriptionCost)
  },
  "canonicalLink": string,
  "externalSellerId": string,
  "pause": string,
  "virtualModelLink": string,
  "cloudExportAdditionalProperties": [
    {
      object (CloudExportAdditionalProperties)
    }
  ],
  "certifications": [
    {
      object (ProductCertification)
    }
  ],
  "structuredTitle": {
    object (ProductStructuredTitle)
  },
  "structuredDescription": {
    object (ProductStructuredDescription)
  }
}
Fields
id

string

The REST ID of the product. Content API methods that operate on products take this as their productId parameter.

The REST ID for a product has one of the 2 forms channel:contentLanguage:targetCountry: offerId or channel:contentLanguage:feedLabel: offerId.

offerId

string

Required. A unique identifier for the item. Leading and trailing whitespaces are stripped and multiple whitespaces are replaced by a single whitespace upon submission. Only valid unicode characters are accepted. See the products feed specification for details.

Note: Content API methods that operate on products take the REST ID of the product, not this identifier.

title

string

Title of the item.

description

string

Description of the item.

contentLanguage

string

Required. The two-letter ISO 639-1 language code for the item.

targetCountry

string

Required. The CLDR territory code for the item's country of sale.

feedLabel

string

Feed label for the item. Either targetCountry or feedLabel is required. Must be less than or equal to 20 uppercase letters (A-Z), numbers (0-9), and dashes (-).

channel

string

Required. The item's channel (online or local).

Acceptable values are:

  • "local"
  • "online"
expirationDate

string

Date on which the item should expire, as specified upon insertion, in ISO 8601 format. The actual expiration date in Google Shopping is exposed in productstatuses as googleExpirationDate and might be earlier if expirationDate is too far in the future.

disclosureDate

string

The date time when an offer becomes visible in search results across Google’s YouTube surfaces, in ISO 8601 format. See Disclosure date for more information.

adult

boolean

Should be set to true if the item is targeted towards adults.

kind

string

Identifies what kind of resource this is. Value: the fixed string "content#product"

brand

string

Brand of the item.

color

string

Color of the item.

googleProductCategory

string

Google's category of the item (see Google product taxonomy). When querying products, this field will contain the user provided value. There is currently no way to get back the auto assigned google product categories through the API.

gtin

string

Global Trade Item Number (GTIN) of the item.

itemGroupId

string

Shared identifier for all variants of the same product.

material

string

The material of which the item is made.

mpn

string

Manufacturer Part Number (MPN) of the item.

pattern

string

The item's pattern (for example, polka dots).

price

object (Price)

Price of the item.

salePrice

object (Price)

Advertised sale price of the item.

salePriceEffectiveDate

string

Date range during which the item is on sale (see product data specification).

productHeight

object (ProductDimension)

The height of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).

productLength

object (ProductDimension)

The length of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).

productWidth

object (ProductDimension)

The width of the product in the units provided. The value must be between 0 (exclusive) and 3000 (inclusive).

productWeight

object (ProductWeight)

The weight of the product in the units provided. The value must be between 0 (exclusive) and 2000 (inclusive).

shipping[]

object (ProductShipping)

Shipping rules.

freeShippingThreshold[]

object (FreeShippingThreshold)

Optional. Conditions to be met for a product to have free shipping.

shippingWeight

object (ProductShippingWeight)

Weight of the item for shipping.

sizes[]

string

Size of the item. Only one value is allowed. For variants with different sizes, insert a separate product for each size with the same itemGroupId value (see size definition).

taxes[]

object (ProductTax)

Tax information.

customAttributes[]

object (CustomAttribute)

A list of custom (merchant-provided) attributes. It can also be used for submitting any attribute of the feed specification in its generic form (for example, { "name": "size type", "value": "regular" }). This is useful for submitting attributes not explicitly exposed by the API, such as additional attributes used for Buy on Google (formerly known as Shopping Actions).

identifierExists

boolean

False when the item does not have unique product identifiers appropriate to its category, such as GTIN, MPN, and brand. Required according to the Unique Product Identifier Rules for all target countries except for Canada.

installment

object (Installment)

Number and amount of installments to pay for an item.

loyaltyProgram

object (LoyaltyProgram)

Loyalty program information that is used to surface loyalty benefits ( for example, better pricing, points, etc) to the user of this item. This signular field points to the latest uploaded loyalty program info. This field will be deprecated in the coming weeks and should not be used in favor of the plural 'LoyaltyProgram' field below.

loyaltyPrograms[]

object (LoyaltyProgram)

Optional. A list of loyalty program information that is used to surface loyalty benefits (for example, better pricing, points, etc) to the user of this item.

multipack

string (int64 format)

The number of identical products in a merchant-defined multipack.

customLabel0

string

Custom label 0 for custom grouping of items in a Shopping campaign.

customLabel1

string

Custom label 1 for custom grouping of items in a Shopping campaign.

customLabel2

string

Custom label 2 for custom grouping of items in a Shopping campaign.

customLabel3

string

Custom label 3 for custom grouping of items in a Shopping campaign.

customLabel4

string

Custom label 4 for custom grouping of items in a Shopping campaign.

isBundle

boolean

Whether the item is a merchant-defined bundle. A bundle is a custom grouping of different products sold by a merchant for a single price.

availabilityDate

string

The day a pre-ordered product becomes available for delivery, in ISO 8601 format.

shippingLabel

string

The shipping label of the product, used to group product in account-level shipping rules.

unitPricingMeasure

object (ProductUnitPricingMeasure)

The measure and dimension of an item.

unitPricingBaseMeasure

object (ProductUnitPricingBaseMeasure)

The preference of the denominator of the unit price.

shippingLength

object (ProductShippingDimension)

Length of the item for shipping.

shippingWidth

object (ProductShippingDimension)

Width of the item for shipping.

shippingHeight

object (ProductShippingDimension)

Height of the item for shipping.

displayAdsId

string

An identifier for an item for dynamic remarketing campaigns.

displayAdsSimilarIds[]

string

Advertiser-specified recommendations.

displayAdsTitle

string

Title of an item for dynamic remarketing campaigns.

displayAdsValue

number

Offer margin for dynamic remarketing campaigns.

sellOnGoogleQuantity

string (int64 format)

The quantity of the product that is available for selling on Google. Supported only for online products.

promotionIds[]

string

The unique ID of a promotion.

maxHandlingTime

string (int64 format)

Maximal product handling time (in business days).

minHandlingTime

string (int64 format)

Minimal product handling time (in business days).

costOfGoodsSold

object (Price)

Cost of goods sold. Used for gross profit reporting.

autoPricingMinPrice

object (Price)

A safeguard in the Automated Discounts and Dynamic Promotions projects, ensuring that discounts on merchants' offers do not fall below this value, thereby preserving the offer's value and profitability.

source

string

Output only. The source of the offer, that is, how the offer was created.

Acceptable values are:

  • "api"
  • "crawl"
  • "feed"
includedDestinations[]

string

The list of destinations to include for this target (corresponds to checked check boxes in Merchant Center). Default destinations are always included unless provided in excludedDestinations.

excludedDestinations[]

string

The list of destinations to exclude for this target (corresponds to cleared check boxes in Merchant Center). Products that are excluded from all destinations for more than 7 days are automatically deleted.

adsGrouping

string

Used to group items in an arbitrary way. Only for CPA%, discouraged otherwise.

adsLabels[]

string

Similar to adsGrouping, but only works on CPC.

adsRedirect

string

Allows advertisers to override the item URL when the product is shown within the context of Product Ads.

productTypes[]

string

Categories of the item (formatted as in product data specification).

ageGroup

string

Target age group of the item.

availability

string

Availability status of the item.

condition

string

Condition or state of the item.

gender

string

Target gender of the item.

sizeSystem

string

System in which the size is specified. Recommended for apparel items.

sizeType

string

The cut of the item. Recommended for apparel items.

additionalSizeType

string

Additional cut of the item. Used together with sizeType to represent combined size types for apparel items.

energyEfficiencyClass

string

The energy efficiency class as defined in EU directive 2010/30/EU.

minEnergyEfficiencyClass

string

The energy efficiency class as defined in EU directive 2010/30/EU.

maxEnergyEfficiencyClass

string

The energy efficiency class as defined in EU directive 2010/30/EU.

taxCategory

string

The tax category of the product, used to configure detailed tax nexus in account-level tax settings.

transitTimeLabel

string

The transit time label of the product, used to group product in account-level transit time tables.

shoppingAdsExcludedCountries[]

string

products.list of country codes (ISO 3166-1 alpha-2) to exclude the offer from Shopping Ads destination. Countries from this list are removed from countries configured in MC feed settings.

pickupMethod

string

The pick up option for the item.

Acceptable values are:

  • "buy"
  • "reserve"
  • "ship to store"
  • "not supported"
pickupSla

string

Item store pickup timeline.

Acceptable values are:

  • "same day"
  • "next day"
  • "2-day"
  • "3-day"
  • "4-day"
  • "5-day"
  • "6-day"
  • "7-day"
  • "multi-week"
productDetails[]

object (ProductProductDetail)

Technical specification or additional product details.

productHighlights[]

string

Bullet points describing the most relevant highlights of a product.

subscriptionCost

object (ProductSubscriptionCost)

Number of periods (months or years) and amount of payment per period for an item with an associated subscription contract.

externalSellerId

string

Required for multi-seller accounts. Use this attribute if you're a marketplace uploading products for various sellers to your multi-seller account.

pause

string

Publication of this item should be temporarily paused.

Acceptable values are:

  • "ads"
cloudExportAdditionalProperties[]

object (CloudExportAdditionalProperties)

Extra fields to export to the Cloud Retail program.

certifications[]

object (ProductCertification)

Product certification, introduced for EU energy efficiency labeling compliance using the EU EPREL database.

structuredTitle

object (ProductStructuredTitle)

Structured title, for algorithmically (AI)-generated titles.

structuredDescription

object (ProductStructuredDescription)

Structured description, for algorithmically (AI)-generated descriptions.

ProductDimension

JSON representation
{
  "value": number,
  "unit": string
}
Fields
value

number

Required. The length value represented as a number. The value can have a maximum precision of four decimal places.

unit

string

Required. The length units.

Acceptable values are:

  • "in"
  • "cm"

ProductWeight

JSON representation
{
  "value": number,
  "unit": string
}
Fields
value

number

Required. The weight represented as a number. The weight can have a maximum precision of four decimal places.

unit

string

Required. The weight unit.

Acceptable values are:

  • "g"
  • "kg"
  • "oz"
  • "lb"

ProductShipping

JSON representation
{
  "price": {
    object (Price)
  },
  "country": string,
  "region": string,
  "service": string,
  "locationId": string,
  "locationGroupName": string,
  "postalCode": string,
  "minHandlingTime": string,
  "maxHandlingTime": string,
  "minTransitTime": string,
  "maxTransitTime": string
}
Fields
price

object (Price)

Fixed shipping price, represented as a number.

country

string

The CLDR territory code of the country to which an item will ship.

region

string

The geographic region to which a shipping rate applies.

service

string

A free-form description of the service class or delivery speed.

locationId

string (int64 format)

The numeric ID of a location that the shipping rate applies to as defined in the Google Ads API.

locationGroupName

string

The location where the shipping is applicable, represented by a location group name.

postalCode

string

The postal code range that the shipping rate applies to, represented by a postal code, a postal code prefix followed by a * wildcard, a range between two postal codes or two postal code prefixes of equal length.

minHandlingTime

string (int64 format)

Minimum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it's received if it happens before the cut-off time. minHandlingTime can only be present together with maxHandlingTime; but it's not required if maxHandlingTime is present.

maxHandlingTime

string (int64 format)

Maximum handling time (inclusive) between when the order is received and shipped in business days. 0 means that the order is shipped on the same day as it's received if it happens before the cut-off time. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.

minTransitTime

string (int64 format)

Minimum transit time (inclusive) between when the order has shipped and when it's delivered in business days. 0 means that the order is delivered on the same day as it ships. minTransitTime can only be present together with maxTransitTime; but it's not required if maxTransitTime is present.

maxTransitTime

string (int64 format)

Maximum transit time (inclusive) between when the order has shipped and when it's delivered in business days. 0 means that the order is delivered on the same day as it ships. Both maxHandlingTime and maxTransitTime are required if providing shipping speeds.

FreeShippingThreshold

Conditions to be met for a product to have free shipping.

JSON representation
{
  "country": string,
  "priceThreshold": {
    object (Price)
  }
}
Fields
country

string

Required. The CLDR territory code of the country to which an item will ship.

priceThreshold

object (Price)

Required. The minimum product price for the shipping cost to become free. Represented as a number.

ProductShippingWeight

JSON representation
{
  "value": number,
  "unit": string
}
Fields
value

number

The weight of the product used to calculate the shipping cost of the item.

unit

string

The unit of value.

ProductTax

JSON representation
{
  "rate": number,
  "country": string,
  "region": string,
  "taxShip": boolean,
  "locationId": string,
  "postalCode": string
}
Fields
rate

number

The percentage of tax rate that applies to the item price.

country

string

The country within which the item is taxed, specified as a CLDR territory code.

region

string

The geographic region to which the tax rate applies.

taxShip

boolean

Should be set to true if tax is charged on shipping.

locationId

string (int64 format)

The numeric ID of a location that the tax rate applies to as defined in the Google Ads API.

postalCode

string

The postal code range that the tax rate applies to, represented by a ZIP code, a ZIP code prefix using * wildcard, a range between two ZIP codes or two ZIP code prefixes of equal length. Examples: 94114, 94*, 94002-95460, 94*-95*.

Installment

Details of a monthly installment payment offering. Learn more about installments.

JSON representation
{
  "months": string,
  "amount": {
    object (Price)
  },
  "downpayment": {
    object (Price)
  },
  "creditType": string
}
Fields
months

string (int64 format)

The number of installments the buyer has to pay.

amount

object (Price)

The amount the buyer has to pay per month.

downpayment

object (Price)

Optional. The initial down payment amount the buyer has to pay.

creditType

string

Optional. Type of installment payments.

Supported values are:

  • "finance"
  • "lease"

LoyaltyProgram

Allows the setting up of loyalty program benefits (for example price or points). https://support.google.com/merchants/answer/12922446

JSON representation
{
  "programLabel": string,
  "tierLabel": string,
  "price": {
    object (Price)
  },
  "cashbackForFutureUse": {
    object (Price)
  },
  "loyaltyPoints": string,
  "memberPriceEffectiveDate": string,
  "shippingLabel": string
}
Fields
programLabel

string

Required. The label of the loyalty program. This is an internal label that uniquely identifies the relationship between a merchant entity and a loyalty program entity. It must be provided so that system can associate the assets below (for example, price and points) with a merchant. The corresponding program must be linked to the merchant account.

tierLabel

string

Required. The label of the tier within the loyalty program. Must match one of the labels within the program.

price

object (Price)

Optional. The price for members of the given tier (instant discount price). Must be smaller or equal to the regular price.

cashbackForFutureUse

object (Price)

Optional. The cashback that can be used for future purchases.

loyaltyPoints

string (int64 format)

Optional. The amount of loyalty points earned on a purchase.

memberPriceEffectiveDate

string

Optional. A date range during which the item is eligible for member price. If not specified, the member price is always applicable. The date range is represented by a pair of ISO 8601 dates separated by a space, comma, or slash.

shippingLabel

string

Optional. The shipping label for the loyalty program. You can use this label to indicate whether this offer has the loyalty shipping benefit. If not specified, the item is not eligible for loyalty shipping for the given loyalty tier.

ProductUnitPricingMeasure

JSON representation
{
  "value": number,
  "unit": string
}
Fields
value

number

The measure of an item.

unit

string

The unit of the measure.

ProductUnitPricingBaseMeasure

JSON representation
{
  "value": string,
  "unit": string
}
Fields
value

string (int64 format)

The denominator of the unit price.

unit

string

The unit of the denominator.

ProductShippingDimension

JSON representation
{
  "value": number,
  "unit": string
}
Fields
value

number

The dimension of the product used to calculate the shipping cost of the item.

unit

string

The unit of value.

ProductProductDetail

JSON representation
{
  "sectionName": string,
  "attributeName": string,
  "attributeValue": string
}
Fields
sectionName

string

The section header used to group a set of product details.

attributeName

string

The name of the product detail.

attributeValue

string

The value of the product detail.

ProductSubscriptionCost

JSON representation
{
  "period": string,
  "periodLength": string,
  "amount": {
    object (Price)
  }
}
Fields
period

string

The type of subscription period.

  • "month"
  • "year"
periodLength

string (int64 format)

The number of subscription periods the buyer has to pay.

amount

object (Price)

The amount the buyer has to pay per subscription period.

CloudExportAdditionalProperties

Product property for the Cloud Retail API. For example, properties for a TV product could be "Screen-Resolution" or "Screen-Size".

JSON representation
{
  "propertyName": string,
  "textValue": [
    string
  ],
  "boolValue": boolean,
  "intValue": [
    string
  ],
  "floatValue": [
    number
  ],
  "minValue": number,
  "maxValue": number,
  "unitCode": string
}
Fields
propertyName

string

Name of the given property. For example, "Screen-Resolution" for a TV product. Maximum string size is 256 characters.

textValue[]

string

Text value of the given property. For example, "8K(UHD)" could be a text value for a TV product. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order. Maximum string size is 256 characters.

boolValue

boolean

Boolean value of the given property. For example for a TV product, "True" or "False" if the screen is UHD.

intValue[]

string (int64 format)

Integer values of the given property. For example, 1080 for a screen resolution of a TV product. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order.

floatValue[]

number

Float values of the given property. For example for a TV product 1.2345. Maximum number of specified values for this field is 400. Values are stored in an arbitrary but consistent order.

minValue

number

Minimum float value of the given property. For example for a TV product 1.00.

maxValue

number

Maximum float value of the given property. For example for a TV product 100.00.

unitCode

string

Unit of the given property. For example, "Pixels" for a TV product. Maximum string size is 256 bytes.

ProductCertification

Product certification, introduced for EU energy efficiency labeling compliance using the EU EPREL database.

JSON representation
{
  "certificationAuthority": string,
  "certificationName": string,
  "certificationCode": string,
  "certificationValue": string
}
Fields
certificationAuthority

string

The certification authority, for example "European_Commission". Maximum length is 2000 characters.

certificationName

string

The name of the certification, for example "EPREL". Maximum length is 2000 characters.

certificationCode

string

The certification code, for eaxample "123456". Maximum length is 2000 characters.

certificationValue

string

The certification value (also known as class, level or grade), for example "A+", "C", "gold". Maximum length is 2000 characters.

ProductStructuredTitle

Structured title, for algorithmically (AI)-generated titles. See title for more information.

JSON representation
{
  "digitalSourceType": string,
  "content": string
}
Fields
digitalSourceType

string

Optional. The digital source type.

Acceptable values are:

  • "trained_algorithmic_media"
  • "default"
content

string

Required. The title text. Maximum length is 150 characters.

ProductStructuredDescription

Structured description, for algorithmically (AI)-generated descriptions. See description for more information.

JSON representation
{
  "digitalSourceType": string,
  "content": string
}
Fields
digitalSourceType

string

Optional. The digital source type.

Acceptable values are:

  • "trained_algorithmic_media"
  • "default"
content

string

Required. The description text. Maximum length is 5000 characters.

Methods

custombatch

Retrieves, inserts, and deletes multiple products in a single request.

delete

Deletes a product from your Merchant Center account.

get

Retrieves a product from your Merchant Center account.

insert

Uploads a product to your Merchant Center account.

list

Lists the products in your Merchant Center account.

update

Updates an existing product in your Merchant Center account.