Google Merchant Center price benchmarks table
Overview
Caution: BigQuery will no longer support the Price Benchmarks reporton September 1, 2025. We recommend that you migrate to use thePrice Competitiveness reportinstead. For more information about migrating to the new report, seeMigrate the price competitiveness report.Price Benchmarks data in BigQuery helps merchants understand howother merchants are pricing the same product. When your Google Merchant Centerreporting data is transferred to BigQuery, the format of theProducts_PriceBenchmarks_ table provides a daily price benchmark per countryand per product.
The data is written to a table namedProducts_PriceBenchmarks_MERCHANT_ID if you areusing an individual Merchant ID, orProducts_PriceBenchmarks_AGGREGATOR_ID if you'reusing an MCA account.
Schema
TheProducts_PriceBenchmarks table has the following schema:
| Column | BigQuery data type | Description |
|---|---|---|
product_id | STRING | Content API's REST ID of the product in the form:channel:content_language:feed_label:offer_id, similar to the way it's defined in theproducts table schema. This field is a primary key. |
merchant_id | INTEGER | Merchant account ID. |
aggregator_id | INTEGER | Aggregator account ID for multi-client accounts. |
country_of_sale | STRING | Country where the user performed the query on Google. |
price_benchmark_value | FLOAT | The average click-weighted price for a given product across all merchants who advertise that same product on Shopping ads. Products are matched based on their GTIN. For more details, see theHelp Center article. |
price_benchmark_currency | STRING | Currency of the benchmark value. |
price_benchmark_timestamp | DATETIME | Timestamp of the benchmark. |
Example: compare product prices to benchmarks
The following SQL query joinsProducts andPrice Benchmarks data to returnthe list of products and associated benchmarks.
WITHproductsAS(SELECT_PARTITIONDATEASdate,*FROMdataset.Products_merchant_idWHERE_PARTITIONDATE>='YYYY-MM-DD'),benchmarksAS(SELECT_PARTITIONDATEASdate,*FROMdataset.Products_PriceBenchmarks_merchant_idWHERE_PARTITIONDATE>='YYYY-MM-DD')SELECTproducts.date,products.product_id,products.merchant_id,products.aggregator_id,products.price,products.sale_price,benchmarks.price_benchmark_value,benchmarks.price_benchmark_currency,benchmarks.country_of_saleFROMproductsINNERJOINbenchmarksONproducts.product_id=benchmarks.product_idANDproducts.merchant_id=benchmarks.merchant_idANDproducts.date=benchmarks.date
1. Not all products have benchmarks, so use INNER JOIN or LEFT JOIN accordingly.
2. Each product may have multiple benchmarks (one per country).
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 2025-12-15 UTC.