Obsługa wersji encji

Każdy element wysyłany do Google – za pomocą kanałów czy aktualizacji w czasie rzeczywistym – ma dołączoną wersję. Ta wersja ma postać sygnatury czasowej. W w plikach danych, możesz podać sygnaturę czasową w przypadku każdego elementu za pomocą funkcji dateModified . Jeśli atrybut nie został uwzględniony w encji pliku danych, wersja będzie na godzinę rozpoczęcia przetwarzania kanału. W czasie rzeczywistym: batchPush i batchDelete odpowiednio generation_timestamp i delete_time są używane do określania wersji. Jeśli to pole nie zostało uwzględnione, wersja jest ustawiona na czas otrzymania żądania. Sprawdź oczekiwany format czasu wartości w schemacie relacyjnych zasobów reklamowych.

Google przetwarza tylko elementy (np. restaurację, menu lub usługę) o wersji równej lub nowszej od ostatniej zaakceptowanej wersji. W przeciwnym razie element nie jest przetwarzany i rejestrowany jest błąd Stale Entity (Nieaktualna jednostka). Gdy encja zostanie zaktualizowana o nową wersję, sygnatura czasowa ostatniej modyfikacji zostanie zmieniona na aktualnej godziny aktualizacji.

Przykład

Załóżmy, że plik danych został wygenerowany 16 czerwca o godzinie 01:10 czasu UTC w tym przykładzie: .

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

Kanał nie został jeszcze przetworzony przez Google. Później tego samego dnia o 2022-06-16T01:22:00.000Z, Google otrzymuje batchPushżądanie aktualizacji w czasie rzeczywistym z następującymi wartościami podmiotu zabezpieczeń.

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

Wersja identyfikatora elementu restauracji restaurant12345 jest teraz 2022-06-16T01:20:00.000Z i ustawiono ostatnio zmodyfikowaną sygnaturę czasową elementu. do: 2022-06-16T01:22:00.000Z. Podsumowując, czas ostatniej modyfikacji to czas, że obiekt został zaktualizowany w zasobach Google, a wersja to Wartość generation_timestamp z żądania aktualizacji w czasie rzeczywistym lub Wartość dateModified z pliku danych.

Przetwarzanie pliku danych rozpocznie się 16 czerwca o godzinie 02:00 czasu UTC. W takim przypadku element otrzymany w kanale z wersją 2022-06-16T01:10:00.000Z to są uznawane za nieaktualne i nie są przetwarzane. W związku z tym Google w dalszym ciągu wyświetla element z wersją 2022-06-16T01:20:00.000Z z parametru aktualizację w czasie rzeczywistym.

Sprawdzone metody:

  • Zaimplementuj sygnaturę czasową w plikach danych dla każdego elementu.
  • zastosować zmiany aktualizacji w czasie rzeczywistym do następnego pliku danych, ustaw ten we sygnaturze czasowej dateModified w elementach kanału do aktualnej godziny, Użytkownik utworzył plik danych.