Pembuatan versi entitas

Setiap entitas yang dikirim ke Google, baik melalui feed atau update real-time, memiliki versi yang disertakan. Versi ini tersedia dalam bentuk stempel waktu. Dalam feed, stempel waktu dapat diberikan untuk setiap entitas menggunakan atribut dateModified. Jika atribut tidak menyertakan entitas feed, versi akan ditetapkan ke waktu mulai penyerapan feed. Dalam update real-time batchPush dan batchDelete, kolom generation_timestamp dan delete_time digunakan untuk menetapkan versi. Jika kolom tidak disertakan, versi akan ditetapkan ke waktu saat permintaan diterima. Lihat format yang diharapkan untuk nilai waktu dalam skema inventaris relasional.

Google hanya memproses entitas (misalnya: restoran, menu, atau layanan) dengan versi yang sama dengan atau lebih baru dari versi yang terakhir diterima. Jika tidak, entitas tidak akan diserap dan error Entitas Lama akan dicatat. Saat entity diperbarui dengan versi baru, stempel waktu yang terakhir diubah akan diperbarui ke waktu saat ini ketika entitas tersebut diperbarui.

Contoh

Misalnya, feed dibuat pada 16 Juni pukul 01.10 UTC dengan menyertakan contoh entitas berikut.

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

Feed belum diserap oleh Google. Beberapa hari kemudian pada 2022-06-16T01:22:00.000Z, Google menerima permintaan batchPush update real-time dengan entitas berikut.

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

Versi untuk ID entitas restoran restaurant12345 sekarang adalah 2022-06-16T01:20:00.000Z dan stempel waktu terakhir diubah entitas ditetapkan ke 2022-06-16T01:22:00.000Z. Singkatnya, waktu terakhir diubah adalah waktu saat entity diupdate di inventaris Google dan versinya adalah nilai generation_timestamp dari permintaan update real-time atau nilai dateModified dari feed.

Proses transfer feed akan dimulai pada tanggal 16 Juni pukul 02.00 UTC. Dalam situasi ini, entity yang diterima di feed dengan versi 2022-06-16T01:10:00.000Z dianggap tidak berlaku dan tidak diserap. Oleh karena itu, Google terus menayangkan entity dengan versi 2022-06-16T01:20:00.000Z dari permintaan update real-time.

Praktik terbaik:

  • Terapkan stempel waktu dalam feed untuk setiap entitas.
  • Terapkan perubahan update real-time ke feed berikutnya dan tetapkan stempel waktu dateModified dalam entity feed ke waktu saat ini saat Anda membuat feed.