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.