Obsługa wersji obiektów

Każdy element wysyłany do Google, czy to za pomocą plików danych, czy aktualizacji w czasie rzeczywistym, ma przypisaną wersję. Ta wersja występuje w formie sygnatury czasowej. W plikach danych można podać sygnaturę czasową dla każdego elementu za pomocą atrybutu dateModified. Jeśli atrybut nie jest uwzględniony w elementach pliku danych, wersja jest ustawiana na czas rozpoczęcia przetwarzania pliku danych. W przypadku aktualizacji w czasie rzeczywistym batchPushbatchDelete wersja jest ustawiana za pomocą pól generation_timestampdelete_time. Jeśli nie podasz tego pola, wersja zostanie ustawiona na czas otrzymania żądania. Sprawdź oczekiwany format wartości czasu w schemacie zasobów reklamowych relacyjnych.

Google przetwarza tylko elementy (np. restaurację, menu lub usługę) w wersji co najmniej tak nowej jak ostatnia zaakceptowana wersja. W przeciwnym razie nie jest on przetwarzany i rejestrowany jest błąd Stale Entity (nieaktualny element). Gdy entuz aktualizujesz, dodając nową wersję, sygnatura czasowa ostatniej modyfikacji zostanie zaktualizowana do bieżącego czasu.

Przykład

Załóżmy, że plik danych został wygenerowany 16 czerwca o godzinie 01:10 UTC i zawiera przykładowy element.

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

Kanał nie został jeszcze przetworzony przez Google. Tego samego dnia o godz. 2022-06-16T01:22:00.000Z Google otrzymuje aktualizację w czasie rzeczywistym batchPush z podanym niżej elementem.

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

Wersja elementu restauracji o identyfikatorze restaurant12345 to teraz 2022-06-16T01:20:00.000Z, a sygnatura czasowa ostatniej modyfikacji tego elementu to 2022-06-16T01:22:00.000Z. Podsumowując, data ostatniej modyfikacji to czas, w którym element został zaktualizowany w asortymencie Google, a wersja to wartość generation_timestamp z zapytania o aktualizację w czasie rzeczywistym lub wartość dateModified z pliku danych.

Przetwarzanie pliku danych rozpocznie się 16 czerwca o 2:00 czasu UTC. W takiej sytuacji entność otrzymana w pliku danych z wersją 2022-06-16T01:10:00.000Z jest uważana za nieaktualną i nie jest przetwarzana. Dlatego Google nadal wyświetla element z wersją 2022-06-16T01:20:00.000Z z prośby aktualizacji w czasie rzeczywistym.

Sprawdzone metody:

  • W plikach danych o każdym obiekcie należy zastosować sygnaturę czasową.
  • Zastosuj zmiany zaktualizowania w czasie rzeczywistym do następnego pliku danych i ustaw dateModified w elementach pliku danych na bieżącą datę i godzinę, kiedy został utworzony.