تحديد إصدارات الإصدار 1 في الخلاصات المجمّعة

في الخلاصات المجمّعة، يتم تحديد إصدار العنصر من خلال الحقل dateModified في مغلف الخلاصة:

{
  "@context": "http://schema.googleapis.com",
  "dateModified": "2018-12-28T06:30:00:123-07:00",
  "@type": "DataFeed",
  "dataFeedElement": [
    /* All the items that are part of this feed go here */
  ]
}

جميع الكيانات المدرجة في الحقل dataFeedElement لها الطابع الزمني نفسه، كما هو مدرج في المغلف.

على سبيل المثال، قد تتضمّن الخلاصة التالية كيانَين:

{
  "@context": "http://schema.googleapis.com",
  "@type": "DataFeed",
  "dateModified": "2018-12-28T06:30:00:123-07:00",
  "dataFeedElement": [
    {
      "@type": "Restaurant",
      "@id": "http://www.provider.com/somerestaurant",
      ...
    },
    {
      "@type": "Menu",
      "@id": "http://www.provider.com/somerestaurant/menu/1"
      ...
    }
  ]
}

سيتم تضمين كل من كيانات القائمة والمطعم، بمجرد استلامها ومعالجتها، تم إصدارها بشكل فردي على النحو التالي: "2018-12-28T06:30:00:123-07:00".

تحديد الإصدارات باستخدام التحديثات التزايدية

عند إرسال كيان باستخدام تعديلات المستودع، يتم ضبط الإصدار من خلال الحقل update_time (في حال طلب إضافة/تعديل) أو delete_time (في حالة طلب حذف). بما أن هذه الحقول اختيارية، فإن تمّ ضبط الطابع الزمني التلقائي على وقت تلقّي Google للمكالمة.

المثال 1: تم ضبط update_time بشكل صريح

لنفترض أنّه تم تلقّي المكالمة الإضافية التالية على الرقم 2018-12-28T06:30:10:123-07:00 لمطعم جديد تمامًا. في ما يلي طلب HTTP POST لهذا الكيان بالمعرف "http://www.provider.com/someRestaurant"، بافتراض استخدام خلاصة البيانات مخطط مستودع v1:

POST v2/apps/provider-project/entities/http%3A%2F%2Fwww.provider.com%2Fnewrestaurant:push
Host: actions.googleapis.com
Content-Type: application/ld+json

يحتوي نص حمولة JSON أدناه على الحقل update_time. الكيان ذو المعرّف "http://www.provider.com/someRestaurant" إلى كون هذا الكيان الإصدار 6:30:00 وليس عند استلامه (بعد عشر ثوانٍ في 6:30:10):

{
// This envelope is to be used for incremental.
  "entity": {
    // Note: "data" is not serialized as a string in our example for readability.
    "data": "[entity in JSON format serialized as a string]",
    "vertical": "FOODORDERING"
  },
  "update_time":"2018-12-28T06:30:00:123-07:00"
}

المثال 2: تم الضبط ضمنيًا على update_time

لنفترض أنّه تم تلقّي المكالمة الإضافية التالية على الرقم 2018-12-28T06:30:10:123-07:00 لمطعم جديد تمامًا. في ما يلي طلب HTTP POST لهذا الكيان بالمعرّف "http://www.provider.com/someRestaurant"، بافتراض أنّ الخلاصة تستخدم الإصدار 1 مخطط المخزون:

POST v2/apps/provider-project/entities/http%3A%2F%2Fwww.provider.com%2Fnewrestaurant:push
Host: actions.googleapis.com
Content-Type: application/ld+json

لا يحتوي نص حمولة JSON أدناه على الحقل update_time. تشير رسالة الأشكال البيانية كيان ذي رقم التعريف "http://www.provider.com/someRestaurant" وبالتالي ينتج عنها يتم إصدار إصدار هذا الكيان على النحو التالي 6:30:10:

{
// This envelope is to be used for incremental.
  "entity": {
    //Note: "data" is not serialized as a string in our example for readability.
    "data": "[entity in JSON format serialized as a string]";,
    "vertical": "FOODORDERING"
  }
}

تحديد الإصدارات بين الدُفعة والتزايدية

لا تتم معالجة أي كيان تم إرساله إلى Google وعرضه إلا إذا كان يحتوي على أحدث إصدار. . تجدر الإشارة إلى أنّ استلام الكيانات المُرسَلة من خلال دُفعة يستغرق عادةً بضعة أيام تتم معالجتها، في حين تتم معالجة الكيانات المرسلة من خلال واجهة برمجة التطبيقات التزايدية فورًا.

أفضل الممارسات

  • اضبط الحقلَين update_time وdateModified بشكل تدريجي ومجمّع. على التوالي، وفقًا للوقت الذي تم فيه تعديل العنصر في أنظمتك.
  • إذا كانت الخلاصة المجمعة (الملف) تتضمن أكثر من كيان من المستوى الأعلى (على سبيل المثال، إقران مطاعمك بالخدمات والقوائم)، ثم عدِّل الطابع الزمني فسيتم تحديث بيانات الكيان.
  • في المكالمات المتزايدة، ننصحك بشدة بضبط الحقل "update_time".
  • من الضروري بعد إجراء طلب متزايد أن تصل الخلاصة المتوافقة يتم أيضًا تعديل الطابع الزمني (dateModified) قبل أن تجلبه Google مرة أخرى.

مثال

يجلب محرّك بحث Google الملف التالي في الساعة 11 صباحًا في 28-12-2018 لملف جديد تمامًا المطعم:

{
  "@context": "http://schema.googleapis.com",
  "@type": "DataFeed",
  "dateModified": "2018-12-28T06:30:00-07:00",
  "dataFeedElement": [
    {
      "@type": "Restaurant",
      "@id": "http://www.provider.com/newrestaurant",
      ...
    },
    {
      "@type": "Menu",
      "@id": "http://www.provider.com/newrestaurant/menu/1"
      ...
    }
    {
      "@type": "Service",
      "@id": "http://www.provider.com/newrestaurant/service/1"
      ...
    }
  ]
}

تتم معالجة هذه الكيانات بنجاح ويتم تحديد إصدارات منها كـ "2018-12-28T06:30:00-07:00". نظرًا لأن معالجة الخلاصات المجمّعة تستغرق وقتًا، عادة بعد يومين.

مع ذلك، في الساعة 1 بعد الظهر، سيجري نظام الشريك تحديثًا على هاتف المطعم. الأمر الذي ينتج عنه المكالمة المتزايدة التالية، والتي تتلقاها Google في الساعة 13:05 (بعد 5 ثوانٍ):

POST v2/apps/provider-project/entities/http%3A%2F%2Fwww.provider.com%2Fnewrestaurant:push
Host: actions.googleapis.com
Content-Type: application/ld+json
{
// This envelope is to be used for incremental.
  "entity": {
    //Note: "data" is not serialized as a string in our example for readability.
    "data": "[entity in JSON format serialized as a string]",
    "vertical": "FOODORDERING"
  },
  "update_time":"2018-12-28T13:00:00-07:00"
}

يتم توفير update_time بشكل صريح، وهو أكبر (أحدث) من النسخة السابقة (6:30 صباحًا من نفس اليوم)، لذلك أصبح كيان المطعم الآن بالإصدار "2018-12-28T13:00:00-07:00". ومع ذلك، تتضمن كيانات القائمة والخدمات لا تزال تحمل التصنيف "2018-12-28T06:30:00-07:00".

وقد كان هناك اتصال متزايد، لذلك يتم تحديث الخلاصة المجمّعة الطابع الزمني المقابل. إضافةً إلى ذلك، يتم تطبيق التغييرات المقابلة على الكيانات ذات الصلة (تم تعديل رقم هاتف كيان المطعم).

{
  "@context": "http://schema.googleapis.com",
  "@type": "DataFeed",
  "dateModified": "2018-12-28T13:00:00-07:00",
  "dataFeedElement": [
    {
      "@type": "Restaurant",
      "@id": "http://www.provider.com/newrestaurant",
      ...
    },
    {
      "@type": "Menu",
      "@id": "http://www.provider.com/newrestaurant/menu/1"
      ...
    }
    {
      "@type": "Service",
      "@id": "http://www.provider.com/newrestaurant/service/1"
      ...
    }
  ]
}

في اليوم التالي (29-12-2018) عند الساعة 11 مساءً، يتم جلب الخلاصة مرة أخرى. المطعم لا يزال لديه الإصدار ذاته (1 مساءً اعتبارًا من 28 كانون الأول/ديسمبر)، لذا سيتم حذف هذا الكيان ويتم الاحتفاظ بالنسخة الحالية. ومع ذلك، يتم تصنيف كيانات "القائمة" و"الخدمة" تحديثًا بإصدار جديد.

الطوابع الزمنية لخريطة الموقع

لا يؤثر عنوان استجابة last-modified في خريطة الموقع في نسخة من الكيان. وتؤثّر هذه العلامة في الوقت الذي يجلب فيه محرّك بحث Google الخلاصة.

أفضل الممارسات

  • تعديل عنوان الاستجابة فقط عندما تكون جميع الملفات محدَّثة وجاهزة لذلك الجلب.
  • استخدِم update_time وdelete_time بوضوح في التصاعد.
  • ضبط update_time وdelete_time وdateModified على وقت تغيير البيانات من جانبك.