Entitätsversionsverwaltung

Jeder Entität, die über Feeds oder Echtzeitaktualisierungen an Google gesendet wird, ist eine Version angehängt. Diese Version hat die Form eines Zeitstempels. In Feeds kann der Zeitstempel für jede Entität mithilfe des Attributs dateModified angegeben werden. Wenn das Attribut nicht in den Feedentitäten enthalten ist, wird die Version auf die Startzeit der Feedaufnahme festgelegt. Bei den Echtzeitaktualisierungen batchPush und batchDelete werden die Felder generation_timestamp und delete_time zum Festlegen der Version verwendet. Wenn das Feld nicht enthalten ist, wird die Version auf den Zeitpunkt festgelegt, zu dem die Anfrage eingegangen ist. Sehen Sie sich das erwartete Format der Zeitwerte im relationalen Inventarschema an.

Google verarbeitet nur Entitäten (z. B. ein Restaurant, eine Speisekarte oder eine Dienstleistung) mit einer Version, die der letzten akzeptierten Version entspricht oder neuer ist. Andernfalls wird die Entität nicht aufgenommen und der Fehler Stale Entity wird aufgezeichnet. Beim Aktualisieren einer Entität mit einer neuen Version wird der Zeitstempel der letzten Änderung auf den Zeitpunkt der Aktualisierung aktualisiert.

Beispiel

Angenommen, am 16. Juni um 01:10 Uhr UTC wurde ein Feed mit der folgenden Beispielentität generiert.

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

Der Feed wurde noch nicht von Google aufgenommen. Später am selben Tag um 2022-06-16T01:22:00.000Z erhält Google eine batchPush-Anfrage für Echtzeitaktualisierungen mit der folgenden Entität.

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

Die Version für die Restaurantentitäts-ID restaurant12345 ist jetzt 2022-06-16T01:20:00.000Z und der Zeitstempel der letzten Änderung der Entität ist auf 2022-06-16T01:22:00.000Z festgelegt. Zusammenfassend lässt sich sagen, dass der Zeitpunkt der letzten Änderung der Zeitpunkt ist, zu dem die Entität im Google-Inventar aktualisiert wurde. Die Version ist der Wert generation_timestamp aus der Echtzeit-Aktualisierungsanfrage oder der Wert dateModified aus dem Feed.

Die Aufnahme des Feeds beginnt dann am 16. Juni um 02:00 Uhr (UTC). In diesem Fall gilt die mit der Version 2022-06-16T01:10:00.000Z im Feed empfangene Entität als veraltet und wird nicht aufgenommen. Daher stellt Google die Entität weiterhin mit der Version 2022-06-16T01:20:00.000Z aus der Echtzeitaktualisierungsanfrage bereit.

Best Practices:

  • Implementieren Sie für jede Entität einen Zeitstempel in Feeds.
  • Wenden Sie die Echtzeitaktualisierung auf Ihren nächsten Feed an und legen Sie den Zeitstempel dateModified in den Feedentitäten auf den Zeitpunkt fest, zu dem Sie den Feed erstellt haben.