Controllo delle versioni delle entità

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.