Pembuatan versi entitas

Setiap entitas yang dikirim ke Google, baik melalui feed maupun update real-time, memiliki versi yang disertakan. Versi ini berupa stempel waktu. Dalam feed, stempel waktu dapat diberikan untuk setiap entity 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 nilai waktu yang diharapkan dalam skema inventaris relasional.

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

Contoh

Misalkan 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. Kemudian pada hari itu pukul 2022-06-16T01:22:00.000Z, Google menerima permintaan batchPush update real-time dengan entity berikut.

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

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

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

Praktik terbaik:

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