透過動態饋給或即時更新傳送至 Google 的每個實體都有附加版本。這個版本是以時間戳記的形式提供。在動態饋給中,您可以使用 dateModified
屬性為每個實體提供時間戳記。如果不含動態饋給實體,系統會將版本設為動態饋給擷取的開始時間。在即時更新 batchPush
和 batchDelete
中,系統會使用 generation_timestamp
和 delete_time
欄位來設定版本。如果不包含這個欄位,版本會設為收到要求的時間。請參閱關聯清查結構定義中的時間值預期格式。
Google 只會處理版本等於或較上次接受版本的實體 (例如餐廳、菜單或服務)。否則,系統不會擷取實體,並記錄 Stale Entity 錯誤。當實體更新為新版本時,上次修改的時間戳記會更新為當下的更新時間。
範例
假設動態饋給是在世界標準時間 6 月 16 日 01:10 產生,並包含以下實體範例。
{
"@type": "Restaurant",
"@id": "restaurant12345",
"dateModified": "2022-06-16T01:10:00.000Z",
...
}
Google 尚未擷取動態饋給。當天稍晚,2022-06-16T01:22:00.000Z
收到了內含下列實體的即時更新 batchPush
要求。
{
"records": [
{
"data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
"generation_timestamp": "2022-06-16T01:20:00.000Z"
}
]
}
餐廳實體 ID restaurant12345
的版本現在是 2022-06-16T01:20:00.000Z
,實體上次修改的時間戳記則設為 2022-06-16T01:22:00.000Z
。簡單來說,上次修改時間是指實體在 Google 商品目錄中更新的時間,版本則是即時更新要求的 generation_timestamp
值,或是動態饋給中的 dateModified
值。
動態饋給擷取作業自 6 月 16 日 02:00 (世界標準時間) 開始。在這種情況下,系統會將 2022-06-16T01:10:00.000Z
版動態饋給中收到的實體視為過時,因此不會擷取。因此,Google 會透過即時更新要求,繼續為實體提供 2022-06-16T01:20:00.000Z
版本。
最佳做法:
- 為每個實體在動態饋給中導入時間戳記。
- 將即時更新變更套用至下一個動態饋給,並將動態饋給實體中的 dateModified 時間戳記設為您建立動態饋給的目前時間。