ในฟีดกลุ่ม ระบบจะกำหนดเวอร์ชันของเอนทิตีผ่าน
ฟิลด์ 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&q
uot;
},
"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/newrestaur
ant/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": "FOODORDERI
NG"
},
"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/newrestaur
ant/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
เมื่อข้อมูลเปลี่ยนแปลง ในฝั่งของคุณ