Migra el informe de los más vendidos

En este documento, encontrarás ayuda para migrar de la versión anterior de los informes de los más vendidos a su versión más reciente. La versión anterior del informe que exporta las tablas BestSellers_TopBrands_, BestSellers_TopProducts_ y BestSellers_TopProducts_Inventory_ dejará de estar disponible el 1 de septiembre de 2025.

El nuevo informe de los más vendidos ofrece la siguiente información:

Tablas exportadas por informes nuevos y anteriores

En la siguiente tabla, se comparan las tablas que exportan los informes nuevos y los antiguos:

Informe anterior Informe nuevo
BestSellers_TopBrands BestSellersBrandWeekly y BestSellersBrandMonthly
BestSellers_TopProducts BestSellersProductClusterWeekly y BestSellersProductClusterMonthly
BestSellers_TopProducts_Inventory BestSellersEntityProductMapping

El informe anterior contiene una sola agregación de datos de los más vendidos durante un período no especificado. El nuevo informe proporciona las agregaciones semanales y mensuales más recientes de estos datos en el momento de la solicitud.

Comparación de BestSellers_TopBrands con BestSellersBrandWeekly y BestSellersBrandMonthly

La siguiente tabla te ayuda a identificar los campos de la tabla BestSellers_TopBrands que tienen reemplazos equivalentes en las tablas BestSellersBrandWeekly y BestSellersBrandMonthly. No están disponibles los reemplazos de algunos campos de la tabla anterior.

BestSellers_TopBrands (anterior) BestSellersBrandWeekly y BestSellersBrandMonthly (nuevos)
rank_timestamp _PARTITIONDATE y _PARTITIONTIME
brand brand
google_brand_id
ranking_category category_id
ranking_category_path.locale
ranking_category_path.name
ranking_country country_code
rank_id
rank rank
previous_rank previous_rank
relative_demand.bucket relative_demand
relative_demand.min
relative_demand.max
previous_relative_demand.bucket previous_relative_demand
previous_relative_demand.min
previous_relative_demand.max
relative_demand_change

Comparación de BestSellers_TopProducts con BestSellersProductClusterWeekly y BestSellersProductClusterMonthly

La siguiente tabla te ayuda a identificar los campos de la tabla BestSellers_TopProducts que tienen reemplazos equivalentes en las tablas BestSellersProductClusterWeekly y BestSellersProductClusterMonthly. No están disponibles los reemplazos de algunos campos de la tabla anterior.

BestSellers_TopProducts (anterior) BestSellersProductClusterWeekly y BestSellersProductClusterMonthly (nuevos)
rank_timestamp _PARTITIONDATE y _PARTITIONTIME
rank_id entity_id
rank rank
previous_rank previous_rank
ranking_country country_code
ranking_category report_category_id
ranking_category_path.locale
ranking_category_path.name
relative_demand.bucket relative_demand
relative_demand.min
relative_demand.max
previous_relative_demand.bucket previous_relative_demand
previous_relative_demand.min
previous_relative_demand.max
relative_demand_change
product_title.locale
product_title.name title (título único en lugar de un array para cada configuración regional)
gtins variant_gtins
google_brand_id
brand brand
google_product_category
category_l1, category_l2, category_l3, category_l4, category_l5
google_product_category_path.locale
google_product_category_path.name
price_range.min price_range.min_amount_micros
price_range.max price_range.max_amount_micros
price_range.currency price_range.currency_code
product_inventory_status
brand_inventory_status

Asignación de inventario de datos de los más vendidos

En el informe de los más vendidos anterior, los datos de los más vendidos se asignan a los datos del inventario del comercio en una tabla generada nueva, con la columna rank_id de la tabla TopProducts.

En el nuevo informe de los más vendidos, la columna entity_id se exporta en las tablas BestSellersProductCluster, que se asignan a todos los IDs de productos del inventario del comercio en la tabla BestSellersEntityProductMapping.

BestSellers_TopProductsInventory (antiguo) BestSellersEntityProductMapping (nuevo)
rank_id (se encuentra en BestSellers_TopProducts) entity_id (se encuentra en las tablas BestSellersProductClustersWeekly y BestSellersProductClustersMonthly)
product_id product_id
merchant_id
aggregator_id

Consultas de ejemplo

En esta sección, se destacan los cambios en las consultas de ejemplo que se usan para recuperar datos de los más vendidos.

Ejemplo 1: Cómo recuperar los productos principales de una categoría y un país determinados

Las siguientes consultas muestran los productos principales de una categoría y un país determinados.

Usa la tabla BestSellers_TopProducts (anterior)

SELECT
  rank,
  previous_rank,
  relative_demand.bucket,
  (SELECT name FROM top_products.product_title WHERE locale = 'en-US') AS product_title,
  brand,
  price_range,
  google_product_category
FROM
  `DATASET.BestSellers_TopProducts_MERCHANT_ID` AS top_products
WHERE
  _PARTITIONDATE = 'DATE' AND
  ranking_category = 267 /*Smartphones*/ AND
  ranking_country = 'US'
ORDER BY
  rank;

Usa la tabla BestSellersProductClusterWeekly o BestSellersProductClusterMonthly (nueva)

SELECT
  rank,
  previous_rank,
  relative_demand,
  title AS product_title,
  brand,
  price_range,
  category_l1,
  category_l2
FROM
  `DATASET.BestSellersProductClusterWeekly_MERCHANT_ID` AS top_products
WHERE
  _PARTITIONDATE = 'DATE' AND
  report_category_id = 267 /*Smartphones*/ AND
  country_code = 'US'
ORDER BY
  rank;

Ejemplo 2: Cómo recuperar los productos principales de tu inventario

Las siguientes consultas muestran una lista de los productos principales de tu inventario.

Usa la tabla BestSellers_TopProducts (anterior)

WITH latest_top_products AS
(
  SELECT
    *
  FROM
    `DATASET.BestSellers_TopProducts_MERCHANT_ID`
  WHERE
    _PARTITIONDATE = 'DATE'
),
latest_top_products_inventory AS
(
  SELECT
    *
  FROM
    `DATASET.BestSellers_TopProducts_Inventory_MERCHANT_ID`
  WHERE
    _PARTITIONDATE = 'DATE'
)
SELECT
  top_products.rank,
  inventory.product_id,
  (SELECT ANY_VALUE(name) FROM top_products.product_title) AS product_title,
  top_products.brand,
  top_products.gtins
FROM
  latest_top_products AS top_products
INNER JOIN
  latest_top_products_inventory AS inventory
USING (rank_id);

Usa la tabla BestSellersProductClusterWeekly o BestSellersProductClusterMonthly (nueva)

WITH latest_top_products AS
(
  SELECT
    *
  FROM
    `DATASET.BestSellersProductClusterWeekly_MERCHANT_ID`
  WHERE
    _PARTITIONDATE = 'DATE'
),
latest_top_products_inventory AS
(
  SELECT
    *
  FROM
    `DATASET.BestSellersEntityProductMapping_MERCHANT_ID`
  WHERE
    _PARTITIONDATE = 'DATE'
)
SELECT
  top_products.rank,
  inventory.product_id,
  top_products.title AS product_title,
  top_products.brand,
  top_products.variant_gtins
FROM
  latest_top_products AS top_products
INNER JOIN
  latest_top_products_inventory AS inventory
USING (entity_id);

Además, si deseas encontrar la cantidad de productos o marcas más vendidos en tu inventario, ejecuta una consulta en las tablas BestSellerProductClusterWeekly o BestSellerProductClusterMonthly con las columnas product_inventory_status o brand_inventory_status. Consulta la siguiente consulta de ejemplo:

SELECT
  *
FROM
  `DATASET.BestSellersProductClusterMonthly_MERCHANT_ID`
WHERE
  _PARTITIONDATE = 'DATE' AND
  product_inventory_status != 'NOT_IN_INVENTORY'
ORDER BY
  rank;

Ejemplo 3: Cómo recuperar las marcas principales de una categoría y un país determinados

Las siguientes consultas muestran una lista de las principales marcas de una categoría y un país determinados.

Usa la tabla BestSellers_TopBrands (anterior)

SELECT
  rank,
  previous_rank,
  brand
FROM
  `DATASET.BestSellers_TopBrands_MERCHANT_ID`
WHERE
  _PARTITIONDATE = 'DATE' AND
  ranking_category = 267 /*Smartphones*/ AND
  ranking_country = 'US'
ORDER BY
  rank;

Usa la tabla BestSellersTopBrandsWeekly o BestSellersTopBrandsMonthly (nueva)

SELECT
  rank,
  previous_rank,
  brand
FROM
  `DATASET.BestSellersTopBrandsWeekly_MERCHANT_ID`
WHERE
  _PARTITIONDATE = 'DATE' AND
  report_category_id = 267 /*Smartphones*/ AND
  country_code = 'US'
ORDER BY
  rank;

Ejemplo 4: Cómo recuperar productos de las principales marcas de tu inventario

Las siguientes consultas muestran una lista de productos de las principales marcas de tu inventario.

Usa la tabla BestSellers_TopBrands (anterior)

WITH latest_top_brands AS
  (
    SELECT
      *
    FROM
      `DATASET.BestSellers_TopBrands_MERCHANT_ID`
    WHERE
      _PARTITIONDATE = 'DATE'
  ),
  latest_products AS
  (
    SELECT
      product.*,
      product_category_id
    FROM
      `DATASET.Products_MERCHANT_ID` AS product,
      UNNEST(product.google_product_category_ids) AS product_category_id,
      UNNEST(destinations) AS destination,
      UNNEST(destination.approved_countries) AS approved_country
    WHERE
      _PARTITIONDATE = 'DATE'
  )
SELECT
  top_brands.brand,
  (SELECT name FROM top_brands.ranking_category_path
  WHERE locale = 'en-US') AS ranking_category,
  top_brands.ranking_country,
  top_brands.rank,
  products.product_id,
  products.title
FROM
  latest_top_brands AS top_brands
INNER JOIN
  latest_products AS products
ON top_brands.google_brand_id = products.google_brand_id AND
   top_brands.ranking_category = product_category_id AND
   top_brands.ranking_country = products.approved_country;

Usa la tabla BestSellersTopBrandsWeekly o BestSellersTopBrandsMonthly (nueva)

WITH latest_top_brands AS
  (
    SELECT
      *
    FROM
      `DATASET.BestSellersBrandMonthly_MERCHANT_ID`
    WHERE
      _PARTITIONDATE = 'DATE'
  ),
  latest_products AS
  (
    SELECT
      product.*,
      product_category_id
    FROM
      `DATASET.Products_MERCHANT_ID` AS product,
      UNNEST(product.google_product_category_ids) AS product_category_id,
      UNNEST(destinations) AS destination,
      UNNEST(destination.approved_countries) AS approved_country
    WHERE
      _PARTITIONDATE = 'DATE'
  )
SELECT
  top_brands.brand,
  - The full category name is not supported in the new BestSellersTopBrands tables.
  - (SELECT name FROM top_brands.ranking_category_path
  - WHERE locale = 'en-US') AS ranking_category,
  top_brands.category_id,
  top_brands.rank,
  products.product_id,
  products.title
FROM
  latest_top_brands AS top_brands
INNER JOIN
  latest_products AS products
ON top_brands.brand = products.brand AND
   top_brands.category_id = product_category_id AND
   top_brands.country_code = products.approved_country;

En estas consultas, reemplaza lo siguiente:

  • DATASET: nombre del conjunto de datos.
  • MERCHANT_ID: El ID de la cuenta del comerciante
  • DATE: La fecha en formato YYYY-MM-DD

¿Qué sigue?