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.