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
Cela inclut les données du comparatif des prix au niveau du produit et est basé sur les mêmes définitions que le rapport sur la compétitivité des prix disponible via Google Merchant Center.
Pour plus d'informations sur le chargement de ces données dans BigQuery, consultez le schéma de la table de comparatif des prix Google Merchant Center.
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 :
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.BestSellers_TopProducts_Inventory_
est une table de mappage pour les meilleurs produits et votre inventaire.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émasBestSellers_TopProducts_
etBestSellers_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 tableProducts_
avec ungoogle_brand_id
qui ne correspond à aucune marque de la tableBestSellers_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 champgoogle_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 :
- Vérifiez que vous avez effectué toutes les actions requises pour activer le service de transfert de données BigQuery.
- Créez un ensemble de données BigQuery pour stocker les données Google Merchant Center.
- Si vous avez l'intention de configurer des notifications d'exécution de transfert pour Pub/Sub, vous devez disposer des autorisations
pubsub.topics.setIamPolicy
. Les autorisations Pub/Sub ne sont pas nécessaires si vous ne configurez que des notifications par e-mail. Pour en savoir plus, consultez la page Notifications d'exécution du service de transfert de données BigQuery.
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
etbigquery.datasets.update
sur l'ensemble de données cible
Le rôle IAM prédéfini
bigquery.admin
inclut les autorisationsbigquery.transfers.update
,bigquery.datasets.update
etbigquery.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.- Autorisations
Google Merchant Center :
Accès au compte Google Merchant Center utilisé dans la configuration du transfert. Vous pouvez vérifier l'accès en cliquant sur la section Utilisateurs dans l'interface utilisateur de Google Merchant Center.
Pour accéder aux données sur la compétitivité des prix et les meilleures ventes, vous devez d'abord activer le programme Market Insights.
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 :
- ID de marchand ou ID de multicompte : il s'agit de l'ID de marchand indiqué dans l'interface utilisateur de Google Merchant Center.
Pour créer un transfert de données pour les rapports Google Merchant Center, procédez comme suit :
Console
Accédez à la page "BigQuery" de la console Google Cloud.
Cliquez sur Transferts.
Cliquez sur Créer un transfert.
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.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.
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.
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.
(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.
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ètreexport_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.
- Pour le champ Google Merchant Center, vous devez indiquer le paramètre
- 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