Cette page explique comment importer les informations de votre catalogue et les maintenir à jour.
Les procédures d'importation présentées sur cette page s'appliquent aux recommandations et à la recherche. Une fois que vous avez importé des données, les deux services peuvent les utiliser. Vous n'avez donc pas besoin d'importer les mêmes données deux fois si vous utilisez les deux services.
Vous pouvez importer vos données produit à partir de BigQuery ou spécifier les données de manière intégrée dans la requête. Ces procédures permettent de réaliser des importations ponctuelles, à l'exception de l'association de Merchant Center. Planifiez des importations régulières de catalogue (idéalement, tous les jours) pour vous assurer que votre catalogue reste bien à jour.
Consultez Maintenir votre catalogue à jour.
Vous pouvez également importer des produits individuels. Pour en savoir plus, consultez Importer un produit.
Avant de commencer
Avant de commencer à importer votre catalogue, vous devez :
- configurer votre projet ;
- Créez un compte de service.
- Ajoutez le compte de service à votre environnement local.
Pour en savoir plus, consultez Prérequis de configuration.
Remarques concernant l'importation de catalogues
Cette section décrit les méthodes pouvant être utilisées pour l'importation par lot des données de catalogue, leurs différents cas d'utilisation et certaines de leurs limites.
BigQuery | Description | Importer des données à partir d'une table BigQuery précédemment chargée qui utilise le schéma Vertex AI Search pour le commerce. Cette opération peut être effectuée à l'aide de la console Google Cloud ou de cURL. |
---|---|---|
Contexte d'utilisation |
Si vous avez des catalogues de produits avec de nombreux attributs. L'importation BigQuery utilise le schéma Vertex AI Search pour le commerce, qui contient plus d'attributs produit que d'autres options d'importation (cela inclut les attributs personnalisés de clé-valeur).
Si vous disposez d'importants volumes de données. L'importation BigQuery n'a pas de limite de données. Si vous utilisez déjà BigQuery. |
|
Limites | Nécessite l'étape supplémentaire de la création d'une table BigQuery mappée sur le schéma Vertex AI Search pour le commerce. | |
Cloud Storage | Description |
Importer des données au format JSON à partir de fichiers chargés dans un bucket Cloud Storage. Chaque fichier doit avoir une taille inférieure ou égale à 2 Go, et vous pouvez importer jusqu'à 100 fichiers à la fois. L'importation peut être effectuée à l'aide de la console Google Cloud ou de cURL. Utilise le format de données JSON Product , qui permet d'utiliser des attributs personnalisés.
|
Contexte d'utilisation | Si vous devez charger une grande quantité de données en une seule étape. | |
Limites | Non idéal pour les catalogues avec des mises à jour fréquentes de l'inventaire et des prix, car les modifications ne sont pas immédiatement prises en compte. | |
Importation intégrée | Description |
Importer à l'aide d'un appel à la méthode Product.import Utilise l'objet ProductInlineSource , qui présente moins d'attributs de catalogue de produits que le schéma Vertex AI Search pour le commerce, mais accepte les attributs personnalisés.
|
Contexte d'utilisation | Si vous disposez de données de catalogue plates et non relationnelles, ou d'une fréquence élevée de mises à jour des quantités ou des prix. | |
Limites | Vous ne pouvez pas importer plus de 100 éléments de catalogue à la fois. Cependant, il est possible d'effectuer de nombreuses étapes de chargement et aucune limite ne s'applique aux éléments. |
Tutoriels
Cette section présente différentes méthodes d'importation de catalogues à l'aide de tutoriels vidéo et shell.
Tutoriel vidéo
Regardez cette vidéo pour découvrir comment importer un catalogue à l'aide de l'API Retail.
Tutoriel : Importer un catalogue à partir de BigQuery
Ce tutoriel explique comment utiliser une table BigQuery pour importer de grandes quantités de données de catalogue sans limite.
Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :
Tutoriel : importer un catalogue depuis Cloud Storage
Ce tutoriel vous explique comment importer un grand nombre d'articles dans un catalogue.
Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :
Tutoriel : importer des données de catalogue de façon intégrée
Ce tutoriel explique comment importer des produits dans un catalogue de façon intégrée.
Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :
Bonnes pratiques concernant l'importation de catalogues
Des données de haute qualité sont nécessaires pour générer des résultats de haute qualité. Si vos données ne contiennent pas de champs ou comportent des valeurs d'espace réservé plutôt que des valeurs réelles, la qualité de vos prédictions et des résultats de recherche en souffrira.
Lorsque vous importez des données de catalogue, veillez à mettre en œuvre les bonnes pratiques suivantes :
Veillez à bien distinguer les produits principaux des variantes. Avant d'importer des données, consultez Niveaux de produit.
Modifiez la configuration au niveau du produit après avoir déployé des efforts importants pour importer des données. Les articles principaux (et non les variantes) sont renvoyés dans les résultats de recherche ou les recommandations.
Exemple : Si le groupe de SKU principal est Chemise à col en V, le modèle de recommandation renvoie une chemise à col en V, et peut-être des chemises à col rond et à col dégagé. Toutefois, si aucune variante n'est utilisée et que chaque SKU est principal, chaque combinaison de couleur ou de taille de la chemise à col en V est renvoyée en tant qu'article distinct dans le panneau de recommandations : Chemise à col en V marron, taille XL, Chemise à col en V marron, taille L,jusqu'à Chemise à col en V blanche, taille M, Chemise à col en V blanche, taille S.
Les collections peuvent être reconnues ensemble à condition que les ID de variantes soient inclus avec les ID de produits principaux dans
collectionMemberIds[]
. Cela permet de capturer une collection de produits dans l'événement utilisateur, à partir de laquelle un utilisateur peut avoir acheté un ou plusieurs produits de l'ensemble, en créditant l'ensemble de l'achat. Cela permet de présenter au même utilisateur d'autres produits d'une collection donnée dans une future requête associée.Exemple : Un utilisateur a déjà acheté une housse de couette. Les produits assortis d'une parure de lit, comme les taies d'oreiller, sont donc renvoyés.
Respectez les limites d'importation de produits.
Pour les importations groupées depuis Cloud Storage, la taille de chaque fichier doit être inférieure ou égale à 2 Go. Vous pouvez inclure jusqu'à 100 fichiers à la fois dans une seule requête d'importation groupée.
Pour l'importation intégrée, vous ne pouvez pas importer plus de 5000 produits à la fois.
Assurez-vous que les informations requises sur le catalogue sont bien incluses et correctes. N'utilisez pas de valeurs de substitution.
Incluez autant d'informations de catalogue facultatives que possible.
Assurez-vous que tous vos événements utilisent une seule devise, en particulier si vous prévoyez d'utiliser la consoleGoogle Cloud pour obtenir des métriques de revenus. L'API Vertex AI Search pour le commerce n'accepte pas l'utilisation de plusieurs devises par catalogue.
Maintenez votre catalogue à jour, idéalement tous les jours. La planification des importations périodiques du catalogue empêche la qualité du modèle de se dégrader au fil du temps. Vous pouvez planifier des importations récurrentes automatiques lorsque vous importez votre catalogue à l'aide de la console Search for Commerce. Vous pouvez également utiliser Google Cloud Scheduler pour automatiser les importations.
N'enregistrez pas d'événements utilisateur pour les produits qui n'ont pas encore été importés.
Une fois que vous avez importé les informations de catalogue, consultez les informations des rapports d'erreurs et de journalisation de votre projet. Si vous rencontrez plusieurs erreurs, examinez-les et corrigez les problèmes de processus à l'origine de ces erreurs.
Le pipeline d'ingestion de données Vertex AI Search pour le commerce englobe à la fois les données du catalogue de produits et les données des événements utilisateur. Ce flux de données constitue la base d'un entraînement de modèle robuste et d'une évaluation continue grâce à des mécanismes de commentaires. L'ingestion de données exactes et complètes n'est pas seulement un prérequis. Il s'agit d'un processus continu essentiel pour maintenir l'adaptabilité des modèles sous-jacents. Cela influe directement sur la qualité et la pertinence des résultats de recherche, ce qui offre un retour sur investissement important.
Tenez compte de ces bonnes pratiques d'ingestion de données lorsque vous concevez votre solution de recherche pour le commerce.
Importation groupée, flux en temps réel ou les deux ?
Vertex AI Search pour le commerce propose deux méthodes principales pour ingérer des catalogues :
Importation par lots
Flux en temps réel
Cette double approche s'adapte aux différents besoins architecturaux des divers backends client. Il n'est pas obligatoire de choisir une seule méthode. Vous pouvez utiliser un mode d'ingestion hybride, en combinant l'importation groupée et les mises à jour en flux continu en fonction de vos besoins spécifiques.
Les importations groupées sont idéales pour ajouter, supprimer ou modifier des milliers de produits à la fois. En revanche, le flux en temps réel est idéal lorsque des mises à jour continues sont nécessaires pour un volume de produits relativement faible. Le choix entre ces méthodes dépend de la nature de votre catalogue de produits, de la fréquence des mises à jour et de l'architecture globale de vos systèmes backend.
La fonctionnalité d'importation groupée est compatible avec trois sources de données distinctes :
- BigQuery : BigQuery permet de modifier rapidement les données du catalogue, de spécifier les dates de partition lors de l'importation et de transformer efficacement les données à l'aide de requêtes SQL.
- Google Cloud Storage : Cloud Storage nécessite le respect de formats spécifiques, tels que JSON, et de restrictions concernant les fichiers. Les utilisateurs sont responsables de la gestion des structures de bucket, du découpage des fichiers et d'autres aspects du processus d'importation. De plus, la modification directe du catalogue dans Cloud Storage peut être fastidieuse et, bien que potentiellement économique, elle manque de flexibilité par rapport aux autres méthodes.
- Données intégrées : pour les catalogues volumineux, les importations intégrées ne sont peut-être pas l'option la plus évolutive en raison des limites de taille. Réservez-les pour les mises à jour mineures ou les tests expérimentaux.
Pour les scénarios impliquant un grand nombre de mises à jour du catalogue de produits (des milliers de modifications, d'ajouts ou de suppressions de produits) sur une courte période et à intervalles réguliers, une approche combinée d'importations groupées et de flux en temps réel peut être très efficace. Organisez les mises à jour dans BigQuery ou Cloud Storage, puis effectuez des importations groupées incrémentielles à intervalles réguliers (par exemple, toutes les heures ou toutes les deux heures). Cette méthode permet de gérer efficacement les mises à jour à grande échelle tout en minimisant les perturbations.
Pour les mises à jour plus petites et moins fréquentes, ou celles qui doivent être immédiatement reflétées dans le catalogue, utilisez l'API de streaming en temps réel. Dans l'approche hybride, le streaming en temps réel peut combler les lacunes entre les importations groupées, ce qui permet de s'assurer que votre catalogue reste à jour. Cette stratégie établit un équilibre entre les appels d'API REST individuels (pour corriger les produits) et les modifications groupées. Elle permet d'optimiser l'efficacité et la réactivité de la gestion de votre catalogue Vertex AI Search pour le commerce.
Stratégies d'embranchement pour la gestion du catalogue
Maintenez un catalogue unifié dans une seule branche au lieu d'avoir des catalogues disparates dans plusieurs branches. Cette pratique simplifie les mises à jour du catalogue et réduit le risque d'incohérences lors du changement de branche.
Les stratégies de branching courantes suivantes sont efficaces pour la gestion des catalogues.
Mises à jour d'une seule branche
Désignez une branche active comme branche par défaut et mettez-la à jour en continu à mesure que le catalogue change. Pour les mises à jour groupées, utilisez la fonctionnalité d'importation pendant les périodes de faible trafic afin de minimiser les perturbations. Utilisez les API de flux pour les mises à jour incrémentielles plus petites ou regroupez-les en blocs plus importants pour les importations régulières.
Changement de branche
Vous avez le choix entre plusieurs options pour gérer les différentes branches :
Utilisez des branches pour la préparation et la validation :
- Certains ingénieurs de sites e-commerce optent pour une approche de changement de branche, où le catalogue est mis à jour dans une branche non active, puis devient la branche par défaut (active) lorsqu'il est prêt pour la production. Cela permet de préparer le catalogue du lendemain à l'avance. Vous pouvez effectuer des modifications à l'aide de l'importation groupée ou du streaming vers la branche non en direct, ce qui garantit une transition fluide pendant les périodes de faible trafic.
- Le choix entre ces stratégies dépend de vos exigences spécifiques, de la fréquence des mises à jour et de la configuration de votre infrastructure. Toutefois, quelle que soit la stratégie choisie, il est essentiel de maintenir un catalogue unifié dans une seule branche pour obtenir des performances optimales et des résultats de recherche cohérents dans Vertex AI Search pour le commerce.
Utilisez des branches pour les sauvegardes :
- Une seule branche en direct se concentre sur l'ingestion et le traitement continus des mises à jour de produits pour maintenir l'index Vertex AI Search pour le commerce à jour en temps quasi réel.
- Une autre branche se concentre sur la création d'un instantané quotidien des données transformées dans la recherche Retail, qui sert de mécanisme de secours fiable en cas de corruption des données ou de problèmes avec la branche 0.
- Une troisième branche se concentre sur la création d'un instantané hebdomadaire de la date transformée. Ainsi, le client peut disposer d'une sauvegarde d'un jour et d'une sauvegarde d'une semaine dans différentes branches.
Supprimer définitivement des branches de catalogue
Si vous importez de nouvelles données de catalogue dans une branche existante, il est important que la branche de catalogue soit vide pour garantir l'intégrité des données importées dans la branche. Lorsque la branche est vide, vous pouvez importer de nouvelles données de catalogue et l'associer à un compte marchand.
Si vous diffusez des prédictions en direct ou du trafic de recherche, et que vous prévoyez de supprimer votre branche par défaut, pensez d'abord à spécifier une autre branche comme branche par défaut avant de la supprimer. Étant donné que la branche par défaut affichera des résultats vides après avoir été purgée, la purge d'une branche par défaut active peut entraîner une interruption de service.
Pour supprimer définitivement des données d'une branche de catalogue, procédez comme suit :
Accédez à la page Données dans la console Search for Commerce.
Accéder à la page "Données"Sélectionnez une branche de catalogue dans le champ Nom de la branche.
Dans le menu à trois points à côté du champ Nom de la branche, sélectionnez Purger la branche.
Un message s'affiche pour vous avertir que vous êtes sur le point de supprimer toutes les données de la branche, ainsi que tous les attributs créés pour celle-ci.
Saisissez la branche, puis cliquez sur Confirmer pour supprimer définitivement les données du catalogue de la branche.
Une opération de longue durée est lancée pour supprimer les données de la branche du catalogue. Une fois l'opération de suppression terminée, son état s'affiche dans la liste Catalogue de produits de la fenêtre État de l'activité.
Mises à jour de l'inventaire dans Vertex AI Search pour le commerce
Cette section explique comment optimiser les performances de Vertex AI Search pour le commerce en mettant régulièrement à jour votre inventaire.
Flux en temps réel
- Pour les données dynamiques telles que les informations sur l'inventaire (prix, disponibilité) et les détails au niveau du magasin, y compris l'état de la commande et les prix spécifiques au magasin, le streaming en temps réel est la seule option disponible dans Vertex AI Search pour le commerce.
- Cette distinction est due à la nature haute fréquence des fluctuations d'inventaire par rapport aux données relativement statiques du catalogue de produits. La disponibilité des produits peut changer plusieurs fois par jour, tandis que les descriptions ou les attributs restent relativement constants.
- La fréquence des mises à jour au niveau du magasin augmente avec le nombre de magasins.
Mises à jour asynchrones
- Pour s'adapter à ce rythme de changement rapide, Vertex AI Search pour le commerce utilise des mises à jour d'inventaire asynchrones à l'aide d'API qui renvoient un ID de tâche.
- La mise à jour n'est considérée comme terminée que lorsque l'état du job est interrogé et confirmé, ce qui peut entraîner un léger retard de quelques secondes à quelques minutes.
Mises à jour hors service
- Une fonctionnalité notable de ce système est la possibilité de mettre à jour les informations sur l'inventaire avant que le produit correspondant ne soit ingéré dans le catalogue. Cela permet de résoudre le problème courant où les pipelines de données d'inventaire et de produits fonctionnent indépendamment chez les marchands, ce qui entraîne parfois la disponibilité des informations d'inventaire avant la mise à jour du catalogue de produits. Lorsque vous mettez à jour l'inventaire, utilisez l'option
allowMissing
pour gérer les mises à jour de l'inventaire et des produits qui ne sont pas dans l'ordre. - En permettant aux mises à jour de l'inventaire de précéder l'ingestion du catalogue, Vertex AI Search pour le commerce s'adapte à ces différences de pipeline, ce qui garantit la disponibilité de données d'inventaire précises, même pour les nouveaux produits.
- Toutefois, les informations d'inventaire d'un produit sont conservées pendant 24 heures et sont supprimées si aucun produit correspondant n'est ingéré pendant cette période. Ce mécanisme assure la cohérence des données et empêche les informations obsolètes sur l'inventaire de persister dans le système.
Vérifications préalables du catalogue de produits pour des tests A/B robustes dans Vertex AI Search pour le commerce
Cette section explique comment exécuter des vérifications préalables sur les données du catalogue de produits.
Assurer une parité cohérente des mises à jour du catalogue
- Pour préparer un test A/B dans Vertex AI Search pour le commerce, il est essentiel de maintenir une parité stricte entre l'ancien catalogue (contrôle) et le catalogue Vertex AI Search pour le commerce (test). Tout déséquilibre entre les deux peut avoir un impact négatif sur le test A/B, ce qui peut entraîner des observations biaisées et des résultats potentiellement non valides. Par exemple, des incohérences dans la disponibilité ou le prix des produits, ou même de légères différences d'attributs, peuvent introduire des biais involontaires dans les données de test.
- Pour atténuer ce risque, il est impératif de concevoir un processus de mise à jour parallèle pour les catalogues de contrôle et de test, en évitant les mises à jour séquentielles dans la mesure du possible. L'objectif est de maximiser la durée pendant laquelle les deux catalogues sont synchronisés. Les mises à jour en série, en revanche, peuvent entraîner des retards dans une voie ou l'autre. Ces délais peuvent entraîner des incohérences temporaires dans les catalogues, où un produit peut être en stock dans un catalogue, mais pas dans l'autre. Ou encore, un produit récemment ajouté apparaît dans un catalogue avant l'autre. Ces disparités peuvent avoir une influence considérable sur le comportement des utilisateurs, les clics et les achats, ce qui conduit à une comparaison injuste et à des résultats de tests A/B inexacts.
- En privilégiant les mises à jour parallèles et en s'efforçant d'assurer une parité cohérente des catalogues, les marchands peuvent garantir des conditions équitables pour les tests A/B dans Vertex AI Search pour le commerce. Cette approche permet d'analyser les résultats des tests de manière impartiale et équitable, ce qui permet d'obtenir des insights plus fiables et de prendre des décisions plus éclairées.
Parité des données de catalogue
- La profondeur et la précision de la compréhension des produits par un modèle de recherche e-commerce dépendent de la richesse et de la qualité des informations de son catalogue de produits sous-jacent. Plus les données produit du catalogue sont complètes, mieux le modèle est équipé pour comprendre et classer efficacement les produits.
- Par conséquent, en préparation des tests A/B, il est impératif de s'assurer que les données produit importées dans l'ancien catalogue (contrôle) et dans le catalogue Vertex AI Search pour le commerce (test) sont identiques. Toute incohérence dans les informations sur les produits entre ces deux environnements peut fausser considérablement les résultats des tests A/B.
- Par exemple, si l'ancien moteur de recherche bénéficie d'un catalogue plus riche ou plus étendu que Vertex AI Search pour le commerce, cela crée un avantage injuste. Le manque d'informations dans le catalogue Vertex AI Search pour le commerce peut être essentiel pour comprendre et classer les produits. Il peut entraîner des résultats de recherche inexacts et des comparaisons de performances trompeuses. Il peut être difficile de détecter de telles disparités avec des outils externes. Cela nécessite souvent une inspection manuelle minutieuse des deux catalogues.
- En s'assurant que les deux catalogues contiennent les mêmes données produit avec le même niveau de détail, les marchands peuvent créer des conditions équitables pour les tests A/B dans Vertex AI Search pour le commerce. Cette approche favorise une comparaison équitable et impartiale des deux moteurs de recherche, ce qui permet d'évaluer précisément leurs performances et leurs capacités respectives.
Planification de la reprise après sinistre
Un plan de reprise après sinistre bien préparé garantit que vos fonctionnalités de recherche e-commerce restent opérationnelles et réactives, ce qui minimise l'impact sur l'expérience client et la génération de revenus. Ce plan doit permettre de restaurer rapidement le catalogue pour faire face à une éventuelle défaillance des pipelines d'ingestion du catalogue et des événements utilisateur, quelle que soit la cause sous-jacente.
L'utilisation de BigQuery pour la préparation des données offre un avantage distinct en matière de reprise après sinistre. Si les données actuelles du catalogue ou des événements utilisateur dans Vertex AI Search pour le commerce ne sont pas très différentes du dernier instantané stocké dans BigQuery, l'appel de l'API d'importation peut lancer une restauration rapide. Cette approche minimise les temps d'arrêt et garantit que la fonctionnalité de recherche reste opérationnelle.
À l'inverse, si BigQuery n'est pas intégré à votre pipeline de données, des mécanismes alternatifs doivent être en place pour recharger rapidement le catalogue à partir d'un état stable connu. Ces mécanismes peuvent impliquer des systèmes de sauvegarde, la réplication des données ou d'autres stratégies de reprise après sinistre.
En intégrant ces considérations de reprise après sinistre à votre architecture Vertex AI Search pour le commerce, vous pouvez renforcer la robustesse du système et assurer la continuité de l'activité, même en cas d'interruptions inattendues.
Planifier la haute disponibilité
Lorsque vous importez votre catalogue de produits dans Vertex AI Search, il est important de tenir compte de la façon dont les différents services gèrent la régionalité pour concevoir un pipeline d'ingestion de données résilient. Google Cloud
Pour créer un pipeline d'ingestion compatible avec la reprise après sinistre à l'aide de Dataflow, déployez vos jobs dans plusieurs régions à l'aide de l'une des conceptions suivantes :
- Actif/actif : les instances Dataflow de plusieurs régions traitent activement les données simultanément.
- Actif/passif : une instance Dataflow dans une région est active, tandis que les instances dans d'autres régions restent en veille.
Voici comment implémenter ces conceptions avec Pub/Sub et Dataflow :
- Services mondiaux : certains services, comme Pub/Sub, fonctionnent à l'échelle mondiale. Google Cloud gère leur disponibilité en fonction de leurs contrats de niveau de service (SLA) spécifiques.
- Services régionaux : d'autres services, comme Dataflow, que vous pouvez utiliser pour transformer et ingérer des données dans Vertex AI Search, sont régionaux. Vous êtes responsable de la configuration de ces composants pour la haute disponibilité et la reprise après sinistre.
Par exemple, lorsque vous utilisez BigQuery pour conserver des données, vous pouvez le configurer pour qu'il soit multirégional. La redondance et la disponibilité des données sont alors gérées automatiquement par Google Cloud. De même, lorsque vous utilisez Cloud Storage, vous pouvez le configurer pour qu'il soit multirégional.
Conception actif/actif
La conception active/active utilise les attributs de message Pub/Sub et les filtres d'abonnement pour s'assurer que chaque message est traité exactement une fois par un job Dataflow actif dans une région spécifique.
Ajoutez des attributs de message : lorsque vous publiez des messages dans le sujet Pub/Sub, tels que des mises à jour de produits, incluez un attribut indiquant la région cible. Exemple :
region
:us-central1
region
:us-east1
Configurer des filtres d'abonnement : pour chaque pipeline Dataflow régional, configurez son abonnement Pub/Sub afin qu'il n'extrait que les messages correspondant à sa région à l'aide de filtres de messages. Par exemple, l'abonnement au job Dataflow
us-central1
aurait un filtre tel queattributes.region = "us-central1"
.Basculement : si une région devient indisponible, mettez à jour votre système de publication en amont pour taguer tous les nouveaux messages avec un attribut pour une région opérationnelle. Le traitement des messages est alors redirigé vers l'instance Dataflow de la région de basculement.
Plusieurs composants utilisés dans l'architecture peuvent être configurés pour être multirégionaux par défaut. Par exemple, lorsque vous utilisez BigQuery pour conserver des données, vous pouvez le configurer pour qu'il soit multirégional. La redondance et la disponibilité des données sont alors gérées automatiquement par Cloud Storage. De même, lorsque vous utilisez Cloud Storage, vous pouvez le configurer pour qu'il soit multirégional.
Conception actif/passif
Cette conception implique de n'avoir qu'un seul pipeline Dataflow régional qui extrait activement les messages de Pub/Sub à tout moment.
Assurez-vous qu'un seul abonnement est associé : vérifiez que seul l'abonnement Pub/Sub pour le job Dataflow de la région active est associé et extrait les messages. Les abonnements aux jobs Dataflow dans les régions passives doivent être créés, mais rester détachés.
Basculement : en cas de défaillance dans la région active, manuellement ou de manière programmatique :
- Détachez l'abonnement Pub/Sub associé au job Dataflow de la région concernée.
- Associez l'abonnement Pub/Sub à un job Dataflow dans l'une des régions passives (en veille).
Cela transfère la charge de traitement des messages vers la région nouvellement activée.
Résilience et investigation
L'utilisation de BigQuery dans la conception de l'ingestion de données peut permettre de gérer la résilience et de créer des fonctionnalités pour l'analyse et le débogage. Les produits et l'inventaire ingérés directement avec les API patch
et addLocalInventory
impliquent qu'aucune trace de la mise à jour des produits et de l'inventaire n'est laissée lorsque les données sont envoyées à Vertex AI Search pour le commerce. Votre utilisateur peut vouloir savoir pourquoi un produit ne s'affiche pas comme il s'y attend. Le fait de disposer d'une zone de préparation créée avec BigQuery et contenant un historique complet des données facilite ce type d'investigation et de débogage.
Architecture de référence
Dans cette architecture, l'ingestion de données comprend généralement des étapes de données brutes, organisées et de consommation, toutes basées sur BigQuery. Le système transfère les données entre les étapes à l'aide de Dataflow et orchestre l'automatisation de l'ensemble à l'aide de workflows cloud :
- Le système prendrait les données brutes telles quelles et les horodaterait pour conserver l'historique. Ces données n'ont pas changé. Les clients les considèrent donc comme une source fiable.
- Le système transformerait ensuite les données en une étape organisée et les marquerait à nouveau avec un code temporel. Les clients savaient ainsi quand la transformation avait eu lieu et si quelque chose avait échoué.
- Enfin, le système créerait des vues dans la phase de consommation sur les données organisées en utilisant l'heure à laquelle il les a taguées précédemment. Ainsi, le client saura exactement quelles données transformées doivent être ingérées dans Vertex AI Search pour le commerce.
Les branches 0, 1 et 2 servent de branches de sauvegarde en direct, datant d'un jour et datant d'une semaine, respectivement. Les données ingérées directement dans la branche 0 sont agrégées et indexées dans la branche 1 quotidiennement et dans la branche 2 chaque semaine. De cette façon, toute corruption de données peut être annulée, ce qui améliore la continuité des opérations et la résilience du système.
De plus, vous pouvez effectuer des analyses et des débogages, car l'intégralité de l'historique et de la provenance des données est conservée dans des ensembles de données BigQuery mondiaux.
Planifier les cas extrêmes avec l'ingestion de catalogue
Une fois les mécanismes de base pour l'ingestion de catalogue dans Vertex AI Search pour le commerce établis, une approche proactive consiste à évaluer leur résilience face à divers cas extrêmes. Bien que certains de ces scénarios ne soient pas immédiatement pertinents pour vos besoins commerciaux spécifiques, les prendre en compte dans la conception de votre backend peut vous permettre de vous préparer pour l'avenir.
Cette étape préparatoire consiste à examiner la capacité de votre pipeline de données à gérer les scénarios inattendus ou extrêmes, en veillant à sa robustesse et à son adaptabilité aux exigences en constante évolution. En anticipant les problèmes potentiels et en les résolvant de manière proactive, vous pouvez limiter les futures perturbations et maintenir le flux continu de données produit dans votre système de recherche pour le commerce.
Pour ce faire, la logique Dataflow doit être conçue de manière à :
Valide chaque élément des données brutes pour qu'il corresponde à un schéma approprié. Le contrat des données brutes doit être déterminé à l'avance, et chaque élément de données doit toujours être mis en correspondance avec le contrat. En cas d'échec de la validation, l'élément de données brutes doit être horodaté et conservé dans les tables BigQuery brutes ayant échoué, avec les erreurs réelles destinées à l'analyse forensique.
Voici quelques exemples d'échecs :
- Un attribut qui ne fait pas partie du contrat apparaît soudainement dans l'élément de données brutes.
- Un attribut obligatoire n'est pas présent dans l'élément de données brutes.
Valide chaque élément des données brutes pour la transformation au format Vertex AI Search pour le commerce. Vertex AI Search pour le commerce exige certains champs obligatoires pour l'ingestion de produits. Chaque élément des données brutes doit maintenant être vérifié à nouveau pour déterminer s'il peut être transformé au format de schéma Vertex AI Search pour le commerce. En cas d'échec de la transformation, l'élément de données brutes doit être horodaté et conservé dans les tables BigQuery de données organisées ayant échoué, avec les messages d'erreur réels qui peuvent aider à l'analyse.
Voici quelques exemples d'échecs :
- Un attribut donné, comme le prix, ne peut pas être mis au format numérique, car l'élément de données brutes est alphanumérique.
- Le nom du produit est totalement manquant.
Cet exemple montre un exemple de schéma de table BigQuery permettant de conserver tous les échecs à des fins de débogage :
Afficher un exemple de schéma de table BigQuery
[ { "mode": "REQUIRED", "name": "ingestedTimestamp", "type": "TIMESTAMP" }, { "mode": "REQUIRED", "name": "payloadString", "type": "STRING" }, { "mode": "REQUIRED", "name": "payloadBytes", "type": "BYTES" }, { "fields": [ { "mode": "NULLABLE", "name": "key", "type": "STRING" }, { "mode": "NULLABLE", "name": "value", "type": "STRING" } ], "mode": "REPEATED", "name": "attributes", "type": "RECORD" }, { "mode": "NULLABLE", "name": "errorMessage", "type": "STRING" }, { "mode": "NULLABLE", "name": "stacktrace", "type": "STRING" } ]
Tests de contrainte et évolutivité
Préparez-vous aux événements à fort volume et à la croissance grâce aux tests de charge et à l'évolutivité.
Événements à fort trafic
Les événements à fort trafic, comme les fêtes, représentent un défi de taille pour les pipelines d'ingestion de données. L'augmentation des mises à jour de l'inventaire, y compris des niveaux de stock et des prix, ainsi que les modifications potentielles des attributs de produit nécessitent une infrastructure robuste. Il est important de déterminer si votre système d'ingestion peut gérer cette charge accrue. Les tests de charge simulés, qui reproduisent les schémas de trafic de pointe, permettent d'identifier les goulots d'étranglement et d'assurer un fonctionnement fluide pendant ces périodes critiques.
Ventes flash
Les ventes flash présentent un défi unique en raison de leur courte durée et des fluctuations rapides de l'inventaire. Il est essentiel de synchroniser l'inventaire en temps réel pour éviter les écarts entre les résultats de recherche et la disponibilité réelle. Si vous ne le faites pas, vous risquez de nuire à l'expérience client (par exemple, des produits populaires peuvent apparaître comme disponibles alors qu'ils sont en rupture de stock, ou inversement). De plus, les changements de prix pendant les ventes flash peuvent avoir un impact significatif sur le classement des produits. Il est donc essentiel de mettre à jour les prix de manière précise et rapide dans l'index de recherche.
Élargissement du catalogue
La croissance de votre activité ou l'expansion de votre gamme de produits peuvent entraîner une augmentation spectaculaire (par exemple, 5 fois ou 10 fois) du nombre de produits dans votre catalogue. Votre architecture d'ingestion doit être évolutive pour s'adapter à cette croissance de manière fluide. Cela peut nécessiter de revoir l'ensemble du pipeline ETL (extraction, transformation et chargement), en particulier si de nouvelles sources de données ou de nouveaux formats d'informations sur les produits sont introduits.
En traitant de manière proactive ces scénarios potentiels, vous pouvez vous assurer que votre pipeline d'ingestion Vertex AI Search pour le commerce reste robuste, évolutif et réactif, même en cas de pics de trafic soudains, de ventes flash ou de croissance importante du catalogue. Cette approche proactive permet de garantir l'exactitude et la fiabilité de vos résultats de recherche, ce qui contribue à une expérience utilisateur positive et à la réussite de votre entreprise.
Les performances du pipeline d'ingestion de données doivent être évaluées et une référence doit être établie pour les métriques suivantes :
- Combien de temps faut-il pour publier et ingérer l'intégralité du catalogue et des données d'inventaire ? Cela peut être nécessaire de manière ponctuelle pendant le Black Friday/Cyber Monday, lorsque les prix de l'ensemble du catalogue peuvent changer de manière significative.
- Combien de temps faut-il pour qu'une mise à jour d'un produit unique soit prise en compte ?
- Quel est le taux le plus élevé de mises à jour des produits et de l'inventaire que le système peut traiter ?
Goulots d'étranglement
- Évaluez et déterminez si les pipelines peuvent être mis à l'échelle de manière appropriée.
- Déterminez si le plafond maximal du nombre d'instances est trop élevé ou trop bas.
- Pour déterminer si le système est limité en débit par Vertex AI Search pour le commerce, recherchez le code HTTP 429.
- Vérifiez si certains quotas d'API doivent être augmentés pour réduire les limites de débit.
Structure des données produit pour l'ingestion de catalogue
Cette section explique comment préparer vos données produit pour l'ingestion de catalogue.
Produits principaux
Les produits principaux servent de conteneurs pour regrouper les produits variantes et d'entrées dans la grille de recherche. Ne spécifiez que les attributs communs à toutes les variantes pour les produits principaux. Exemples :
- ID du produit principal
- ID du produit (identique à l'ID du produit principal)
- Titre
- Description
Pour en savoir plus, consultez À propos des attributs de produit.
Variantes de produits
Les produits variantes héritent des attributs communs du produit principal, mais peuvent également spécifier des valeurs uniques.
Les attributs obligatoires incluent :
- Tous les attributs spécifiés pour les produits principaux (titre, description). Le prix, le titre et la description peuvent être différents de ceux du produit principal.
- Attributs de variantes spécifiques (couleur, taille et autres variantes de produits pertinentes).
Pour en savoir plus, consultez À propos des attributs de produit.
Récupération des attributs
Le processus de récupération prend en compte tous les attributs pouvant faire l'objet d'une recherche pour les produits principaux et les variantes.
Score de pertinence
Le score de pertinence est basé uniquement sur les champs de titre et de description. Pour bien les différencier, modifiez légèrement les titres des variantes par rapport à ceux des produits principaux (par exemple, Nom du produit + Couleur).
Correspondance des variantes dans les résultats de recherche
La correspondance des variantes (par exemple, robe bleue) filtre les résultats en fonction d'attributs de variantes prédéfinis tels que la couleur et la taille. Les résultats de recherche renvoient jusqu'à cinq variantes correspondantes pour chaque produit principal.
Synchroniser Merchant Center avec Vertex AI Search pour le commerce
Merchant Center est un outil que vous pouvez utiliser pour rendre vos données de magasins et de produits disponibles pour les annonces Shopping et d'autres services Google.
Pour assurer la synchronisation continue entre Merchant Center et Vertex AI Search pour le commerce, vous pouvez associer votre compte Merchant Center à Vertex AI Search pour le commerce.
Lorsque vous configurez une synchronisation Merchant Center pour Vertex AI Search pour le commerce, vous devez disposer du rôle IAM Administrateur dans Merchant Center. Bien qu'un rôle d'accès standard vous permette de lire les flux Merchant Center, vous recevez un message d'erreur lorsque vous essayez de synchroniser Merchant Center avec Vertex AI Search pour le commerce. Pour pouvoir synchroniser votre compte Merchant Center avec Vertex AI Search pour le commerce, vous devez donc d'abord mettre à niveau votre rôle.
Associer votre compte Merchant Center
Lorsque Vertex AI Search pour le commerce est associé au compte Merchant Center, les modifications apportées à vos données produit dans le compte Merchant Center sont automatiquement propagées en quelques minutes. Si vous souhaitez empêcher la synchronisation des modifications Merchant Center avec Vertex AI Search pour le commerce, vous pouvez dissocier votre compte Merchant Center.
Dissocier votre compte Merchant Center ne supprime pas les produits dans Vertex AI Search pour le commerce. Pour supprimer les produits importés, consultez Supprimer des informations produit.
Pour synchroniser votre compte Merchant Center, procédez comme suit :
Synchroniser votre compte Merchant Center
Cloud Console
-
Accédez à la page Données dans la console Search for Commerce.
Accéder à la page "Données" - Cliquez sur Importer pour ouvrir le panneau Importer des données.
- Sélectionnez Catalogue de produits.
- Sélectionnez Merchant Center Sync comme source de données.
- Sélectionnez votre compte Merchant Center. Si vous ne voyez pas votre compte, consultez Accès utilisateur.
- Facultatif : Sélectionnez Filtre des flux Merchant Center pour n'importer que les offres des flux sélectionnés.
Si vous ne spécifiez rien, les offres de tous les flux (y compris les futurs flux) sont importées. - Facultatif : Pour n'importer que les offres ciblées sur certains pays ou certaines langues, développez Afficher les options avancées, puis sélectionnez les pays de vente et les langues Merchant Center à filtrer.
- Sélectionnez la branche dans laquelle vous allez importer votre catalogue.
- Cliquez sur Import (Importer).
curl
Vérifiez que le compte de service de votre environnement local a accès au compte Merchant Center et à Vertex AI Search pour le commerce. Pour vérifier quels comptes ont accès à votre compte Merchant Center, consultez la section Accès des utilisateurs à Merchant Center.
Utilisez la méthode
MerchantCenterAccountLink.create
pour établir l'association.curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "merchantCenterAccountId": MERCHANT_CENTER_ID, "branchId": "BRANCH_ID", "feedFilters": [ {"dataSourceId": DATA_SOURCE_ID_1} {"dataSourceId": DATA_SOURCE_ID_2} ], "languageCode": "LANGUAGE_CODE", "feedLabel": "FEED_LABEL", }' \ "https://retail.googleapis.com/v2alpha/projects/PROJECT_ID/locations/global/catalogs/default_catalog/merchantCenterAccountLinks"
- MERCHANT_CENTER_ID : ID du compte Merchant Center.
- BRANCH_ID : ID de la branche avec laquelle établir l'association. Accepte les valeurs "0", "1" ou "2".
- LANGUAGE_CODE : (FACULTATIF) code de langue à deux lettres des produits que vous souhaitez importer. Comme indiqué dans Merchant Center, dans la colonne
Language
du produit. Si aucune langue n'est définie, toutes les langues sont importées. - FEED_LABEL : (FACULTATIF) Libellé du flux des produits que vous souhaitez importer. Vous pouvez voir le libellé du flux dans Merchant Center, dans la colonne Libellé du flux du produit. Si aucune valeur n'est définie, tous les libellés de flux sont importés.
- FEED_FILTERS : (FACULTATIF) Liste des flux principaux à partir desquels les produits seront importés. Si vous ne sélectionnez aucun flux, tous les flux du compte Merchant Center seront partagés. Vous trouverez ces ID dans la ressource datafeeds de l'API Content. Vous pouvez également accéder à Merchant Center, sélectionner un flux et obtenir l'ID de flux à partir du paramètre afmDataSourceId dans l'URL du site. Par exemple,
mc/products/sources/detail?a=MERCHANT_CENTER_ID&afmDataSourceId=DATA_SOURCE_ID
.
Pour afficher votre compte Merchant Center associé, accédez à la page Données de la console Search for Commerce, puis cliquez sur le bouton Merchant Center en haut à droite de la page. Le panneau Comptes Merchant Center associés s'affiche. Vous pouvez également ajouter des comptes Merchant Center supplémentaires à partir de ce panneau.
Consultez Afficher des informations agrégées sur votre catalogue pour savoir comment afficher les produits importés.
Lister les associations à votre compte Merchant Center
Cloud Console
Accédez à la page Données dans la console Search for Commerce.
Accéder à la page "Données"Cliquez sur le bouton Merchant Center en haut à droite de la page pour ouvrir la liste de vos comptes Merchant Center associés.
curl
Utilisez la méthode MerchantCenterAccountLink.list
pour lister la ressource "links".
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://retail.googleapis.com/v2alpha/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/merchantCenterAccountLinks"
Dissocier votre compte Merchant Center
La dissociation de votre compte Merchant Center empêche la synchronisation des données de catalogue de ce compte par Vertex AI Search pour le commerce. Cette procédure ne supprime pas les produits qui ont déjà été importés par Vertex AI Search pour le commerce.
Cloud Console
Accédez à la page Données dans la console Search for Commerce.
Accéder à la page "Données"Cliquez sur le bouton Merchant Center en haut à droite de la page pour ouvrir la liste de vos comptes Merchant Center associés.
Cliquez sur Dissocier à côté du compte Merchant Center que vous dissociez, puis confirmez votre choix dans la boîte de dialogue qui s'affiche.
curl
Utilisez la méthode MerchantCenterAccountLink.delete
pour supprimer la ressource MerchantCenterAccountLink
.
curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://retail.googleapis.com/v2alpha/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/merchantCenterAccountLinks/BRANCH_ID_MERCHANT_CENTER_ID"
Limites de l'association à Merchant Center
Un compte Merchant Center peut être associé à un nombre illimité de branches de catalogue, mais une branche de catalogue donnée ne peut être associée qu'à un seul compte Merchant Center.
Un compte Merchant Center ne peut pas être un multicompte (MC). Toutefois, vous pouvez associer des sous-comptes individuels.
La première importation après l'association de votre compte Merchant Center peut prendre plusieurs heures. La durée dépend du nombre d'offres dans le compte Merchant Center.
Les modifications produit effectuées par les méthodes de l'API sont désactivées pour les branches associées à un compte Merchant Center. Toute modification des données de catalogue de produits dans ces branches doit être effectuée via Merchant Center. Ces modifications sont ensuite automatiquement synchronisées avec Vertex AI Search pour le commerce.
Le type de produit de collection n'est pas compatible avec les branches utilisant l'association à Merchant Center.
Votre compte Merchant Center ne peut être associé qu'à des branches de catalogue vides pour garantir l'exactitude des données. Pour supprimer des produits d'une branche de catalogue, consultez Supprimer des informations produit.
Importer des données de catalogue à partir de BigQuery
Pour importer des données de catalogue au format approprié à partir de BigQuery, utilisez le schéma Vertex AI Search pour le commerce pour créer une table BigQuery au format approprié et remplissez la table vide avec vos données de catalogue. Ensuite, importez vos données dans Vertex AI Search pour le commerce.
Pour plus d'informations sur les tables BigQuery, consultez la page Présentation des tables. Pour obtenir de l'aide sur les requêtes BigQuery, consultez la page Présentation des requêtes de données dans BigQuery.
Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :
Pour importer votre catalogue, procédez comme suit :
Si votre ensemble de données BigQuery se trouve dans un autre projet, configurez les autorisations requises pour que Vertex AI Search for Commerce puisse y accéder. En savoir plus
Importez vos données de catalogue dans Vertex AI Search pour le commerce.
Cloud Console
-
Accédez à la page Données dans la console Search for Commerce.
Accéder à la page "Données" - Cliquez sur Importer pour ouvrir le panneau Importer des données.
- Sélectionnez Catalogue de produits.
- Sélectionnez BigQuery comme source de données.
- Sélectionnez la branche dans laquelle vous allez importer votre catalogue.
- Sélectionnez Schéma Retail pour les catalogues de produits. Il s'agit du schéma de produit pour Vertex AI Search pour le commerce.
- Renseignez la table BigQuery dans laquelle se trouvent vos données.
- Facultatif : Sous Afficher les options avancées, saisissez l'emplacement d'un bucket Cloud Storage de votre projet en tant qu'emplacement temporaire pour vos données.
Si aucun emplacement n'est spécifié, un emplacement par défaut est utilisé. Si vous spécifiez un emplacement, BigQuery et le bucket Cloud Storage doivent se trouver dans la même région. - Si la recherche n'est pas activée et que vous utilisez le schéma Merchant Center, sélectionnez le niveau de produit.
Vous devez sélectionner le niveau de produit si vous importez votre catalogue pour la première fois ou si vous le réimportez après sa suppression. En savoir plus sur les niveaux de produit. La modification des niveaux de produit après l'importation de données nécessite un effort considérable.
Important : Vous ne pouvez pas activer la recherche pour les projets dont le catalogue de produits a été ingéré en tant que variantes. - Cliquez sur Importer.
curl
Si vous importez votre catalogue pour la première fois ou si vous le réimportez après sa suppression, définissez vos niveaux de produits à l'aide de la méthode
Catalog.patch
. Cette opération nécessite le rôle "Administrateur Retail".ingestionProductType
: accepte les valeursprimary
(par défaut) etvariant
.merchantCenterProductIdField
: accepte les valeursofferId
etitemGroupId
. Si vous n'utilisez pas Merchant Center, vous n'avez pas besoin de définir ce champ.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "productLevelConfig": { "ingestionProductType": "PRODUCT_TYPE", "merchantCenterProductIdField": "PRODUCT_ID_FIELD" } }' \ "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog"
Créez un fichier de données pour les paramètres d'entrée de l'importation.
Utilisez l'objet BigQuerySource pour pointer vers votre ensemble de données BigQuery.
- DATASET_ID : ID de l'ensemble de données BigQuery.
- TABLE_ID : ID de la table BigQuery contenant vos données.
- PROJECT_ID : ID du projet dans lequel se trouve la source BigQuery S'il n'est pas spécifié, l'ID du projet est hérité de la requête parente.
- STAGING_DIRECTORY : facultatif. Un répertoire Cloud Storage utilisé comme emplacement provisoire pour vos données avant leur importation dans BigQuery. Laissez ce champ vide pour créer automatiquement un répertoire temporaire (recommandé).
- ERROR_DIRECTORY : facultatif. Un répertoire Cloud Storage contenant des informations sur les erreurs d'importation. Laissez ce champ vide pour créer automatiquement un répertoire temporaire (recommandé).
dataSchema
: pour la propriétédataSchema
, utilisez la valeurproduct
(par défaut). Vous utiliserez le schéma Vertex AI Search pour le commerce.
Nous vous recommandons de ne pas spécifier les répertoires de préproduction ou d'erreur afin qu'un bucket Cloud Storage avec de nouveaux répertoires de préproduction et d'erreur puisse être créé automatiquement. Ces répertoires sont créés dans la même région que l'ensemble de données BigQuery et sont uniques pour chaque importation (ce qui empêche plusieurs tâches d'importation de préparer des données dans le même répertoire et de potentiellement réimporter les mêmes données). Après trois jours, le bucket et les répertoires sont automatiquement supprimés afin de réduire les coûts de stockage.
Un nom de bucket créé automatiquement inclut l'ID du projet, la région du bucket et le nom du schéma de données, séparés par des traits de soulignement (par exemple,
4321_us_catalog_retail
). Les répertoires créés automatiquement sont appelésstaging
ouerrors
, et un numéro (par exemple,staging2345
ouerrors5678
) leur est ajouté.Si vous spécifiez des répertoires, le bucket Cloud Storage doit se trouver dans la même région que l'ensemble de données BigQuery. Dans le cas contraire, l'importation échoue. Fournissez les répertoires de préproduction et d'erreur au format
gs://<bucket>/<folder>/
(ils doivent être différents).{ "inputConfig":{ "bigQuerySource": { "projectId":"PROJECT_ID", "datasetId":"DATASET_ID", "tableId":"TABLE_ID", "dataSchema":"product"} } }
Importez vos informations de catalogue en envoyant une requête
POST
à la méthode RESTProducts:import
, en fournissant le nom du fichier de données (ici, comme suit :input.json
).curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" -d @./input.json \ "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"
Vous pouvez vérifier l'état de manière automatisée avec l'API. Vous devriez recevoir un objet de réponse ressemblant à ceci :
{ "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456", "done": false }
Le champ de nom est l'ID de l'objet d'opération. Pour demander l'état de cet objet, remplacez le champ de nom par la valeur renvoyée par la méthode
import
, jusqu'à ce que le champdone
renvoietrue
:curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456"
Une fois l'opération terminée, l'objet renvoyé a une valeur
done
detrue
et inclut un objet Status semblable à l'exemple suivant :{ "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456", "metadata": { "@type": "type.googleapis.com/google.cloud.retail.v2.ImportMetadata", "createTime": "2020-01-01T03:33:33.000001Z", "updateTime": "2020-01-01T03:34:33.000001Z", "successCount": "2", "failureCount": "1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.retail.v2.ImportProductsResponse", }, "errorsConfig": { "gcsPrefix": "gs://error-bucket/error-directory" } }
Vous pouvez inspecter les fichiers du répertoire d'erreurs dans Cloud Storage pour voir si des erreurs se sont produites lors de l'importation.
-
Accédez à la page Données dans la console Search for Commerce.
Configurer l'accès à votre ensemble de données BigQuery
Pour configurer l'accès lorsque l'ensemble de données BigQuery se trouve dans un projet différent de celui de votre service Vertex AI Search pour le commerce, procédez comme suit.
Ouvrez la page IAM dans la console Google Cloud .
Sélectionnez votre projet Vertex AI Search pour le commerce.
Recherchez le compte de service intitulé Compte de service Retail.
Si vous n'avez pas encore lancé d'opération d'importation, ce compte de service peut ne pas être répertorié. Si vous ne voyez pas le compte de service, revenez à la tâche d'importation et lancez l'importation. Si la tâche échoue en raison d'erreurs d'autorisation, revenez sur la page et cherchez à nouveau le compte de service.
Copiez l'identifiant du compte de service qui ressemble à une adresse e-mail (par exemple,
service-525@gcp-sa-retail.iam.gserviceaccount.com
).Basculez vers votre projet BigQuery (sur la même page IAM et administration), puis cliquez sur person_add Accorder l'accès.
Pour Nouveaux principaux, saisissez l'identifiant du compte de service Vertex AI Search pour le commerce, puis sélectionnez le rôle BigQuery > Utilisateur BigQuery.
Cliquez sur Ajouter un autre rôle, puis sélectionnez BigQuery > Éditeur de données BigQuery.
Si vous ne souhaitez pas attribuer le rôle d'éditeur de données sur l'ensemble du projet, vous pouvez l'ajouter directement au niveau de l'ensemble de données. En savoir plus
Cliquez sur Enregistrer.
Schéma de produit
Lorsque vous importez un catalogue à partir de BigQuery, utilisez le schéma de produit Vertex AI Search for Commerce suivant pour créer une table BigQuery au format adapté et y insérer vos données de catalogue. Ensuite, importez le catalogue.
Importer des données de catalogue depuis Cloud Storage
Pour importer des données de catalogue au format JSON, créez un ou plusieurs fichiers JSON contenant les données de catalogue que vous souhaitez importer, puis importez ces données dans Cloud Storage. Vous pouvez ensuite l'importer dans Vertex AI Search pour le commerce.
Pour obtenir un exemple de format d'élément de produit JSON, consultez la section Format de données JSON d'élément de produit.
Pour obtenir de l'aide concernant l'importation de fichiers dans Cloud Storage, consultez Importer des objets.
Assurez-vous que le compte de service Vertex AI Search pour le commerce est autorisé à lire et écrire dans le bucket.
Le compte de service Vertex AI Search for Commerce est répertorié sur la page IAM de la console Google Cloud sous le nom Compte de service Retail. Utilisez l'identifiant du compte de service, qui ressemble à une adresse e-mail (par exemple,
service-525@gcp-sa-retail.iam.gserviceaccount.com
), pour ajouter le compte à vos autorisations de bucket.Importez les données de votre catalogue.
Cloud Console
-
Accédez à la page Données dans la console Search for Commerce.
Accéder à la page "Données" - Cliquez sur Importer pour ouvrir le panneau Importer des données.
- Sélectionnez Catalogue de produits comme source de données.
- Sélectionnez la branche dans laquelle vous allez importer votre catalogue.
- Sélectionnez Schéma des catalogues de produits Retail comme schéma.
- Saisissez l'emplacement Cloud Storage de vos données.
- Si la recherche n'est pas activée, sélectionnez les niveaux de produit.
Vous devez sélectionner les niveaux de produit si vous importez votre catalogue pour la première fois ou si vous le réimportez après sa suppression. En savoir plus sur les niveaux de produit. La modification des niveaux de produit après l'importation de données nécessite un effort considérable.
Important : Vous ne pouvez pas activer la recherche pour les projets dont le catalogue de produits a été ingéré en tant que variantes. - Cliquez sur Importer.
curl
Si vous importez votre catalogue pour la première fois ou si vous le réimportez après sa suppression, définissez vos niveaux de produits à l'aide de la méthode
Catalog.patch
. En savoir plus sur les niveaux de produit.ingestionProductType
: accepte les valeursprimary
(par défaut) etvariant
.merchantCenterProductIdField
: accepte les valeursofferId
etitemGroupId
. Si vous n'utilisez pas Merchant Center, vous n'avez pas besoin de définir ce champ.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "productLevelConfig": { "ingestionProductType": "PRODUCT_TYPE", "merchantCenterProductIdField": "PRODUCT_ID_FIELD" } }' \ "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog"
Créez un fichier de données pour les paramètres d'entrée de l'importation. Utilisez l'objet
GcsSource
pour pointer vers votre bucket Cloud Storage.Vous pouvez fournir plusieurs fichiers ou un seul ; cet exemple utilise deux fichiers.
- INPUT_FILE : un ou plusieurs fichiers Cloud Storage contenant vos données de catalogue.
- ERROR_DIRECTORY : répertoire Cloud Storage contenant des informations sur les erreurs d'importation.
Les champs du fichier d'entrée doivent être au format
gs://<bucket>/<path-to-file>/
. Le répertoire d'erreur doit être au formatgs://<bucket>/<folder>/
. Si le répertoire d'erreurs n'existe pas, il est créé. Le bucket doit déjà exister.{ "inputConfig":{ "gcsSource": { "inputUris": ["INPUT_FILE_1", "INPUT_FILE_2"] } }, "errorsConfig":{"gcsPrefix":"ERROR_DIRECTORY"} }
Importez vos informations de catalogue en envoyant une requête
POST
à la méthode RESTProducts:import
, en fournissant le nom du fichier de données (ici, comme suit :input.json
).curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" -d @./input.json \ "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"
Le moyen le plus simple de vérifier l'état de votre opération d'importation consiste à utiliser la console Google Cloud . Pour en savoir plus, consultez Afficher l'état d'une opération d'intégration spécifique.
Vous pouvez aussi vérifier l'état de manière automatisée avec l'API. Vous devriez recevoir un objet de réponse ressemblant à ceci :
{ "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456", "done": false }
Le champ de nom est l'ID de l'objet d'opération. Il vous suffit d'interroger l'état de cet objet en remplaçant le champ de nom par la valeur renvoyée par la méthode d'importation jusqu'à ce que le champ
done
renvoietrue
:curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/[OPERATION_NAME]"
Une fois l'opération terminée, l'objet renvoyé a une valeur
done
detrue
et inclut un objet Status semblable à l'exemple suivant :{ "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/import-products-123456", "metadata": { "@type": "type.googleapis.com/google.cloud.retail.v2.ImportMetadata", "createTime": "2020-01-01T03:33:33.000001Z", "updateTime": "2020-01-01T03:34:33.000001Z", "successCount": "2", "failureCount": "1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.retail.v2.ImportProductsResponse" }, "errorsConfig": { "gcsPrefix": "gs://error-bucket/error-directory" } }
Vous pouvez inspecter les fichiers du répertoire d'erreurs dans Cloud Storage pour voir le type d'erreurs survenues lors de l'importation.
-
Accédez à la page Données dans la console Search for Commerce.
Importer des données de catalogue de manière intégrée
curl
Pour importer des informations de votre catalogue de manière intégrée, envoyez une requête POST
à la méthode REST Products:import
à l'aide de l'objet productInlineSource
pour spécifier les données de votre catalogue.
Fournissez chaque produit sur une seule ligne. Chaque produit doit figurer sur une ligne distincte.
Pour obtenir un exemple de format d'élément de produit JSON, consultez la section Format de données JSON d'élément de produit.
Créez le fichier JSON de votre produit et appelez-le
./data.json
:{ "inputConfig": { "productInlineSource": { "products": [ { PRODUCT_1 } { PRODUCT_2 } ] } } }
Appelez la méthode POST :
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data @./data.json \ "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products:import"
Java
Format des données JSON de produit
Les entrées Product
de votre fichier JSON doivent ressembler aux exemples suivants.
Fournissez chaque produit sur une seule ligne. Chaque produit doit figurer sur une ligne distincte.
Champs obligatoires minimum :
{ "id": "1234", "categories": "Apparel & Accessories > Shoes", "title": "ABC sneakers" } { "id": "5839", "categories": "casual attire > t-shirts", "title": "Crew t-shirt" }
Afficher l'objet complet
{ "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/1234", "id": "1234", "categories": "Apparel & Accessories > Shoes", "title": "ABC sneakers", "description": "Sneakers for the rest of us", "attributes": { "vendor": {"text": ["vendor123", "vendor456"]} }, "language_code": "en", "tags": [ "black-friday" ], "priceInfo": { "currencyCode": "USD", "price":100, "originalPrice":200, "cost": 50 }, "availableTime": "2020-01-01T03:33:33.000001Z", "availableQuantity": "1", "uri":"http://example.com", "images": [ {"uri": "http://example.com/img1", "height": 320, "width": 320 } ] } { "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/4567", "id": "4567", "categories": "casual attire > t-shirts", "title": "Crew t-shirt", "description": "A casual shirt for a casual day", "attributes": { "vendor": {"text": ["vendor789", "vendor321"]} }, "language_code": "en", "tags": [ "black-friday" ], "priceInfo": { "currencyCode": "USD", "price":50, "originalPrice":60, "cost": 40 }, "availableTime": "2020-02-01T04:44:44.000001Z", "availableQuantity": "2", "uri":"http://example.com", "images": [ {"uri": "http://example.com/img2", "height": 320, "width": 320 } ] }
Historique de données de catalogue
Vertex AI Search pour le commerce permet d'importer et de gérer l'historique des données de catalogue. L'historique des données de catalogue peut être utile lorsque vous utilisez l'historique des événements utilisateur pour l'entraînement de modèle. Les informations sur les anciens produits peuvent être utilisées pour enrichir l'historique des données d'événements utilisateur et améliorer la précision du modèle.
Les anciens produits sont stockés sous la forme de produits arrivés à expiration. Ils ne sont pas renvoyés dans les réponses de recherche, mais sont visibles par les appels d'API Update
, List
et Delete
.
Importer l'historique de données de catalogue
Lorsque le champ expireTime
d'un produit est défini sur un horodatage antérieur, ce produit est considéré comme un ancien produit. Définissez le champ de disponibilité du produit sur OUT_OF_STOCK (ÉPUISÉ) pour ne pas affecter les recommandations.
Nous vous recommandons d'utiliser les méthodes suivantes pour importer les données de l'historique du catalogue :
- Appelez la méthode
Product.Create
. - Importation intégrée de produits arrivés à expiration
- Importer des produits arrivés à expiration à partir de BigQuery
Appelez la méthode Product.Create
.
Utilisez la méthode Product.Create
pour créer une entrée Product
avec le champ expireTime
défini sur un horodatage antérieur.
Importation intégrée de produits arrivés à expiration
Les étapes sont identiques à celles de l'importation intégrée, à la différence que les champs expireTime
des produits doivent être définis sur un horodatage dans le passé.
Fournissez chaque produit sur une seule ligne. Chaque produit doit figurer sur une ligne distincte.
Voici un exemple de ./data.json
utilisé dans la requête d'importation intégrée :
Consultez cet exemple utilisé dans la requête d'importation intégrée.
{ "inputConfig": { "productInlineSource": { "products": [ { "id": "historical_product_001", "categories": "Apparel & Accessories > Shoes", "title": "ABC sneakers", "expire_time": { "second": "2021-10-02T15:01:23Z" // a past timestamp } }, { "id": "historical product 002", "categories": "casual attire > t-shirts", "title": "Crew t-shirt", "expire_time": { "second": "2021-10-02T15:01:24Z" // a past timestamp } } ] } } }
Importer des produits arrivés à expiration à partir de BigQuery ou de Cloud Storage
Suivez les mêmes procédures que celles décrites pour importer des données de catalogue à partir de BigQuery ou importer des données de catalogue à partir de Cloud Storage. Veillez toutefois à définir le champ expireTime
sur un horodatage dans le passé.
Maintenez votre catalogue à jour
Pour obtenir des résultats optimaux, votre catalogue doit contenir des informations à jour. Nous vous recommandons d'importer votre catalogue quotidiennement pour vous assurer qu'il reste bien à jour. Vous pouvez utiliser Google Cloud Scheduler pour planifier les importations ou choisir une option de planification automatique lorsque vous importez des données à l'aide de la consoleGoogle Cloud .
Vous pouvez ne mettre à jour que les produits nouveaux ou modifiés, ou importer l'intégralité du catalogue. Si vous importez des produits qui figurent déjà dans votre catalogue, ils ne sont pas ajoutés à nouveau. Tous les produits modifiés sont mis à jour.
Pour mettre à jour un seul produit, consultez Mettre à jour les informations sur les produits.
Mise à jour groupée
Vous pouvez utiliser la méthode d'importation pour mettre à jour votre catalogue de manière groupée. Vous procédez de la même manière que pour l'importation initiale ; suivez la procédure décrite dans la section Importer des données de catalogue.
Surveiller l'état des importations
Pour surveiller l'ingestion et l'état du catalogue :
Affichez des informations agrégées sur votre catalogue et prévisualisez les produits importés dans l'onglet Catalogue de la page Données de Search for Commerce.
Évaluez si vous devez mettre à jour les données de votre catalogue pour améliorer la qualité des résultats de recherche et débloquer les niveaux de performances de recherche sur la page Qualité des données.
Pour savoir comment vérifier la qualité des données de recherche et afficher les niveaux de performances de recherche, consultez Débloquer les niveaux de performances de recherche. Pour obtenir un récapitulatif des métriques de catalogue disponibles sur cette page, consultez Métriques de qualité du catalogue.
Pour créer des alertes qui vous avertissent en cas de problème lié à vos importations de données, suivez les procédures décrites dans Configurer des alertes Cloud Monitoring.
Pour obtenir des résultats de haute qualité, il est important de maintenir votre catalogue à jour. Utilisez des alertes pour surveiller les taux d'erreur d'importation et prendre des mesures, le cas échéant.
Étapes suivantes
- Commencez à enregistrer des événements utilisateur.
- Affichez des informations agrégées sur votre catalogue.
- Configurez des alertes d'importation de données.