Transferts Google Merchant Center

Le service de transfert de données BigQuery pour Google Merchant Center vous permet de programmer et de gérer automatiquement des tâches de chargement récurrentes pour les données de rapports Google Merchant Center.

Rapports acceptés

Le service de transfert de données BigQuery pour Google Merchant Center accepte actuellement les données suivantes :

Produits et problèmes de produits

  • Cela inclut les données produit fournies à Merchant Center via des flux ou via l'API Content pour Shopping. Sont également inclus les problèmes détectés par Google au niveau des articles pour vos produits. Vous pouvez consulter ces données dans Google Merchant Center ou interroger l'API Content pour Shopping.

  • Pour plus d'informations sur le chargement de ces données dans BigQuery, consultez le schéma de la table des produits de Google Merchant Center.

Inventaires régionaux

  • Ces inventaires comprennent des données produit supplémentaires sur la disponibilité régionale et les remplacements de prix de vos produits.

  • Pour plus d'informations sur le chargement de ces données dans BigQuery, reportez-vous au schéma des tables des inventaires régionaux de Google Merchant Center.

Inventaires locaux

  • Ces inventaires comprennent des données supplémentaires sur l'inventaire local de vos produits. Ils contiennent des données sur la tarification locale, la disponibilité, la quantité, le retrait et l'emplacement des produits en magasin.

  • Pour plus d'informations sur le chargement de ces données dans BigQuery, reportez-vous au schéma des tables des inventaires locaux de Google Merchant Center.

Comparatif des prix

Meilleures ventes

  • Cela inclut les données sur les produits et marques les plus populaires dans les annonces Shopping et les fiches gratuites, et indique si vous avez ou non ces rticles dans votre inventaire.

  • Elles sont basées sur le rapport sur les meilleures ventes disponible via Google Merchant Center.

  • Les rapports sur les meilleurs ventes sont composés des tables suivantes :

    1. BestSellers_TopProducts_ est une liste classée des meilleurs produits par pays et catégorie de produits Google. Cette table représente les données de tous les marchands des annonces Shopping et des fiches gratuites.
    2. BestSellers_TopProducts_Inventory_ est une table de mappage pour les meilleurs produits et votre inventaire.
    3. BestSellers_TopBrands_ est un classement des meilleures marques, classées par pays et catégorie de produits Google. Cette table représente les données de tous les marchands des annonces Shopping et des fiches gratuites.
  • Pour plus d'informations sur le chargement des données des meilleures ventes dans BigQuery, consultez les schémas des tables des produits les plus populaires, d'inventaire de produits et des marques les plus populaires de Google Merchant Center.

Le service de transfert de données BigQuery pour Google Merchant Center est actuellement compatible avec les options de création de rapports suivantes :

Option de création de rapports Support
Planning

Peut être configurée sur tous les jours, toutes les semaines, tous les mois ou une autre option personnalisable. Par défaut, cette option est définie sur "Tous les jours" lors de la création du transfert. L'intervalle minimal entre les transferts est de 6 heures.

Limites

Tous les transferts Merchant Center sont soumis aux limitations suivantes :

  • Après avoir créé un transfert pour votre ID de marchand, vous devrez peut-être attendre jusqu'à un jour avant que les données de votre compte marchand soient préparées et disponibles pour le transfert.
  • Vous ne pouvez pas configurer de durée maximale de remplissage. Actuellement, les remplissages historiques ne sont pas compatibles. Vous ne pouvez configurer un remplissage que pour ce jour même.

Produits et problèmes sur les produits

  • Les données sur les produits et les problèmes qui y sont associés dans BigQuery ne fournissent pas une représentation en temps réel de votre compte marchand. Pour afficher la chronologie de vos données, reportez-vous au champ product_data_timestamp du schéma.

Comparatif des prix

  • Les données du comparatif des prix ne représentent pas une vue en temps réel des comparatifs des prix. Pour afficher la chronologie de vos données, reportez-vous au champ price_benchmark_timestamp dans le schéma "Comparatif de prix".
  • Tous les produits ne disposent pas d'un comparatif des prix.

Meilleures ventes

  • Tous les pays ne contiendront pas de données de classement. Pays inclus dans le rapport (au format ISO 3166-1 alpha-2) : AT, AU, BE, BR, CA, CH, CZ, DE, DK, ES, FI, FR, GB, HU, IE, IN, IT, JP, MX, NL, NO, NZ, PL, PT, RO, RU, SE, SK, TR, UA et US.
  • Les données des meilleures ventes ne représentent pas une vue en temps réel des classements de marques. Pour afficher la chronologie de vos données, reportez-vous au champ rank_timestamp des schémas BestSellers_TopProducts_ et BestSellers_TopBrands_.
  • Seuls les articles les plus populaires dans les annonces Shopping et les fiches gratuites sont inclus dans la table BestSellers_TopProducts_.
  • Seules les marques les plus populaires dans les annonces Shopping et les fiches gratuites sont incluses dans la table BestSellers_TopBrands_. Il peut y avoir des lignes dans la table Products_ avec un google_brand_id qui ne correspond à aucune marque de la table BestSellers_TopBrands_.
  • Les ID de marque dans le champ google_brand_id peuvent changer au fil du temps pour refléter la nature changeante des entreprises et des marques. Par conséquent, le suivi d'un ensemble de marques sur une longue période n'est pas garanti.
  • Bien que les marques soient classées dans de nombreuses catégories différentes, tous les produits de la table Products_ se trouvent dans les catégories détaillées. Pour ajouter des marques et des produits à des catégories générales, utilisez le champ google_product_category_ids, comme indiqué dans les exemples de requêtes de meilleures ventes.

Compatibilité avec les multicomptes (MC)

Les clients existants détenant plusieurs ID de marchand sont invités à configurer un multicompte (MC) parent. La configuration d'un MC vous permet de créer un seul transfert pour tous vos ID de marchand.

La création d'un multicompte Google Merchant Center offre plusieurs avantages par rapport à l'utilisation de plusieurs ID de marchand :

  • Vous n'avez plus besoin de gérer plusieurs transferts pour transférer les données de rapport de plusieurs ID de marchand.
  • Les requêtes impliquant plusieurs ID de marchand sont beaucoup plus simples à écrire car toutes les données d'ID de marchand sont stockées dans la même table.
  • L'utilisation d'un multicompte atténue les problèmes potentiels de quota de tâche de chargement BigQuery, car toutes vos données d'ID de marchand sont chargées dans la même tâche.

Un inconvénient possible de l'utilisation d'un MC est le risque d'augmentation des coûts de requête ultérieurs. Étant donné que toutes vos données sont stockées dans la même table, les requêtes qui extraient les données pour un ID de marchand individuel doivent toujours analyser la table entière.

Si vous utilisez un MC, l'ID de ce multicompte apparaît sous aggregator_id et les sous-comptes individuels sont répertoriés sous merchant_id. Pour les comptes qui n'utilisent pas de MC, aggregator_id est défini sur null.

Avant de commencer

Avant de créer un transfert Google Merchant Center :

Autorisations requises

Assurez-vous que la personne qui crée le transfert dispose des autorisations requises suivantes :

  • BigQuery :

    • Autorisations bigquery.transfers.update pour créer le transfert
    • Autorisations bigquery.datasets.get et bigquery.datasets.update sur l'ensemble de données cible

    Le rôle IAM prédéfini bigquery.admin inclut les autorisations bigquery.transfers.update, bigquery.datasets.update et bigquery.datasets.get. Pour en savoir plus sur les rôles IAM associés au service de transfert de données BigQuery, consultez la page Contrôle des accès.

  • Google Merchant Center :

Configurer un transfert Google Merchant Center

Pour configurer un transfert de données pour les rapports Google Merchant Center, vous devez disposer des éléments suivants :

Pour créer un transfert de données pour les rapports Google Merchant Center, procédez comme suit :

Console

  1. Accédez à la page "BigQuery" de la console Google Cloud.

    Accéder à la page "BigQuery"

  2. Cliquez sur Transferts.

  3. Cliquez sur Créer un transfert.

  4. Sur la page Create Transfer (Créer un transfert) :

    • Dans la section Source type (Type de source), sous Source sélectionnez Google Merchant Center.

    • Dans la section Transfer config name (Nom de la configuration de transfert), sousDisplay name (Nom à afficher), saisissez un nom pour le transfert, tel que My Transfer. Ce nom peut correspondre à n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.

      Nom du transfert

    • Dans la section Schedule Options (Options de programmation), sous Programmation, cliquez sur Start at a set time (Démarrer à une heure définie).

      • Pour le champ Repeats (Périodicité), choisissez l'une des options suivantes pour la fréquence d'exécution du transfert :

        • Daily (Tous les jours) (par défaut)
        • Toutes les semaines
        • Tous les mois
        • Personnalisé
        • On-demand (À la demande)
      • Pour Start date and run time (Date de début et heure d'exécution), saisissez la date et l'heure de début du transfert. La valeur de ce champ doit être postérieure d'au moins 24 heures à l'heure UTC actuelle. Si vous avez choisi Start now (Démarrer maintenant), cette option est désactivée.

        Planning de transfert

        Si vous laissez les options de programmation définies sur Start now (Démarrer maintenant), le premier transfert commence immédiatement et échoue avec le message d'erreur suivant : No data to transfer found for the Merchant account. If you have just created this transfer, you may need to wait for up to a day before the data of your Merchant account are prepared and available for the transfer.. La prochaine exécution programmée doit s'exécuter correctement. Si les données de votre compte marchand sont préparées à la même date au format UTC, vous pouvez configurer un remplissage pour l'exécution du jour.

    • Dans la section Destination settings (Paramètres de destination), pour le champ Destination dataset (Ensemble de données de destination), choisissez l'ensemble de données que vous avez créé pour stocker vos données.

      Transférer un ensemble de données

    • Dans la section Data Source Details (Détails de la source de données), sous Merchant ID (ID de marchand), entrez votre ID de marchand ou votre ID de MC.

      Sélectionnez le ou les rapports que vous souhaitez transférer. Voir Rapports acceptés pour plus de détails.

      Données de transfert de Google Merchant Center.

    • (Facultatif) Dans la section Options de notification :

      • Cliquez sur le bouton pour activer les notifications par e-mail. Lorsque vous activez cette option, l'administrateur de transfert reçoit une notification par e-mail en cas d'échec de l'exécution du transfert.
      • Pour le champ Select a Pub/Sub topic (Sélectionner un sujet Pub/Sub), choisissez le nom de votre sujet ou cliquez sur Create a topic (Créer un sujet). Cette option configure les notifications d'exécution Cloud Pub/Sub pour votre transfert.
  5. Cliquez sur Save (Enregistrer).

bq

Saisissez la commande bq mk, puis spécifiez l'indicateur de création de transfert --transfer_config. Les paramètres suivants sont également requis :

  • --data_source
  • --target_dataset
  • --display_name
  • --params

Vous pouvez également indiquer l'option --project_id pour spécifier un projet particulier. Si --project_id n'est pas spécifié, le projet par défaut est utilisé.

bq mk \
--transfer_config \
--project_id=project_id \
--target_dataset=dataset \
--display_name=name \
--params='parameters' \
--data_source=data_source

Où :

  • project_id est l'ID de votre projet.
  • dataset est l'ensemble de données cible de la configuration de transfert.
  • name est le nom à afficher pour la configuration de transfert. Ce nom peut correspondre à toute valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.
  • parameters contient les paramètres de la configuration de transfert créée au format JSON. Exemple : --params='{"param":"param_value"}'.
    • Pour le champ Google Merchant Center, vous devez indiquer le paramètre merchant_id.
    • Le paramètre export_products spécifie s'il faut transférer les données du produit et des problèmes de produit. Ce paramètre est inclus par défaut, même si vous ne spécifiez pas le paramètre export_products. Google vous recommande d'inclure ce paramètre explicitement et de le définir sur "true".
    • Le paramètre export_regional_inventories indique s'il faut ou non transférer les données des inventaires régionaux.
    • Le paramètre export_local_inventories indique si les données des inventaires locaux doivent être transférées ou non.
    • Le paramètre export_price_benchmarks indique si les données du comparatif des prix doivent être transférées.
    • Le paramètre export_best_sellers indique si les données des meilleures ventes doivent être transférées.
  • data_source correspond à la source de données : merchant_center.

Par exemple, la commande suivante crée un transfert Google Merchant Center nommé My Transfer utilisant l'ID de marchand 1234 et l'ensemble de données cible mydataset. Le transfert est créé dans le projet par défaut.

bq mk \
--transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"merchant_id":"1234","export_products":"true","export_regional_inventories":"true","export_local_inventories":"true","export_price_benchmarks":"true","export_best_sellers":"true"}' \
--data_source=merchant_center

La première fois que vous exécutez la commande, vous recevez un message de ce type :

[URL omitted] Please copy and paste the above URL into your web browser and follow the instructions to retrieve an authentication code.

Suivez les instructions du message et collez le code d'authentification sur la ligne de commande.

Si vous venez de créer ce transfert, vous devrez peut-être attendre jusqu'à une journée avant que les données de votre compte marchand ne soient préparées et disponibles pour le transfert. La prochaine exécution programmée doit fonctionner correctement. Si les données de votre compte marchand sont préparées à la même date au format UTC, vous pouvez configurer un remplissage pour l'exécution du jour.

API

Utilisez la méthode projects.locations.transferConfigs.create et fournissez une instance de la ressource TransferConfig.

Résoudre les problèmes liés à la configuration d'un transfert Google Merchant Center

Si vous rencontrez des problèmes lors de la configuration de votre transfert, reportez-vous à la section Problèmes de transfert avec Google Merchant Center à la page Résolution des problèmes de configuration du transfert avec le service de transfert de données BigQuery.

Interroger les données

Lorsque les données sont transférées vers BigQuery, elles sont écrites dans des tables partitionnées avec date d'ingestion. Pour plus d'informations, consultez la page Présentation des tables partitionnées.

Lorsque vous interrogez votre table Google Merchant Center, vous devez utiliser la pseudo-colonne _PARTITIONTIME ou _PARTITIONDATE dans votre requête. Pour en savoir plus, consultez la page Interroger des tables partitionnées.

La table Products_ contient des champs imbriqués et répétés. Pour en savoir plus sur la gestion des données imbriquées et répétées, consultez la section Différences dans la gestion des champs répétés dans la documentation SQL standard Google.

Exemples de requêtes Google Merchant Center

Vous pouvez utiliser les exemples de requêtes Google Merchant Center suivants pour analyser les données transférées. Vous pouvez également interroger les données dans un outil de visualisation tel que Looker Studio.

Dans chacune des requêtes suivantes, remplacez dataset par le nom de votre ensemble de données. Remplacez merchant_id par votre ID de marchand. Si vous utilisez un MC, remplacez merchant_id par votre ID de MC.

Exemples de requêtes sur les produits et les problèmes de produits

Statistiques sur les produits et les problèmes de produits

L'exemple de requête SQL suivant fournit le nombre de produits, de produits présentant des problèmes et de problèmes par jour.

SELECT
  _PARTITIONDATE AS date,
  COUNT(*) AS num_products,
  COUNTIF(ARRAY_LENGTH(issues) > 0) AS num_products_with_issues,
  SUM(ARRAY_LENGTH(issues)) AS num_issues
FROM
  dataset.Products_merchant_id
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD'
GROUP BY
  date
ORDER BY
  date DESC

Produits refusés pour les annonces Shopping

L'exemple de requête SQL suivant fournit le nombre de produits dont l'affichage n'est pas approuvé dans les annonces Shopping pour chaque pays. Le refus de ces produits peut résulter de l'exclusion de la destination ou d'un problème lié au produit.

SELECT
  _PARTITIONDATE AS date,
  disapproved_country,
  COUNT(*) AS num_products
FROM
  dataset.Products_merchant_id,
  UNNEST(destinations) AS destination,
  UNNEST(disapproved_countries) AS disapproved_country
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD'
GROUP BY
  date, disapproved_country
ORDER BY
  date DESC

Produits présentant des problèmes de refus

L'exemple de requête SQL suivant récupère le nombre de produits présentant des problèmes de refus pour chaque pays.

SELECT
  _PARTITIONDATE AS date,
  applicable_country,
  COUNT(DISTINCT CONCAT(CAST(merchant_id AS STRING), ':', product_id))
      AS num_distinct_products
FROM
  dataset.Products_merchant_id,
  UNNEST(issues) AS issue,
  UNNEST(issue.applicable_countries) as applicable_country
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD' AND
  issue.servability = 'disapproved'
GROUP BY
  date, applicable_country
ORDER BY
  date DESC

Exemples de requêtes de comparatif de prix

Comparer les prix des produits par rapport aux comparatifs

La requête SQL suivante joint les données Products et Price Benchmarks pour renvoyer la liste des produits et des comparatifs associés.

WITH products AS
(
  SELECT
    _PARTITIONDATE AS date,
    *
  FROM
    dataset.Products_merchant_id
  WHERE
   _PARTITIONDATE >= 'YYYY-MM-DD'
),
benchmarks AS
(
  SELECT
    _PARTITIONDATE AS date,
    *
  FROM
    dataset.Products_PriceBenchmarks_merchant_id
  WHERE
    _PARTITIONDATE >= 'YYYY-MM-DD'
)
SELECT
  products.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_sale
FROM
  products
INNER JOIN
  benchmarks
ON products.product_id = benchmarks.product_id AND
   products.merchant_id = benchmarks.merchant_id AND
   products.date = benchmarks.date

Exemples de requêtes de meilleures ventes

Produits populaires pour une catégorie et un pays donnés

La requête SQL suivante renvoie les produits populaires de la catégorie des smartphones aux États-Unis.

SELECT
  rank,
  previous_rank,
  relative_demand.bucket,
  (SELECT name FROM top_products.product_title WHERE locale = 'en-US') AS product_title,
  brand,
  price_range
FROM
  dataset.BestSellers_TopProducts_merchant_id AS top_products
WHERE
  _PARTITIONDATE = 'YYYY-MM-DD' AND
  ranking_category = 267 /*Smartphones*/ AND
  ranking_country = 'US'
ORDER BY
  rank

Produits populaires de votre inventaire

La requête SQL suivante joint les données BestSellers_TopProducts_Inventory_ et BestSellers_TopProducts_ pour renvoyer une liste des produits populaires que vous avez actuellement dans votre inventaire.

WITH latest_top_products AS
(
  SELECT
    *
  FROM
    dataset.BestSellers_TopProducts_merchant_id
  WHERE
    _PARTITIONDATE = 'YYYY-MM-DD'
),
latest_top_products_inventory AS
(
  SELECT
    *
  FROM
    dataset.BestSellers_TopProducts_Inventory_merchant_id
  WHERE
    _PARTITIONDATE = 'YYYY-MM-DD'
)
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)

Marques populaires pour une catégorie et un pays donnés

La requête SQL suivante renvoie les marques populaires de la catégorie des smartphones aux États-Unis.

SELECT
  rank,
  previous_rank,
  brand
FROM
  dataset.BestSellers_TopBrands_merchant_id
WHERE
  _PARTITIONDATE = 'YYYY-MM-DD' AND
  ranking_category = 267 /*Smartphones*/ AND
  ranking_country = 'US'
ORDER BY
  rank

Produits de marques populaires dans votre inventaire

La requête SQL suivante renvoie la liste des produits de marques populaires dans votre inventaire, répertoriées par catégorie et par pays.

  WITH latest_top_brands AS
  (
    SELECT
      *
    FROM
      dataset.BestSellers_TopBrands_merchant_id
    WHERE
      _PARTITIONDATE = 'YYYY-MM-DD'
  ),
  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 = 'YYYY-MM-DD'
  )
  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