ניהול גרסאות של ישויות

לכל ישות שנשלחת אל Google, בין שבאמצעות פידים ובין שבאמצעות עדכונים בזמן אמת, מצורפת גרסה. הגרסה הזו מופיעה בצורת חותמת זמן. בפיד אפשר לספק את חותמת הזמן של כל ישות באמצעות המאפיין dateModified. אם המאפיין לא נכלל בישויות הפיד, הגרסה מוגדרת לשעת ההתחלה של הטמעת הנתונים בפיד. בעדכונים בזמן אמת batchPush ו-batchDelete, השדות generation_timestamp ו-delete_time משמשים להגדרת הגרסה. אם השדה לא נכלל, הגרסה מוגדרת לזמן שבו הבקשה התקבלה. עיינו בפורמט הצפוי של ערכי זמן בסכימת המלאי היחסי.

Google מעבדת רק ישויות (למשל: מסעדה, תפריט או שירות) בגרסה שחדשה לפחות כמו הגרסה האחרונה שאושרה. אחרת, הישות לא תתאזרח ותתועד השגיאה Stale Entity. כשיש עדכון של ישות לגרסה חדשה, חותמת הזמן של השינוי האחרון מתעדכנת לשעה הנוכחית שבה בוצע העדכון.

דוגמה

נניח שפיד נוצר ב-16 ביוני בשעה 01:10 (שעון UTC) ויש בו את הישות לדוגמה הבאה.

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

Google עדיין לא הטמיעה את הפיד. מאוחר יותר באותו יום, בשעה 2022-06-16T01:22:00.000Z, Google מקבלת בקשה מסוג batchPush לעדכון בזמן אמת עם הישות הבאה.

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

הגרסה של מזהה הישות של המסעדה restaurant12345 היא עכשיו 2022-06-16T01:20:00.000Z, וחותמת הזמן של השינוי האחרון בישות מוגדרת כ-2022-06-16T01:22:00.000Z. לסיכום, הזמן שבו בוצעו השינויים האחרונים הוא הזמן שבו הישות עודכנה במלאי שטחי הפרסום של Google, והגרסה היא הערך של generation_timestamp מבקשת העדכון בזמן אמת או הערך של dateModified מהפיד.

הטמעת הפיד תתחיל ב-16 ביוני בשעה 02:00 (שעון UTC). במקרה כזה, הישות שהתקבלה בפיד בגרסה 2022-06-16T01:10:00.000Z נחשבת לא רלוונטית ולא מתבצע הטמעה שלה. לכן, Google ממשיכה להציג את הישות בגרסה 2022-06-16T01:20:00.000Z מהבקשה לעדכון בזמן אמת.

שיטות מומלצות:

  • מטמיעים חותמת זמן בפידים לכל ישות.
  • מחילים את השינויים של העדכון בזמן אמת על הפיד הבא, ומגדירים את חותמת הזמן dateModified בישות הפיד לשעה הנוכחית שבה יצרתם את הפיד.