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 se presenta en forma de una marca de tiempo. En feeds, se puede proporcionar la marca de tiempo para cada entidad con el dateModified . Si no se incluye el atributo en las entidades del feed, la versión se se establece en la hora de inicio de la transferencia del feed. Se actualiza 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 que se recibió la solicitud. Ver el formato esperado de hora valores 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, el no se transfiere y se registra el error Stale Entity. Cuando un una entidad se actualiza con una versión nueva, la marca de tiempo de la última modificación se actualiza a la hora actual a la que se actualizó.

Ejemplo

Supongamos que se genera un feed el 16 de junio a la 1:10 UTC con el siguiente ejemplo: con una entidad única incluida.

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

Google aún no transfiere el feed. Más tarde ese mismo día, a las 2022-06-16T01:22:00.000Z, Google recibe un solicitud de batchPush actualización en tiempo real con lo siguiente .

{
  "records": [
    {
      "data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
      "generation_timestamp": "2022-06-16T01:20:00.000Z"
    }
  ]
}

Ahora la versión del ID de entidad del restaurante restaurant12345 es Se establecen 2022-06-16T01:20:00.000Z y la marca de tiempo de la última modificación de la entidad a 2022-06-16T01:22:00.000Z. En resumen, la última hora de modificación es la hora que la entidad se actualizó en el inventario de Google y que la versión es generation_timestamp de la solicitud de actualización en tiempo real o Es un valor de dateModified del feed.

La transferencia del feed comenzará el 16 de junio a las 02:00 UTC. En esta situación, la entidad recibida en el feed con la versión 2022-06-16T01:10:00.000Z es se considera inactivo y no se transfiere. Por lo tanto, Google sigue ofreciendo con la versión 2022-06-16T01:20:00.000Z de la una 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 al próximo feed y establece la marca de tiempo dateModified en las entidades del feed y la hora actual en la que creó el feed.