การกำหนดเวอร์ชัน 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/somehotel" จะถือว่าฟีดข้อมูลใช้ สคีมาพื้นที่โฆษณา 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/somehotel" ทำให้เอนทิตีนี้เป็น เวอร์ชันเป็น 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/somehotel" จะถือว่าฟีดนั้นใช้ 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/somehotel" จึงทำให้เป็น เอนทิตีนี้มีเวอร์ชันเป็น 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 อย่างชัดเจน และมีค่ามากกว่า (ใหม่กว่า) เวอร์ชันก่อนหน้า (06: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 เมื่อข้อมูลเปลี่ยนแปลง ในฝั่งของคุณ