Google Merchant Center products table schema
Overview
When your Google Merchant Center reporting data is transferredto BigQuery, the format of product and product issues datacorresponds primarily to the format of the relevant fields of the Content API'sProductsandProductstatusesresources.
The data is written to a table namedProducts_MERCHANT_ID if you are using an individualMerchant ID, orProducts_AGGREGATOR_ID if you're using an MCAaccount.
Products and product issues data is not available immediately whenthe report is first requested. When you first request a transfer for a merchantor aggregator ID, there might be a delay of up to 1 day before theProducts_table is available for exporting.Schema
TheProducts_ table has the following schema:
| Column | BigQuery data type | Description | Example data |
|---|---|---|---|
product_data_timestamp | TIMESTAMP | Timestamp of the product data. | 2023-09-14 11:49:50 UTC |
product_id | STRING | Content API's REST ID of the product in the form:channel:content_language:feed_label:offer_id. This is the primary key. | online:en:AU:666840730 |
merchant_id | INTEGER | Merchant account ID. | 1234 |
aggregator_id | INTEGER | Aggregator account ID for multi-client accounts. | 12345 |
offer_id | STRING | Merchant providedid of the product. | tddy123uk |
title | STRING | Title of the item. | TN2351 black USB |
description | STRING | Description of the item. | The TN2351 black USB has redefined how XJS can impact LLCD experiences. |
link | STRING | Merchant providedURL of the landing page of the product. | https://www.example.com/tn2351-black-usb/6538811?skuId=1234 |
mobile_link | STRING | Merchant providedURL of a mobile-optimized version of the landing page. | https://www.example.com/tn2351-black-usb/6538811?skuId=1234 |
image_link | STRING | Merchant providedURL of the main product image. | https://www.example.com/tn2351-black-usb/6538811?skuId=1234 |
additional_image_links | STRING,REPEATED | Merchant providedadditional URLs of images of the item. | |
content_language | STRING | The two-letter ISO 639-1 language code for the item. | en |
target_country | STRING | Deprecated (always set to NULL) as part of a change to allow products totarget multiple countries. Instead, use the following fields to read the status of each targeted country:destinations.approved_countries,destinations.pending_countries,destinations.disapproved_countries. Issues can now apply to certain target countries and not others, as indicated in the fieldissues.applicable_countries. | null |
feed_label | STRING | The merchant providedfeed label for the item, or- if not provided. | US |
channel | STRING | The item's channel, eitheronline orlocal. | local, online |
expiration_date | TIMESTAMP | Merchant provided date and time on which theitem should expire, as specified upon insertion. Set to null if not provided. | 2023-10-14 00:00:00 UTC |
google_expiration_date | TIMESTAMP | Date and time on which the item expires in Google Shopping. Never set to null. | 2023-10-14 00:00:00 UTC |
adult | BOOLEAN | Set to true if the item istargeted towards adults. | true, false |
age_group | STRING | Merchant providedtarget age group of the item. NULL if not provided. | newborn, infant, toddler, kids, adult |
availability | STRING | Merchant providedavailability status of the item. | in stock, out of stock |
availability_date | TIMESTAMP | Merchant provided date and timewhen a pre-ordered product becomes available for delivery. NULL if not provided. | 2023-10-14 00:00:00 UTC |
brand | STRING | Merchant providedbrand of the item. NULL if not provided. | Brand Name |
google_brand_id | STRING | Google brand ID of the item. | 12759524623914508053 |
color | STRING | Merchant providedcolor of the item. NULL if not provided. | Silver, Gray, Multi |
condition | STRING | Merchant providedCondition or state of the item. | new, used, refurbished |
custom_labels | RECORD | Merchant providedcustom labels for custom grouping of items in Shopping Ads. NULL if not provided. | |
custom_labels.label_0 | STRING | Custom label 0. | my custom label |
custom_labels.label_1 | STRING | Custom label 1. | my custom label |
custom_labels.label_2 | STRING | Custom label 2. | my custom label |
custom_labels.label_3 | STRING | Custom label 3. | my custom label |
custom_labels.label_4 | STRING | Custom label 4. | my custom label |
gender | STRING | Merchant provided targetgender of the item. NULL if not provided. | unisex, male, female |
gtin | STRING | Merchant providedGlobal Trade Item Number (GTIN) of the item. NULL if not provided. | 3234567890126 |
item_group_id | STRING | Merchant providedShared identifier for all variants of the same product. NULL if not provided. | AB12345 |
material | STRING | Merchant providedmaterial of which the item is made. NULL if not provided. | Leather |
mpn | STRING | Merchant providedManufacturer Part Number (MPN) of the item. Set to NULL if not provided. | GO12345OOGLE |
pattern | STRING | Merchant providedpattern. NULL if not provided. | Striped |
price | RECORD | Merchant providedprice of the item. | |
price.value | NUMERIC | The price of the item. | 19.99 |
price.currency | STRING | The currency of the price. | USD |
sale_price | RECORD | Merchant providedsale price of the item. | |
sale_price.value | NUMERIC | The sale price of the item. NULL if not provided. | 19.99 |
sale_price.currency | STRING | The currency of the sale price. NULL if not provided. | USD |
sale_price_effective_start_date | TIMESTAMP | Start date and time when the item is on sale. | 2023-10-14 00:00:00 UTC |
sale_price_effective_end_date | TIMESTAMP | End date and time when the item is on sale. | 2023-10-14 00:00:00 UTC |
google_product_category | INTEGER | The item'sGoogle product category ID. NULL if not provided. | 2271 |
google_product_category_ids | INTEGER, REPEATED | The full path ofGoogle product categories to the item, stored as a set of IDs. NULL if not provided. | |
google_product_category_path | STRING | A human-readable version of the full path. Empty if not provided. | Apparel & Accessories > Clothing > Dresses |
product_type | STRING | Merchant-providedcategory of the item. | Home > Women > Dresses > Maxi Dresses |
additional_product_types | STRING,REPEATED | Additional categories of the item. | |
promotion_ids | STRING,REPEATED | The list ofpromotion IDs associated with the product. | |
destinations | RECORD,REPEATED | The intended destinations for the product. | |
destinations.name | STRING | The name of the destination; onlyShopping is supported. This corresponds to theMarketing Methods "Shopping Ads" and "Local Inventory Ads" in Merchant Center. | Shopping |
destinations.status* | STRING | Deprecated (always set to NULL) as part of a change to allow products totarget multiple countries. Instead, use the following fields to read the status of each targeted country:destinations.approved_countries,destinations.pending_countries,destinations.disapproved_countries. Issues can now apply to certain target countries and not others, as indicated in the fieldissues.applicable_countries. | NULL |
destinations.approved_countries | STRING, REPEATED | List ofCLDR territory codes where the offer is approved. | US, CH |
destinations.pending_countries | STRING, REPEATED | List ofCLDR territory codes where the offer is pending. | US, CH |
destinations.disapproved_countries | STRING, REPEATED | List ofCLDR territory codes where the offer is disapproved. | US, CH |
issues | RECORD,REPEATED | The list of item level issues associated with the product. | |
issues.code | STRING | The error code of the issue. | image_too_generic |
issues.servability | STRING | How this issue affects serving of the offer. | disapproved, unaffected |
issues.resolution | STRING | Whether the issue can be resolved by the merchant. | merchant_action, pending_processing |
issues.attribute_name | STRING | The attribute's name, if the issue is caused by a single attribute. NULL otherwise. | image link |
issues.destination | STRING | The destination the issue applies to. Always set toShopping. | Shopping |
issues.short_description | STRING | Short issue description in English. | Generic image |
issues.detailed_description | STRING | Detailed issue description in English. | Use an image that shows the product |
issues.documentation | STRING | URL of a web page to help with resolving this issue. | https://support.google.com/merchants/answer/6098288 |
issues.applicable_countries | STRING, REPEATED | List ofCLDR territory codes where the issue applies. | CH |
Query examples
Products and product issues statistics
The following SQL sample query provides the number of products, products withissues, and issues by day.
SELECT_PARTITIONDATEASdate,COUNT(*)ASnum_products,COUNTIF(ARRAY_LENGTH(issues)>0)ASnum_products_with_issues,SUM(ARRAY_LENGTH(issues))ASnum_issuesFROMdataset.Products_merchant_idWHERE_PARTITIONDATE>='YYYY-MM-DD'GROUPBYdateORDERBYdateDESC
Products disapproved for Shopping Ads
The following SQL sample query provides the number of products that are notapproved for display in Shopping Ads, separated by country. Disapprovalcan result from the destination beingexcludedor because of an issue with the product.
SELECT_PARTITIONDATEASdate,disapproved_country,COUNT(*)ASnum_productsFROMdataset.Products_merchant_id,UNNEST(destinations)ASdestination,UNNEST(disapproved_countries)ASdisapproved_countryWHERE_PARTITIONDATE>='YYYY-MM-DD'GROUPBYdate,disapproved_countryORDERBYdateDESC
Products with disapproved issues
The following SQL sample query retrieves the number of products with disapprovedissues, separated by country.
SELECT_PARTITIONDATEASdate,applicable_country,COUNT(DISTINCTCONCAT(CAST(merchant_idASSTRING),':',product_id))ASnum_distinct_productsFROMdataset.Products_merchant_id,UNNEST(issues)ASissue,UNNEST(issue.applicable_countries)asapplicable_countryWHERE_PARTITIONDATE>='YYYY-MM-DD'ANDissue.servability='disapproved'GROUPBYdate,applicable_countryORDERBYdateDESC
merchant_id andproduct_id.This is only required if you have an MCA account. When you use an MCA account,there is the potential forproduct_id collisions across multiple sub-accounts.Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-02-19 UTC.