Control de versiones de entidades

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 tiene el formato de 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 está incluido en las entidades del feed, la versión se establece en la hora de inicio de la transferencia del feed. En las actualizaciones en tiempo real, batchPush y batchDelete, respectivamente, los campos generation_timestamp y delete_time se usan para configurar la versión. Si no se incluye el campo, la versión se establece en la hora en la que se recibió la solicitud. Consulta el formato esperado de los valores de tiempo en el esquema del 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, la entidad no se transfiere y se registra el error Entidad inactiva. Cuando una entidad se actualiza 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 la 1:10 p.m. UTC con la siguiente entidad de ejemplo incluida.

{
  "@type": "Restaurant",
  "@id": "restaurant12345",
  "dateModified": "2022-06-16T01:10:00.000Z",
  ...
}

Google aún no transfirió el feed. Más tarde ese día, en 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 entidad del 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 hora de la última modificación es la hora a 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 comienza el 16 de junio a las 2:00 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 entregando 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 de las entidades del feed en la hora actual en la que creaste el feed.