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.

Limites

Les transferts Merchant Center sont soumis aux limitations suivantes :

  • Après avoir créé un transfert pour votre ID de marchand, vous devez attendre 90 minutes 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.
  • Les données relatives aux produits et aux problèmes qui y sont associés dans BigQuery ne fournissent pas une représentation en temps réel de votre compte marchand. Elles sont transférées en mode de traitement par lot et peuvent accuser un retard pouvant aller jusqu'à 15 heures. Pour voir la fraîcheur de vos données dans BigQuery, affichez l'horodatage Data freshness (Fraîcheur des données) dans l'onglet Details (Détails) de la table Produits. Horodatage de la fraîcheur des données pour les tables de produits

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 en savoir plus sur le chargement des données de rapports Merchant Center dans BigQuery, consultez le Schéma de table 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
Horaires

Tous les jours, à l'heure de création du transfert (par défaut).

Vous pouvez configurer une heure spécifique.

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 est indiqué 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 envisagez de créer des transferts à l'aide de l'UI Web classique de BigQuery, autorisez les pop-ups de bigquery.cloud.google.com pour pouvoir afficher la fenêtre des autorisations. Vous devez autoriser le service de transfert de données BigQuery pour permettre à Google Merchant Center de gérer vos fiches produit et vos comptes dans Google Shopping.
  • Les notifications d'exécution de transfert sont actuellement en version alpha. Si vous souhaitez configurer des notifications d'exécution de transfert pour Cloud Pub/Sub, vous devez disposer des autorisations pubsub.topics.setIamPolicy. Si vous ne configurez que des notifications par e-mail, les autorisations Cloud Pub/Sub ne sont pas requises. 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
    • Autorisation bigquery.datasets.update sur l'ensemble de données cible

    Le rôle Cloud IAM prédéfini bigquery.admin inclut les autorisations bigquery.transfers.update et bigquery.datasets.update. Pour plus d'informations sur les rôles Cloud IAM dans BigQuery, consultez la page Contrôle des accès.

  • Google Merchant Center : accès au compte Google Merchant Center utilisé dans la configuration de transfert. Vous pouvez vérifier l'accès en cliquant sur la section Utilisateurs dans l'interface utilisateur de Google Merchant Center.

Configurer un transfert Google Merchant Center

La configuration d'un transfert de données pour les rapports Google Merchant Center nécessite les éléments suivants :

  • ID de marchand ou ID de multicompte : il s'agit de l'ID de marchand indiqué dans la section supérieure gauche de 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

  1. Accédez à l'interface utilisateur Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Transfers (Transferts).

  3. Cliquez sur Create Transfer (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), sous Display name (Nom à afficher), entrez 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)
        • Weekly (Toutes les semaines)
        • Monthly (Tous les mois)
        • Custom (Personnalisé)
        • On-demand (À la demande)
      • Pour le champ 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. Cette valeur doit être d'au moins 90 minutes à partir de 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 commencera immédiatement et échouera 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 90 minutes before the data of your Merchant account are prepared and available for the transfer. Si cela se produit, attendez 90 minutes, puis configurez un remplissage pour aujourd'hui ou attendez jusqu'à demain pour la prochaine exécution programmée.

    • 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 jeu 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.

      Détails de la source Google Merchant Center

    • (Facultatif) Dans la section Notification options (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 Cloud Pub/Sub topic (Sélectionner un sujet Cloud 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. Les notifications d'exécution de transfert sont actuellement en version alpha.
  5. Cliquez sur Save (Enregistrer).

UI classique

  1. Accédez à l'interface utilisateur Web de BigQuery.

    Accéder à l'UI Web de BigQuery

  2. Cliquez sur Transfers (Transferts).

  3. Cliquez sur Add Transfer (Ajouter un transfert).

  4. Sur la page New Transfer (Nouveau transfert) :

    • Pour le champ Source, sélectionnez Google Merchant Center.
    • Pour le champ Display name (Nom à afficher), saisissez le nom du transfert, par exemple My Transfer. Ce nom peut correspondre à n'importe quelle valeur permettant d'identifier facilement le transfert si vous devez le modifier ultérieurement.
    • Pour le champ Schedule (Programmation), cliquez sur Edit (Modifier) et définissez Starting (UTC) (Heure de début [UTC]) sur au moins 90 minutes après l'heure actuelle.

      Planning de transfert

      Si vous laissez les paramètres de programmation par défaut, la première exécution du transfert démarrera immédiatement et échouera 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 90 minutes before the data of your Merchant account are prepared and available for the transfer. Dans ce cas, attendez 90 minutes, puis configurez un remplissage pour aujourd'hui ou attendez jusqu'à demain pour la prochaine exécution programmée.

    • 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 Google Merchant Center.

    • Pour le champ Merchant ID (ID de marchand), saisissez votre ID de marchand ou votre ID de multicompte.

      Transfert Google Merchant Center

    • (Facultatif) Développez la section Advanced (Avancé), puis configurez les notifications d'exécution pour votre transfert. Les notifications d'exécution de transfert sont actuellement en version alpha.

      • Pour le champ Cloud Pub/Sub topic (Sujet Cloud Pub/Sub), saisissez le nom de votre sujet (par exemple, projects/myproject/topics/mytopic).
      • Cochez la case Send email notifications (Envoyer des notifications par e-mail) pour autoriser les notifications par e-mail en cas d'échec de l'exécution des transferts.
      • Ne cochez pas la case Disabled (Désactivé) lorsque vous configurez un transfert. Pour désactiver les transferts existants, consultez la page Utiliser les transferts.

        Sujet Cloud Pub/Sub

  5. Cliquez sur Ajouter.

  6. Lorsque vous y êtes invité, cliquez sur Allow (Autoriser) pour autoriser le service de transfert de données BigQuery à gérer vos listes de produits et vos comptes marchands pour Google Shopping, ainsi qu'à accéder aux données dans BigQuery et à les gérer. Vous devez autoriser les fenêtres pop-up de bigquery.cloud.google.com pour afficher la fenêtre des autorisations.

    Boîte de dialogue des autorisations de transfert pour Merchant Center

CLI

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 ajouter le paramètre --project_id pour spécifier un projet particulier. Si --project_id n'est pas indiqué, 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 du 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. Par exemple : --params='{"param":"param_value"}' Pour le champ Google Merchant Center, vous devez indiquer le paramètre merchant_id.
  • data_source est la source de données : merchant_center.

Par exemple, la commande suivante crée un transfert Google Merchant Center nommé My Transfer à l'aide de l'ID de marchand 1234 et de 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"}' \
--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 90 minutes maximum avant que les données de votre compte marchand soient préparées et disponibles pour le transfert. Si tel est le cas, attendez 90 minutes, puis configurez un remplissage pour aujourd'hui ou attendez jusqu'à demain pour la prochaine exécution programmée.

API

Exécutez la méthode projects.locations.transferConfigs.create et indiquez une instance de la ressource TransferConfig.

Résoudre des problèmes de configuration de 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 section 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.

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 Google Data Studio.

Ces exemples utilisent BigQuery pour SQL standard. SQL standard est la syntaxe de requête par défaut dans l'interface utilisateur Web BigQuery de la console GCP. Activez --use_legacy_sql=false pour indiquer à BigQuery que vous souhaitez utiliser le code SQL standard sur la ligne de commande. Pour en savoir plus sur l'utilisation d'un préfixe, consultez la page Définir un préfixe de requête.

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.

Statistiques sur les produits et les problèmes de produits

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

Console

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

CLI

bq query --use_legacy_sql=false '
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 suivant fournit le nombre de produits dont l'affichage n'est pas approuvé dans les annonces Shopping. Le refus de ces produits peut résulter d'une exclusion ou d'un problème avec le produit.

Console

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

CLI

bq query --use_legacy_sql=false '
SELECT
  _PARTITIONDATE AS date,
  COUNT(*) AS num_products
FROM
  dataset.Products_merchant_id,
  UNNEST(destinations) AS destination
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD' AND
  destination.status = 'disapproved'
GROUP BY
  date
ORDER BY
  date DESC'

Produits présentant des problèmes de refus

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

Console

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

CLI

bq query --use_legacy_sql=false '
SELECT
  _PARTITIONDATE AS date,
  COUNT(DISTINCT CONCAT(CAST(merchant_id AS STRING), ':', product_id))
      AS num_distinct_products
FROM
  dataset.Products_merchant_id,
  UNNEST(issues) AS issue
WHERE
  _PARTITIONDATE >= 'YYYY-MM-DD' AND
  issue.servability = 'disapproved'
GROUP BY
  date
ORDER BY
  date DESC'
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.