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 viene 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 sul momento in cui è stata ricevuta la richiesta. Consulta il formato previsto per i valori
delle ore
nello schema di inventario relazionale.
Google elabora solo 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à obsoleta. Quando un'entità viene aggiornata con una nuova versione, il timestamp dell'ultima modifica viene aggiornato con l'ora corrente dell'aggiornamento.
Esempio
Supponiamo che un feed venga generato il 16 giugno alle 01:10 UTC con la seguente entità di esempio inclusa.
{
"@type": "Restaurant",
"@id": "restaurant12345",
"dateModified": "2022-06-16T01:10:00.000Z",
...
}
Il feed non è ancora stato importato da Google. Più tardi quel giorno, alle ore
2022-06-16T01:22:00.000Z
, Google riceve una richiesta di
aggiornamento in tempo reale batchPush
con la seguente
entità.
{
"records": [
{
"data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
"generation_timestamp": "2022-06-16T01:20:00.000Z"
}
]
}
La versione per l'ID entità 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 è l'ora in cui l'entità è stata aggiornata nell'inventario di Google e la versione è il valore generation_timestamp
della richiesta di aggiornamento in tempo reale o il valore generation_timestamp
del feed.dateModified
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
è
considerata obsoleta e non viene importata. Pertanto, Google continua a pubblicare 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 corrente al momento della creazione del feed.