Controle de versões da entidade

Cada entidade enviada ao Google, seja por feeds ou atualizações em tempo real, tem uma versão anexada. Essa versão é apresentada na forma de um carimbo de data/hora. Nos feeds, o carimbo de data/hora pode ser fornecido para cada entidade usando o atributo dateModified. Se o atributo não for incluído nas entidades do feed, a versão será definida como o horário de início da transferência. 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 será definida como o momento em que a solicitação foi recebida. Confira o formato esperado dos valores de tempo no esquema de 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 é ingerida e o erro Entidade desatualizada é 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 da atualização.

Exemplo

Suponha que um feed seja gerado em 16 de junho às 01h10 UTC com o exemplo de entidade abaixo incluído.

{
  "@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 batchPush de atualização em tempo real com a seguinte entidade.

{
  "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 é definido como 2022-06-16T01:22:00.000Z. Em resumo, o último horário de modificação é o horário 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.

A ingestão 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 veiculando 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 de cada entidade.
  • Aplique as mudanças de atualização em tempo real ao seu próximo feed e defina o carimbo de data/hora dateModified nas entidades do feed para a hora atual em que você criou o feed.