Cada entidad que se envía a Google, ya sea a través de feeds o actualizaciones en tiempo real, tiene una versión adjunta. Esta versión se presenta como una marca de tiempo. En los feeds, se puede proporcionar la marca de tiempo para cada entidad con el atributo dateModified
. Si el atributo no se incluye en las entidades del feed, la versión se establece en la hora de inicio de la transferencia de feeds. En las actualizaciones en tiempo real batchPush
y batchDelete
, respectivamente, se usan los campos generation_timestamp
y delete_time
para establecer la versión. Si no se incluye el campo, la versión se establece en el momento en que se recibió la solicitud. Consulta el formato esperado de los valores de tiempo en el esquema de inventario relacional.
Google solo procesa entidades (por ejemplo, un restaurante, un menú o un servicio) con una versión igual o posterior a la última versión aceptada. De lo contrario, no se transferirá la entidad y se registrará el error Stale Entity. Cuando se actualiza una entidad con una versión nueva, la marca de tiempo de la última modificación se actualiza a la hora actual en la que se actualizó.
Ejemplo
Supongamos que se genera un feed el 16 de junio a las 01:10 UTC con la siguiente entidad de ejemplo incluida.
{
"@type": "Restaurant",
"@id": "restaurant12345",
"dateModified": "2022-06-16T01:10:00.000Z",
...
}
Google aún no transfiere el feed. Más tarde ese día, a las 2022-06-16T01:22:00.000Z
, Google recibe una solicitud batchPush
de actualización en tiempo real con la siguiente entidad.
{
"records": [
{
"data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
"generation_timestamp": "2022-06-16T01:20:00.000Z"
}
]
}
La versión del ID de la entidad de restaurante restaurant12345
ahora es 2022-06-16T01:20:00.000Z
, y la marca de tiempo de la última modificación de la entidad se establece en 2022-06-16T01:22:00.000Z
. En resumen, la última hora de modificación es la hora en la que se actualizó la entidad en el inventario de Google, y la versión es el valor generation_timestamp
de la solicitud de actualización en tiempo real o el valor dateModified
del feed.
La transferencia del feed comenzará el 16 de junio a las 2:00 a.m. (UTC). En esta situación, la entidad recibida en el feed con la versión 2022-06-16T01:10:00.000Z
se considera inactiva y no se transfiere. Por lo tanto, Google sigue publicando la entidad con la versión 2022-06-16T01:20:00.000Z
de la solicitud de actualización en tiempo real.
Prácticas recomendadas:
- Implementa una marca de tiempo en los feeds para cada entidad.
- Aplica los cambios de la actualización en tiempo real a tu próximo feed y configura la marca de tiempo dateModified en las entidades del feed a la hora actual en la que creaste el feed.