Migrer le rapport "Meilleures ventes"

Ce document vous aide à passer de l'ancienne version des rapports "Meilleures ventes" à la nouvelle version. L'ancienne version du rapport qui exporte les tables BestSellers_TopBrands_, BestSellers_TopProducts_ et BestSellers_TopProducts_Inventory_ sera abandonnée le 1er septembre 2025.

Le nouveau rapport "Meilleures ventes" offre les fonctionnalités suivantes:

Tables exportées par les anciens et nouveaux rapports

Le tableau suivant compare les tables exportées par les anciens et les nouveaux rapports:

Ancien rapport Nouveau rapport
BestSellers_TopBrands BestSellersBrandWeekly et BestSellersBrandMonthly
BestSellers_TopProducts BestSellersProductClusterWeekly et BestSellersProductClusterMonthly
BestSellers_TopProducts_Inventory BestSellersEntityProductMapping

L'ancien rapport contient une seule agrégation des données sur les meilleures ventes sur une période non spécifiée. Le nouveau rapport fournit les dernières agrégations hebdomadaires et mensuelles de ces données au moment de la demande.

Comparer BestSellers_TopBrands avec BestSellersBrandWeekly et BestSellersBrandMonthly

Le tableau suivant vous aide à identifier les champs de la table BestSellers_TopBrands qui ont des remplacements équivalents dans les tables BestSellersBrandWeekly et BestSellersBrandMonthly. Les remplacements de certains champs de l'ancienne table ne sont pas disponibles.

BestSellers_TopBrands (ancienne) BestSellersBrandWeekly et BestSellersBrandMonthly (nouveau)
rank_timestamp _PARTITIONDATE et _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

Comparer BestSellers_TopProducts avec BestSellersProductClusterWeekly et BestSellersProductClusterMonthly

Le tableau suivant vous aide à identifier les champs de la table BestSellers_TopProducts qui ont des remplacements équivalents dans les tables BestSellersProductClusterWeekly et BestSellersProductClusterMonthly. Les remplacements de certains champs de l'ancienne table ne sont pas disponibles.

BestSellers_TopProducts (ancienne) BestSellersProductClusterWeekly et BestSellersProductClusterMonthly (nouveau)
rank_timestamp _PARTITIONDATE et _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 (titre unique au lieu d'un tableau pour chaque langue)
gtins variant_gtins
google_brand_id
brand brand
google_product_category
category_l1, category_l2, category_l3, category_l4 et 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

Mappage de l'inventaire des données sur les meilleures ventes

Dans l'ancien rapport "Meilleures ventes", les données des meilleures ventes sont mappées sur les données de l'inventaire du marchand dans une nouvelle table générée, à l'aide de la colonne rank_id de la table TopProducts.

Dans le nouveau rapport "Meilleures ventes", la colonne entity_id est exportée dans les tables BestSellersProductCluster, qui sont mappées sur tous les ID produit de l'inventaire du marchand dans le tableau BestSellersEntityProductMapping.

BestSellers_TopProductsInventory (ancienne) BestSellersEntityProductMapping (nouveau)
rank_id (trouvé dans BestSellers_TopProducts) entity_id (dans les tables BestSellersProductClustersWeekly et BestSellersProductClustersMonthly)
product_id product_id
merchant_id
aggregator_id

Exemples de requêtes

Cette section met en évidence les modifications apportées aux exemples de requêtes utilisées pour récupérer les données des meilleures ventes.

Exemple 1: Récupérer les produits populaires pour une catégorie et un pays donnés

Les requêtes suivantes renvoient les produits populaires pour une catégorie et un pays donnés.

Utiliser le tableau BestSellers_TopProducts (ancien)

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;

Utiliser le tableau BestSellersProductClusterWeekly ou BestSellersProductClusterMonthly (nouveau)

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;

Exemple 2: Récupérer les produits les plus populaires de votre inventaire

Les requêtes suivantes renvoient la liste des produits populaires de votre inventaire.

Utiliser le tableau BestSellers_TopProducts (ancien)

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);

Utiliser le tableau BestSellersProductClusterWeekly ou BestSellersProductClusterMonthly (nouveau)

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);

De plus, si vous souhaitez connaître le nombre de produits ou de marques les plus vendus dans votre inventaire, exécutez une requête sur les tables BestSellerProductClusterWeekly ou BestSellerProductClusterMonthly à l'aide des colonnes product_inventory_status ou brand_inventory_status. Consultez l'exemple de requête suivant:

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

Exemple 3: Récupérez les marques populaires pour une catégorie et un pays donnés

Les requêtes suivantes renvoient la liste des marques populaires pour une catégorie et un pays donnés.

Utiliser le tableau BestSellers_TopBrands (ancien)

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;

Utiliser le tableau BestSellersTopBrandsWeekly ou BestSellersTopBrandsMonthly (nouveau)

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;

Exemple 4: Récupérer les produits de marques populaires dans votre inventaire

Les requêtes suivantes renvoient la liste des produits de marques populaires dans votre inventaire.

Utiliser le tableau BestSellers_TopBrands (ancien)

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;

Utiliser le tableau BestSellersTopBrandsWeekly ou BestSellersTopBrandsMonthly (nouveau)

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;

Dans ces requêtes, remplacez les éléments suivants:

  • DATASET : par le nom de votre ensemble de données
  • MERCHANT_ID: ID du compte marchand
  • DATE: date au format YYYY-MM-DD

Étape suivante