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 a ele. Essa versão vem na forma de um carimbo de data/hora. Em feeds, o carimbo de data/hora pode ser fornecido para cada entidade usando o atributo dateModified . Se o atributo não estiver incluído nas entidades do feed, a versão será definido como o horário de início da ingestão do feed. 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 a hora em que a solicitação foi recebida. Veja o formato esperado de hora valores 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 aceita. Caso contrário, o entidade não é ingerida e o erro Entidade obsoleta é registrado. Quando um entidade for atualizada com uma nova versão, o carimbo de data/hora da última modificação será atualizado para hora atual em que foi atualizado.

Exemplo

Suponha que um feed tenha sido gerado em 16 de junho às 01:10 UTC com o exemplo a seguir entidade incluída.

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

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

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

A versão do ID de entidade do restaurante restaurant12345 agora é 2022-06-16T01:20:00.000Z e o carimbo de data/hora da última modificação da entidade foi definido para 2022-06-16T01:22:00.000Z. Em resumo, a hora da última modificação é a hora que a entidade foi atualizada no inventário do Google e que a versão é a generation_timestamp da solicitação de atualização em tempo real ou do 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 está é considerada desatualizada e não é ingerida. Por isso, o Google continua veiculando entidade com a versão 2022-06-16T01:20:00.000Z do uma 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 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.