Controllo delle versioni delle entità

Ogni entità inviata a Google, tramite feed o aggiornamenti in tempo reale, ha una versione associata. Questa versione si presenta sotto forma di timestamp. Nella feed, il timestamp può essere fornito per ogni entità utilizzando l'attributo dateModified . Se l'attributo non include le entità del feed, la versione è all'ora di inizio dell'importazione del feed. In aggiornamenti in tempo reale batchPush e batchDelete, rispettivamente, i campi generation_timestamp e delete_time utilizzate per impostare la versione. Se il campo non è incluso, la versione è impostata su l'ora in cui è stata ricevuta la richiesta. Visualizza il formato previsto dell'ora nello schema dell'inventario relazionale.

Google elabora solo entità (ad esempio un ristorante, un menu o un servizio). con una versione uguale o più recente dell'ultima versione accettata. In caso contrario, l'entità non viene importata e viene registrato l'errore di entità inattiva. Quando viene aggiornata con una nuova versione, il timestamp dell'ultima modifica viene aggiornato a l'ora corrente in cui è stato aggiornato.

Esempio

Supponiamo che venga generato un feed il 16 giugno alle 01:10 UTC con l'esempio seguente inclusa l'entità.

{
  "@type": "Restaurant",
  "@id": "restaurant12345",
  "dateModified": "2022-06-16T01:10:00.000Z",
  ...
}

Il feed non è ancora stato importato da Google. Più tardi quel giorno alle 2022-06-16T01:22:00.000Z, Google riceve un aggiornamento in tempo reale batchPush richiesta con il seguente dell'oggetto.

{
  "records": [
    {
      "data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
      "generation_timestamp": "2022-06-16T01:20:00.000Z"
    }
  ]
}

La versione per l'ID entità del ristorante restaurant12345 è ora 2022-06-16T01:20:00.000Z e il timestamp dell'ultima modifica dell'entità impostato a 2022-06-16T01:22:00.000Z. In sintesi, l'ora dell'ultima modifica è l'ora che l'entità è stata aggiornata nell'inventario di Google e che la versione generation_timestamp dalla richiesta di aggiornamento in tempo reale o dal dateModified valore dal feed.

L'importazione del feed inizierà quindi il 16 giugno alle 02:00 UTC. In questa situazione, l'entità ricevuta nel feed con versione 2022-06-16T01:10:00.000Z è considerata obsoleta e non importata. Di conseguenza, Google continua a servire con versione 2022-06-16T01:20:00.000Z dell'entità una richiesta di aggiornamento in tempo reale.

Best practice:

  • Implementa un timestamp nei feed per ogni entità.
  • Applica le modifiche di aggiornamento in tempo reale al tuo prossimo feed e imposta il dateModified nelle entità del feed sull'ora corrente in cui ha creato il feed.