Ingestion par lots

Vos flux de données vous permettent de proposer votre restaurant, vos services et votre menu dans Order with Google.

Ce document explique comment héberger vos inventaires de bac à sable et de production, et comment utiliser l'ingestion par lots pour mettre à jour votre inventaire dans Order with Google.

Environnements de flux de données

Trois environnements de flux de données sont disponibles pour le développement de votre intégration:

Environnement du flux Description Ingestion par lots
Bac à sable Environnement de test pour le développement de votre flux. Obligatoire
Production Environnement de production de l'inventaire que vous souhaitez lancer Obligatoire

Flux de données d'hébergement

Pour que Order with Google traite vos flux de données de bac à sable et de production par ingestion par lots, vous devez héberger ces fichiers dans Google Cloud Storage, Amazon S3 ou HTTPS avec un sitemap.

Nous vous recommandons d'héberger séparément les flux de données pour vos environnements de bac à sable et de production. Cette approche vous permet de développer et de tester votre environnement de flux de bac à sable avant de déployer les modifications en production.

Par exemple, si vous utilisez Google Cloud Storage comme option d'hébergement, vous disposez des chemins suivants:

  • Flux bac à sable : gs://foorestaurant-google-feed-sandbox/
  • Flux de production : gs://foorestaurant-google-feed-prod/

Pour héberger votre inventaire, procédez comme suit:

  1. Générez les fichiers de votre flux de données.
  2. Choisissez une solution d'hébergement.
  3. Hébergez vos flux de données.
  4. Assurez-vous que vos fichiers de flux de données sont mis à jour régulièrement. Les flux de données de production doivent être mis à jour quotidiennement.

Pour savoir comment créer un flux d'inventaire, consultez la documentation sur les entités Restaurant, Service et Menu, ainsi que dans la section Créer un flux de données.

Consignes concernant les fichiers de flux de données

La taille de chaque fichier, qui peut contenir plusieurs entités, ne doit pas dépasser 200 Mo. Les entités de premier niveau Restaurant, Service, Menu et leurs entités enfants ne doivent pas dépasser 4 Mo au total.

Choisir une solution d'hébergement

Le tableau suivant répertorie les options d'hébergement de vos flux de données et le fonctionnement de ces hôtes avec Order with Google:

Amazon S3 Google Cloud Storage HTTPS avec un sitemap
Identifiants et accès

Fournissez à Google les informations suivantes:

  • ID de clé d'accès
  • Clé d'accès secrète
  • Chemins d'accès aux répertoires S3 et de production de bac à sable et au fichier marker.txt. Le chemin doit commencer par s3://.

Le bucket S3 doit inclure les informations suivantes:

  • Fichiers de flux pour votre inventaire.
  • marker.txt, qui contient un horodatage utilisé pour la récupération.

Exemple de fichier marker.txt: 2018-12-03T08:30:42.694Z

Fournissez à Google les chemins d'accès à vos répertoires de production et de bucket de bac à sable, ainsi qu'au fichier marker.txt. Les chemins doivent commencer par gs://.

Ajoutez le compte de service fourni par votre consultant Google en tant que lecteur de votre bucket Google Cloud Storage.

Pour savoir comment contrôler l'accès à Google Cloud Storage (GCS), consultez la page Console Google Cloud Platform: Définir des autorisations de bucket.

Le bucket GCS doit inclure les informations suivantes:

  • Fichiers de flux pour votre inventaire.
  • marker.txt, qui contient un horodatage utilisé pour la récupération.

Exemple de fichier marker.txt: 2018-12-03T08:30:42.694Z

Fournissez à Google les informations suivantes:

  • Identifiants pour votre authentification de base.
  • Le chemin d'accès à vos sitemaps de production et à votre bac à sable. Le chemin doit commencer par https://.
  • Protocole: vous devez rendre vos fichiers de flux disponibles via HTTPS, et non via HTTP.
  • Sécurité: Google vous recommande vivement de protéger vos fichiers de flux hébergés avec l'authentification de base.
Comment Google sait quels fichiers doivent être récupérés Liste de tous les fichiers du bucket. Liste de tous les fichiers du bucket. URL individuelles des fichiers répertoriés dans le sitemap.
Savoir si des fichiers sont prêts à être récupérés Une fois vos flux de données générés, mettez à jour le fichier marker.txt avec le dernier horodatage. Une fois vos flux de données générés, mettez à jour le fichier marker.txt avec le dernier horodatage. Une fois vos flux de données générés, mettez à jour l'en-tête de réponse last-modified de votre sitemap.xml avec le dernier horodatage.
Limites applicables aux fichiers

Nombre maximal de fichiers: 100 000.

Votre bucket Amazon S3 doit contenir moins de 100 000 fichiers au total.

Nombre maximal de fichiers: 100 000.

Votre bucket Google Cloud Storage doit contenir moins de 100 000 fichiers au total.

Nombre maximal de fichiers: 100 000.

Le chemin d'accès au fichier XML de votre sitemap doit être inférieur à 100 000.

Connecter vos flux de données pour l'ingestion par lots

Une fois vos flux hébergés, vous devez les associer à votre projet sur le portail des partenaires. La configuration initiale des flux de production est effectuée sur la page Tâches d'intégration. Par la suite, la configuration des flux de production et de bac à sable peut être mise à jour à tout moment sur la page Configuration des flux > par n'importe quel utilisateur du portail disposant d'un rôle administrateur. L'environnement de bac à sable est utilisé à des fins de développement et de test, tandis que les flux de production sont présentés aux utilisateurs.

Si vous hébergez vos flux de données avec Amazon S3

  1. Sur le portail des partenaires, accédez à Configuration > Flux.
  2. Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:

    • Mode d'envoi du flux:définissez-le sur Amazon S3.
    • Fichier de repère : indiquez l'URL du fichier marker.txt.
    • Fichiers de données:indiquez l'URL du bucket S3 contenant les flux de données.
    • ID d'accès:saisissez l'ID de clé d'accès IAM disposant des autorisations nécessaires pour lire les ressources S3.
    • Access Key (Clé d'accès) : saisissez la clé d'accès secrète IAM avec les autorisations nécessaires pour lire les ressources S3.
  3. Cliquez sur Submit (Envoyer).
  4. Après une à deux heures, vérifiez si l'ingestion par lots extrait vos fichiers de flux.

Si vous hébergez vos flux de données avec Google Cloud Storage

  1. Sur le portail des partenaires, accédez à Configuration > Flux.
  2. Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:

    • Mode d'envoi du flux:définissez la valeur sur Google Cloud Storage.
    • Fichier de repère:indiquez l'URL du fichier marker.txt.
    • Fichiers de données:indiquez l'URL du bucket GCS contenant les flux de données.
  3. Cliquez sur Submit (Envoyer).
  4. Un compte de service est créé pour accéder à votre bucket GCS. Une fois la tâche d'intégration terminée, vous trouverez le nom du compte dans Configuration > Flux. Ce compte de service doit disposer du rôle "Lecteur des anciens objets de l'espace de stockage". Ce rôle peut être attribué au compte de service sur la page IAM de Google Cloud Console.
  5. Après une à deux heures, vérifiez si l'ingestion par lots extrait vos fichiers de flux.

Si vous hébergez vos flux de données avec HTTPS

  1. Sur le portail des partenaires, accédez à Configuration > Flux.
  2. Cliquez sur Modifier et remplissez le formulaire Mettre à jour le flux:

    • Mode d'envoi du flux : définissez-le sur HTTPS.
    • Fichier sitemap : indiquez l'URL du fichier sitemap.xml.
    • Username (Nom d'utilisateur) : saisissez les identifiants pour accéder au serveur HTTPS.
    • Password (Mot de passe) : saisissez le mot de passe pour accéder au serveur HTTPS.
  3. Cliquez sur Submit (Envoyer).
  4. Après une à deux heures, vérifiez si l'ingestion par lots extrait vos fichiers de flux.

Exemples de chemins

Le tableau suivant contient des exemples de chemins pour chacune des options d'hébergement:

Amazon S3 Google Cloud Storage HTTPS avec un sitemap
Chemin d'accès s3://foorestaurant-google-feed-sandbox/ gs://foorestaurant-google-feed-sandbox/ https://sandbox-foorestaurant.com/sitemap.xml
Fichier de repère s3://foorestaurant-google-feed-sandbox/marker.txt gs://foorestaurant-google-feed-sandbox/marker.txt Non applicable

Sitemaps pour hébergement HTTPS

Respectez les consignes suivantes lorsque vous définissez des sitemaps:

  • Les liens de votre sitemap doivent pointer vers les fichiers eux-mêmes.
  • Si votre sitemap contient des références à un fournisseur cloud au lieu de votre propre nom de domaine, assurez-vous que le début des URL (comme https://www.yourcloudprovider.com/your_id) est stable et propre à votre tâche par lot.
  • Veillez à ne pas importer de sitemaps partiels (comme lors d'une importation partielle de données). Ainsi, Google n'ingère que les fichiers du sitemap, ce qui entraîne une baisse des niveaux d'inventaire et peut bloquer le transfert de votre flux.
  • Assurez-vous que les chemins d'accès aux fichiers référencés dans le sitemap ne changent pas. Par exemple, votre fichier sitemap ne doit pas être https://www.yourcloudprovider.com/your_id/10000.json aujourd'hui, mais demain https://www.yourcloudprovider.com/your_id/20000.json.
Exemple de sitemap

Voici un exemple de fichier sitemap.xml qui diffuse des fichiers de flux de données:

Exemple 1: Entités regroupées par marchands (recommandé)

XML

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_1.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_2.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_3.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
</urlset>

Exemple 2: Entités regroupées par types

XML

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>https://your_fulfillment_url.com/restaurant.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/menu.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/service.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
</urlset>

Mettre à jour vos flux de données

Une fois vos flux de données connectés, Google vérifie les mises à jour une fois par heure. Toutefois, nous n'ingérons tous les flux que lorsque les fichiers marker.txt ou sitemap.xml ont été modifiés. Nous vous recommandons de mettre à jour vos flux de données une fois par jour afin d'éviter que l'inventaire soit obsolète.

Pour indiquer que les flux de données ont été modifiés et qu'ils sont prêts pour l'ingestion par lots, mettez à jour le champ de métadonnées d'objet last-modified du fichier marker.txt (pour GCP et S3) ou l'en-tête de réponse last-modified du fichier sitemap.xml. Google utilise ces valeurs pour déterminer la fréquence d'actualisation d'un flux de données.

Lors de l'ingestion du flux par lot,

  • Les nouvelles entités qui n'existent pas dans votre inventaire OwG actuel et qui ne comportent aucune erreur seront insérées.
  • Les entités déjà présentes dans l'inventaire qui n'ont commis aucune erreur lors de l'ingestion et dont la date de fin (dateModified) est plus récente que leur entrée actuelle ou qui n'est pas associée à une date de début (dateModified) indiquent que l'heure de début de l'ingestion du flux est plus récente que celle de l'entrée actuelle, sinon elles seraient marquées comme non actualisées.
  • Les entités qui faisaient partie d'un flux précédent et qui ne sont plus incluses dans le flux de traitement par lot sont supprimées, à condition que le flux ne contienne pas d'erreurs au niveau du fichier.

L'horodatage ou l'en-tête de réponse last-modified ne doivent être mis à jour qu'une fois tous les fichiers de flux de données générés et mis à jour. Limitez les tâches par lot qui mettent à jour vos flux de données afin qu'elles ne s'exécutent qu'une fois par jour. Vous pouvez également définir un intervalle d'au moins trois heures entre chaque tâche par lot. Si vous ne suivez pas cette procédure, Google risque de récupérer les fichiers obsolètes.