A ogni entità inviata a Google, tramite feed o aggiornamenti in tempo reale, è associata una versione. Questa versione è sotto forma di timestamp. Nei feed, il timestamp può essere fornito per ogni entità utilizzando l'attributo dateModified
. Se l'attributo non è incluso nelle entità del feed, la versione è impostata sull'ora di inizio dell'importazione del feed. Negli aggiornamenti in tempo reale batchPush
e batchDelete
, rispettivamente, i campi generation_timestamp
e delete_time
vengono utilizzati per impostare la versione. Se il campo non è incluso, la versione viene impostata sull'ora in cui è stata ricevuta la richiesta. Visualizzare il formato previsto dei valori temporali nello schema dell'inventario relazionale.
Google elabora solo le entità (ad esempio un ristorante, un menu o un servizio) con una versione uguale o successiva all'ultima versione accettata. In caso contrario, l'entità non viene importata e viene registrato l'errore Entità inattiva. Quando un'entità viene aggiornata con una nuova versione, il timestamp dell'ultima modifica viene aggiornato all'ora corrente in cui è stato aggiornato.
Esempio
Supponiamo che un feed venga generato il 16 giugno alle 01:10 UTC con la seguente entità di esempio.
{
"@type": "Restaurant",
"@id": "restaurant12345",
"dateModified": "2022-06-16T01:10:00.000Z",
...
}
Il feed non è stato ancora importato da Google. Più tardi quel giorno, alle ore 2022-06-16T01:22:00.000Z
, Google riceve una richiesta batchPush
di aggiornamento in tempo reale con la seguente entità.
{
"records": [
{
"data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
"generation_timestamp": "2022-06-16T01:20:00.000Z"
}
]
}
La versione dell'ID entità del ristorante restaurant12345
è ora
2022-06-16T01:20:00.000Z
e il timestamp dell'ultima modifica dell'entità è impostato
su 2022-06-16T01:22:00.000Z
. In sintesi, l'ora dell'ultima modifica corrisponde all'ora in cui l'entità è stata aggiornata nell'inventario di Google e la versione corrisponde al valore generation_timestamp
della richiesta di aggiornamento in tempo reale o al valore dateModified
del feed.
L'importazione del feed inizierà quindi il 16 giugno alle 02:00 UTC. In questo caso, l'entità ricevuta nel feed con la versione 2022-06-16T01:10:00.000Z
viene considerata obsoleta e non è stata importata. Pertanto, Google continua a gestire l'entità con la versione 2022-06-16T01:20:00.000Z
della richiesta di aggiornamento in tempo reale.
Best practice:
- Implementa un timestamp nei feed per ogni entità.
- Applica le modifiche dell'aggiornamento in tempo reale al feed successivo e imposta il timestamp dateModified nelle entità del feed sull'ora attuale in cui hai creato il feed.