Gestion des versions des entités

Chaque entité envoyée à Google, que ce soit via des flux ou des 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, vous pouvez fournir un code temporel 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 ce champ n'est pas inclus, la version est définie sur l'heure à laquelle la requête a été reçue. Consultez le format attendu pour les 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 égale ou plus récente que 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, le code temporel de la dernière modification est mis à jour avec l'heure actuelle de la mise à jour.

Exemple

Supposons qu'un flux soit généré le 16 juin à 01h10 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 batchPush de mise à jour en temps réel 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 l'horodatage de la 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, et 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 à 2h 00 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é avec la version 2022-06-16T01:20:00.000Z de la demande de mise à jour en temps réel.

Bonnes pratiques :

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