Controle de versões da entidade

Cada entidade enviada ao Google tem uma versão anexada, seja por feeds ou atualizações em tempo real. Essa versão vem na forma de um carimbo de data/hora. Nos feeds, é possível fornecer o carimbo de data/hora para cada entidade usando o atributo dateModified. Se o atributo não estiver incluído nas entidades do feed, a versão será definida como o horário de início da ingestão do feed. Nas atualizações em tempo real batchPush e batchDelete, respectivamente, os campos generation_timestamp e delete_time são usados para definir a versão. Se o campo não for incluído, a versão vai ser definida como a hora em que a solicitação foi recebida. Veja o formato esperado dos valores de tempo no esquema do inventário relacional.

O Google só processa entidades (por exemplo: um restaurante, um cardápio ou um serviço) com uma versão igual ou mais recente que a última versão aceita. Caso contrário, a entidade não será ingerida e o erro Entidade desatualizada será registrado. Quando uma entidade é atualizada com uma nova versão, o carimbo de data/hora da última modificação é atualizado para o horário atual em que foi atualizado.

Exemplo

Suponha que um feed tenha sido gerado em 16 de junho à 1h10 UTC com a seguinte entidade de exemplo.

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

O feed ainda não foi processado pelo Google. Mais tarde naquele dia, em 2022-06-16T01:22:00.000Z, o Google recebe uma solicitação de atualização em tempo real batchPush com a entidade a seguir.

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

A versão do ID da entidade do restaurante restaurant12345 agora é 2022-06-16T01:20:00.000Z e o carimbo de data/hora da última modificação da entidade está definido como 2022-06-16T01:22:00.000Z. Em resumo, o horário da última modificação é a hora em que a entidade foi atualizada no inventário do Google, e a versão é o valor generation_timestamp da solicitação de atualização em tempo real ou o valor dateModified do feed.

O processamento do feed começa em 16 de junho às 2h UTC. Nessa situação, a entidade recebida no feed com a versão 2022-06-16T01:10:00.000Z é considerada desatualizada e não é ingerida. Portanto, o Google continua a exibir a entidade com a versão 2022-06-16T01:20:00.000Z da solicitação de atualização em tempo real.

Práticas recomendadas:

  • Implemente um carimbo de data/hora nos feeds para cada entidade.
  • Aplique as alterações da atualização em tempo real ao seu próximo feed e defina o carimbo de data/hora dateModified nas entidades do feed com a hora atual de quando ele foi criado.