Gestion des versions des entités

Chaque entité envoyée à Google, que ce soit par le biais de flux ou de mises à jour en temps réel, est associée à une version. Cette version se présente sous la forme d'un code temporel. Dans les flux, le code temporel peut être fourni pour chaque entité à l'aide de l'attribut dateModified. Si l'attribut n'est pas inclus dans les entités de flux, la version est définie sur l'heure de début de l'ingestion du flux. Dans les mises à jour en temps réel batchPush et batchDelete, respectivement, les champs generation_timestamp et delete_time sont utilisés pour définir la version. Si le champ n'est pas inclus, la version est définie sur l'heure de réception de la requête. Consultez le format attendu des valeurs temporelles dans le schéma d'inventaire relationnel.

Google ne traite que les entités (par exemple, un restaurant, un menu ou un service) dont la version est supérieure ou égale à la dernière version acceptée. Sinon, l'entité n'est pas ingérée et l'erreur Entité obsolète est enregistrée. Lorsqu'une entité est mise à jour avec une nouvelle version, l'horodatage de la dernière modification correspond à l'heure actuelle de la mise à jour.

Exemple

Supposons qu'un flux soit généré le 16 juin à 1h10 UTC avec l'exemple d'entité suivant inclus.

{
  "@type": "Restaurant",
  "@id": "restaurant12345",
  "dateModified": "2022-06-16T01:10:00.000Z",
  ...
}

Le flux n'a pas encore été ingéré par Google. Plus tard dans la journée à 2022-06-16T01:22:00.000Z, Google reçoit une requête de mise à jour en temps réel batchPush avec l'entité suivante.

{
  "records": [
    {
      "data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
      "generation_timestamp": "2022-06-16T01:20:00.000Z"
    }
  ]
}

La version de l'ID d'entité de restaurant restaurant12345 est désormais 2022-06-16T01:20:00.000Z, et le code temporel de dernière modification de l'entité est défini sur 2022-06-16T01:22:00.000Z. En résumé, l'heure de la dernière modification correspond à l'heure à laquelle l'entité a été mise à jour dans l'inventaire de Google. La version correspond à la valeur generation_timestamp de la requête de mise à jour en temps réel ou à la valeur dateModified du flux.

L'ingestion du flux commence ensuite le 16 juin à 2h00 UTC. Dans ce cas, l'entité reçue dans le flux avec la version 2022-06-16T01:10:00.000Z est considérée comme obsolète et n'est pas ingérée. Google continue donc de diffuser l'entité disposant de la version 2022-06-16T01:20:00.000Z de la requête de mise à jour en temps réel.

Bonnes pratiques :

  • Ajoutez un code temporel dans les flux pour chaque entité.
  • Appliquez les modifications de mise à jour en temps réel à votre prochain flux et définissez l'horodatage dateModified dans les entités de flux sur l'heure actuelle à laquelle vous avez créé le flux.