Mỗi thực thể được gửi đến Google, cho dù thông qua nguồn cấp dữ liệu hay thông tin cập nhật theo thời gian thực, đều có một phiên bản đính kèm. Phiên bản này có dạng dấu thời gian. Trong nguồn cấp dữ liệu, bạn có thể cung cấp dấu thời gian cho mỗi thực thể bằng cách sử dụng thuộc tính dateModified
. Nếu thuộc tính này không có trong các thực thể nguồn cấp dữ liệu, thì phiên bản sẽ được đặt thành thời gian bắt đầu truyền dẫn nguồn cấp dữ liệu. Trong các bản cập nhật theo thời gian thực batchPush
và batchDelete
, lần lượt các trường generation_timestamp
và delete_time
được dùng để đặt phiên bản. Nếu bạn không thêm trường này, phiên bản sẽ được đặt thành thời điểm nhận được yêu cầu. Xem định dạng dự kiến của giá trị thời gian trong giản đồ khoảng không quảng cáo quan hệ.
Google chỉ xử lý các thực thể (ví dụ: nhà hàng, thực đơn hoặc dịch vụ) có phiên bản bằng hoặc mới hơn phiên bản được chấp nhận gần đây nhất. Nếu không, thực thể sẽ không được nhập và lỗi Thực thể cũ sẽ được ghi lại. Khi một thực thể được cập nhật bằng phiên bản mới, dấu thời gian sửa đổi gần đây nhất sẽ được cập nhật thành thời gian hiện tại mà thực thể đó được cập nhật.
Ví dụ:
Giả sử một nguồn cấp dữ liệu được tạo vào lúc 01:10 (giờ UTC) ngày 16 tháng 6, trong đó có thực thể mẫu sau.
{
"@type": "Restaurant",
"@id": "restaurant12345",
"dateModified": "2022-06-16T01:10:00.000Z",
...
}
Google chưa nhập nguồn cấp dữ liệu này. Vào lúc 2022-06-16T01:22:00.000Z
cùng ngày, Google nhận được yêu cầu batchPush
cập nhật theo thời gian thực với thực thể sau.
{
"records": [
{
"data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
"generation_timestamp": "2022-06-16T01:20:00.000Z"
}
]
}
Phiên bản cho mã thực thể nhà hàng restaurant12345
hiện là 2022-06-16T01:20:00.000Z
và dấu thời gian sửa đổi gần đây nhất của thực thể được đặt thành 2022-06-16T01:22:00.000Z
. Tóm lại, thời gian sửa đổi gần đây nhất là thời điểm thực thể được cập nhật trong khoảng không quảng cáo của Google và phiên bản là giá trị generation_timestamp
từ yêu cầu cập nhật theo thời gian thực hoặc giá trị dateModified
từ nguồn cấp dữ liệu.
Sau đó, quá trình truyền dẫn nguồn cấp dữ liệu sẽ bắt đầu vào lúc 02:00 ngày 16 tháng 6 theo giờ UTC. Trong trường hợp này, thực thể nhận được trong nguồn cấp dữ liệu có phiên bản 2022-06-16T01:10:00.000Z
sẽ được coi là cũ và không được nhập. Do đó, Google tiếp tục phân phát thực thể có phiên bản 2022-06-16T01:20:00.000Z
từ yêu cầu cập nhật theo thời gian thực.
Các phương pháp hay nhất:
- Triển khai dấu thời gian trong nguồn cấp dữ liệu cho từng thực thể.
- Áp dụng các thay đổi về cập nhật theo thời gian thực cho nguồn cấp dữ liệu tiếp theo và đặt dấu thời gian dateModified trong các thực thể nguồn cấp dữ liệu thành thời gian hiện tại khi bạn tạo nguồn cấp dữ liệu.