Migrate the price competitiveness report
Preview
This product is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of theService Specific Terms. Pre-GA products are available "as is" and might have limited support. For more information, see thelaunch stage descriptions.
Note: To get support or provide feedback for Google Merchant Centertransfers with BigQuery Data Transfer Service, contactgmc-transfer-preview@google.com.This document helps you migrate from theprice benchmarks report, which will be deprecated on September 1, 2025,to the newprice competitiveness report.
The new price competitiveness report offers the following:
- Parity with the older version of the report and improved consistency withother similar Google products—for example, the
PriceCompetitivenessProductViewfieldfor the Content API for Shopping. - Additional insights about a merchant's pricing data.
Compare price benchmarks and price competitiveness table schemas
The following table helps you identify fields in theProducts_PriceBenchmarks tablethat have equivalent replacements in thePriceCompetitiveness_ table:
| Price benchmarks (old) | Price competitiveness (new) |
|---|---|
product_id | id |
merchant_id | merchant_id |
aggregator_id | aggregator_id |
country_of_sale | report_country_code |
price_benchmark_value | benchmark_price.amount_micros |
price_benchmark_currency | benchmark_price.currency_code |
price_benchmark_timestamp | _PARTITIONDATE or_PARTITIONTIME |
Moreover, thePriceCompetitiveness_ table contains additional data aboutinventory such as title, brand, product types and category, and the productprice in a merchant's inventory. This data lets you effectively compare andanalyze the benchmark prices with your own.
The following additional fields are available in the newPriceCompetitiveness_ table:
| Field | Description |
|---|---|
title | Title of the product. |
brand | Brand of the product. |
offer_id | Merchant-providedID of the product. |
price | Price of the product. |
price.amount_micros | Price of the item, in micros (1 is represented as 1000000). |
price.currency_code | Currency of the price of the item. |
product_type_l1 | Product type attribute of the product. |
product_type_l2 | Product type attribute of the product. |
product_type_l3 | Product type attribute of the product. |
product_type_l4 | Product type attribute of the product. |
product_type_l5 | Product type attribute of the product. |
category_l1 | Google product category of the product. |
category_l2 | Google product category of the product. |
category_l3 | Google product category of the product. |
category_l4 | Google product category of the product. |
category_l5 | Google product category of the product. |
Price competitiveness and price benchmarks don't support backfills. They alwaysreturn the current data available when you request a transfer.
Example queries
This section highlights changes in example queries that are used to retrieveprice competitiveness data.
Example 1: Retrieve product price benchmarks per country
The following queries return a list of product price benchmarks per country.Note that a product can have different benchmarks in different countries.
Use theProducts_PriceBenchmarks table (old)
SELECTDATE(price_benchmark_timestamp)ASdate,product_id,merchant_id,aggregator_id,country_of_sale,price_benchmark_value,price_benchmark_currencyFROM`DATASET.Products_PriceBenchmarks_MERCHANT_ID`WHERE_PARTITIONDATE>='DATE';Use thePriceCompetitiveness table (new)
SELECT_PARTITIONDATEASdate,id,merchant_id,aggregator_id,report_country_code,benchmark_price.amount_micros,benchmark_price.currency_codeFROM`DATASET.PriceCompetitiveness_MERCHANT_ID`WHERE_PARTITIONDATE>='DATE';Example 2: Retrieve products and associated benchmarks
The following queries retrieve products and their associated benchmarks.
Join theProducts andPriceBenchmarks tables (old)
WITHproductsAS(SELECT_PARTITIONDATEASdate,*FROM`DATASET.Products_MERCHANT_ID`WHERE_PARTITIONDATE>='DATE'),benchmarksAS(SELECT_PARTITIONDATEASdate,*FROM`DATASET.Products_PriceBenchmarks_MERCHANT_ID`WHERE_PARTITIONDATE>='DATE')SELECTproducts.date,products.product_id,products.merchant_id,products.aggregator_id,products.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;Use thePriceCompetitiveness table (new)
SELECT_PARTITIONDATEASdate,idASproduct_id,merchant_id,aggregator_id,price.amount_micros,price.currency_code,benchmark_price.amount_micros,benchmark_price.currency_code,report_country_codeAScountry_of_saleFROM`DATASET.PriceCompetitiveness_MERCHANT_ID`WHERE_PARTITIONDATE>='DATE';In these queries, replace the following:
DATASET: the name of your datasetMERCHANT_ID: the merchant account IDDATE: the date in theYYYY-MM-DDformat
What's next
- For more information about the new price competitiveness report, seeGoogle Google Merchant Center Price Competitiveness table.
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.