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.