การกำหนดเวอร์ชัน v1 ในฟีดแบบกลุ่ม

ในฟีดกลุ่ม ระบบจะกำหนดเวอร์ชันของเอนทิตีผ่านช่อง 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 จะมีการประทับเวลาเหมือนกันตามที่ระบุไว้ในซองจดหมาย

เช่น คุณอาจมีฟีดต่อไปนี้ที่มี 2 เอนทิตี

{
  "@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/somemerchant" ในกรณีที่ฟีดข้อมูลใช้สคีมาพื้นที่โฆษณา 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 ไม่ใช่เวลาที่ระบบได้รับ (ในอีก 10 วินาทีหลังจากนั้น ณ เวลา 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" ในกรณีที่ฟีดใช้สคีมาพื้นที่โฆษณา 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: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 จะได้รับการประมวลผลและจะแสดงเมื่อมีเวอร์ชันล่าสุดเท่านั้น โปรดทราบว่าโดยทั่วไปแล้วเอนทิตีที่ส่งผ่านกลุ่มจะใช้เวลา 2-3 วันในการประมวลผล ในขณะที่เอนทิตีที่ส่งผ่าน API ที่เพิ่มขึ้นจะได้รับการประมวลผลทันที

แนวทางปฏิบัติแนะนำ

  • ตั้งค่าช่อง update_time และ dateModified ทีละช่องและเป็นชุดตามลำดับเวลาตามลำดับเวลาที่แก้ไขเอนทิตีในระบบของคุณ
  • หากฟีดกลุ่ม (ไฟล์) แสดงเอนทิตีระดับบนสุดมากกว่า 1 รายการ (เช่น คุณจับคู่ร้านอาหารกับบริการและเมนู) ให้อัปเดตการประทับเวลาเมื่อข้อมูลของเอนทิตีได้รับการอัปเดต
  • ในการเรียกที่เพิ่มขึ้น เราขอแนะนำอย่างยิ่งให้คุณตั้งค่าช่อง update_time อย่างชัดเจน
  • เมื่อมีการเรียกใช้เพิ่มขึ้น ระบบจะอัปเดตการประทับเวลาฟีดที่เกี่ยวข้อง (dateModified) ด้วยก่อนที่ Google จะเรียกข้อมูลอีกครั้ง

ตัวอย่าง

Google จะดึงข้อมูลไฟล์ต่อไปนี้เวลา 11:00 น. ในวันที่ 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" เนื่องจากฟีดแบบกลุ่มจะใช้เวลาในการประมวลผล โดยปกติฟีดเหล่านี้จะแสดงใน 2 วันหลังจากนั้น

แต่เวลา 13:00 น. ระบบของพาร์ทเนอร์จะอัปเดตหมายเลขโทรศัพท์ของร้านอาหาร ทำให้มีการโทรเพิ่มขึ้นดังต่อไปนี้ ซึ่ง 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) เวลา 23:00 น. ระบบจะดึงข้อมูลฟีดอีกครั้ง ร้านอาหารยังคงใช้เวอร์ชันเดิม (13:00 น. ของวันที่ 28 ธันวาคม) ระบบจึงเลิกใช้เอนทิตีนี้และเก็บเวอร์ชันปัจจุบันไว้ แต่เอนทิตีเมนูและบริการ จะอัปเดตเป็นเวอร์ชันใหม่

การประทับเวลาของ Sitemap

ส่วนหัวการตอบกลับ last-modified ในแผนผังเว็บไซต์ไม่ส่งผลต่อเวอร์ชันของเอนทิตี โดยจะส่งผลต่อเวลาที่ Google ดึงข้อมูลฟีด

แนวทางปฏิบัติแนะนำ

  • อัปเดตส่วนหัวการตอบกลับเฉพาะเมื่อไฟล์ทั้งหมดเป็นปัจจุบันและพร้อมสำหรับการดึงข้อมูล
  • ใช้ update_time และ delete_time แบบเพิ่มขึ้นอย่างชัดเจน
  • ตั้งค่า update_time, delete_time และ dateModified เป็นเมื่อมีการเปลี่ยนแปลงข้อมูลในฝั่งของคุณ