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.