คุณอาจต้องชาร์ดดิ้ง (หรือแบ่งฟีดออกเป็นหลายไฟล์) ทั้งนี้ขึ้นอยู่กับสินค้าคงคลัง
กรณีที่ควรใช้การแยกข้อมูล
ฟีดมีขนาดเกิน 200 MB สำหรับ 1 ไฟล์ (หลังจากการบีบอัด gzip)
- ตัวอย่าง: ฟีดความพร้อมที่สร้างขึ้นมีขนาด 1 GB ข้อมูลนี้ควรแบ่งออกเป็นไฟล์ (หรือกลุ่ม) แยกต่างหากอย่างน้อย 5 ไฟล์
พื้นที่โฆษณาของพาร์ทเนอร์กระจายอยู่ในระบบและ/หรือภูมิภาคต่างๆ ซึ่งทำให้การไกล่เกลี่ยพื้นที่โฆษณาเป็นเรื่องยาก
- ตัวอย่าง: พาร์ทเนอร์มีพื้นที่โฆษณาในสหรัฐอเมริกาและสหภาพยุโรปที่อยู่ในระบบแยกกัน ระบบอาจสร้างฟีดด้วยไฟล์ (หรือกลุ่ม) 2 ไฟล์ โดย 1 ไฟล์สำหรับสหรัฐอเมริกา และ 1 ไฟล์สำหรับสหภาพยุโรปที่มี
nonce
และgeneration_timestamp
เดียวกัน
- ตัวอย่าง: พาร์ทเนอร์มีพื้นที่โฆษณาในสหรัฐอเมริกาและสหภาพยุโรปที่อยู่ในระบบแยกกัน ระบบอาจสร้างฟีดด้วยไฟล์ (หรือกลุ่ม) 2 ไฟล์ โดย 1 ไฟล์สำหรับสหรัฐอเมริกา และ 1 ไฟล์สำหรับสหภาพยุโรปที่มี
กฎทั่วไป
- แต่ละกลุ่มต้องมีขนาดไม่เกิน 200 MB ต่อ 1 ไฟล์ (หลังจากการบีบอัด gzip)
- เราขอแนะนำให้ใช้ไม่เกิน 20 ข้อมูลพร็อพเพอร์ตี้ต่อฟีด หากคุณมีเหตุผลทางธุรกิจที่ต้องใช้จำนวนเงินมากกว่าจำนวนดังกล่าว โปรดติดต่อทีมสนับสนุนเพื่อขอทราบวิธีการเพิ่มเติม
-
เรคคอร์ดแต่ละรายการ (เช่น ออบเจ็กต์
Merchant
รายการเดียว) ต้องส่งในสhard เดียว ไม่สามารถแยกออกเป็นหลายสhard อย่างไรก็ตาม ไม่จำเป็นต้องส่งในข้อมูลพร็อพเพอร์ตี้ที่มีshard_number
เดียวกันสำหรับฟีดในอนาคต - คุณควรแบ่งข้อมูลให้เท่าๆ กันระหว่างกลุ่มข้อมูลเพื่อให้ไฟล์ที่แบ่งกลุ่มทั้งหมดมีขนาดใกล้เคียงกันเพื่อประสิทธิภาพที่ดียิ่งขึ้น
วิธีแบ่งกลุ่มฟีด
สําหรับไฟล์ (หรือกลุ่ม) แต่ละรายการ ให้ตั้งค่า FeedMetadata
เป็นค่าต่อไปนี้
processing_instruction
ตั้งค่าเป็นPROCESS_AS_COMPLETE
shard_number
ตั้งค่าเป็นกลุ่มปัจจุบันของฟีด (เริ่มต้นที่ 0 ถึงtotal_shards
- 1 โดยไม่มีการหยุดชะงัก)total_shards
ตั้งค่าเป็นจํานวนกลุ่มทั้งหมดของฟีด (เริ่มต้นที่ 1)nonce
ตั้งค่าเป็นตัวระบุที่ไม่ซ้ำกันซึ่งเหมือนกันในข้อมูลพร็อพเพอร์ตี้ทั้งหมดของฟีดเดียวกัน แต่แตกต่างจากค่าของฟีดอื่นๆnonce
ต้องเป็นจำนวนเต็มบวก (uint64
)generation_timestamp
คือการประทับเวลาในรูปแบบ Unix และ EPOCH ค่านี้ควรเหมือนกันในทุกกลุ่มของฟีด
แนะนำ: สําหรับไฟล์แต่ละไฟล์ (หรือกลุ่ม) ให้ตั้งชื่อไฟล์เพื่อระบุประเภทฟีด การประทับเวลา หมายเลขกลุ่ม และจํานวนกลุ่มทั้งหมด ข้อมูลควรมีขนาดใกล้เคียงกัน และระบบจะประมวลผลเมื่ออัปโหลดข้อมูลทั้งหมดแล้ว
Example:
“availability_feed_1574117613_001_of_002.json.gz”
ตัวอย่างฟีดความพร้อมจำหน่ายสินค้าที่แบ่งออกเป็นกลุ่ม
ชาร์ด 0
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "shard_number": 0, "total_shards": 3, "nonce": 111111, "generation_timestamp": 1524606581 }, "service_availability": [ { "availability": [ { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1577275200, "merchant_id": "merchant1", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" } ] } ] }
ชาร์ด 1
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "shard_number": 1, "total_shards": 3, "nonce": 111111, "generation_timestamp": 1524606581 }, "service_availability": [ { "availability": [ { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1577620800, "merchant_id": "merchant2", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" } ] } ] }
ชาร์ด 2
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "shard_number": 2, "total_shards": 3, "nonce": 111111, "generation_timestamp": 1524606581 }, "service_availability": [ { "availability": [ { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1576670400, "merchant_id": "merchant3", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" } ] } ] }
การใช้การแยกส่วนสำหรับพื้นที่โฆษณาที่กระจายของพาร์ทเนอร์
พาร์ทเนอร์อาจพบปัญหาในการรวมพื้นที่โฆษณาที่กระจายอยู่ในหลายระบบและ/หรือภูมิภาคไว้ในฟีดเดียว คุณสามารถใช้การแยกกลุ่มเพื่อแก้ปัญหาการไกล่เกลี่ยโดยการตั้งค่าแต่ละกลุ่มให้ตรงกับชุดพื้นที่โฆษณาของระบบแบบกระจายแต่ละระบบ
ตัวอย่างเช่น สมมติว่าสินค้าคงคลังของผู้ขายแบ่งออกเป็น 2 ภูมิภาค (สินค้าคงคลังในสหรัฐอเมริกาและสหภาพยุโรป) ซึ่งอยู่ใน 2 ระบบแยกกัน
พาร์ทเนอร์สามารถแบ่งฟีดแต่ละรายการออกเป็น 2 ไฟล์ (หรือชาร์ด) ดังนี้
- ฟีดผู้ขาย: 1 ข้อมูลสำหรับสหรัฐอเมริกา, 1 ข้อมูลสำหรับสหภาพยุโรป
- ฟีดบริการ: 1 ข้อมูลสำหรับสหรัฐอเมริกา 1 ข้อมูลสำหรับสหภาพยุโรป
- ฟีดความพร้อมจำหน่ายสินค้า: 1 ข้อมูลสำหรับสหรัฐอเมริกา, 1 ข้อมูลสำหรับสหภาพยุโรป
ทําตามขั้นตอนด้านล่างเพื่อให้ระบบประมวลผลฟีดอย่างถูกต้อง
- กำหนดเวลาการอัปโหลดและกำหนดค่าอินสแตนซ์ของพื้นที่โฆษณาแต่ละรายการให้เป็นไปตามกำหนดการ
- กําหนดหมายเลขกลุ่มที่ไม่ซ้ำกันสําหรับแต่ละอินสแตนซ์ (เช่น สหรัฐอเมริกา = N, สหภาพยุโรป = N + 1)
กําหนด
total_shards
เป็นจํานวนรวมของกลุ่ม - ในแต่ละเวลาที่กําหนดเวลาการอัปโหลดไว้ ให้ตัดสินใจเลือก
generation_timestamp
และnonce
ในFeedMetadata
ให้ตั้งค่าอินสแตนซ์ทั้งหมดให้มีค่าเดียวกันสำหรับ 2 ช่องนี้generation_timestamp
ควรเป็นปัจจุบันหรือที่ผ่านมาไม่นาน (ควรเป็นการประทับเวลาฐานข้อมูลที่อ่านของพาร์ทเนอร์)
- หลังจากอัปโหลดกลุ่มทั้งหมดแล้ว Google จะจัดกลุ่มกลุ่มผ่าน
generation_timestamp
และnonce
Google จะประมวลผลฟีดเป็นฟีดเดียว แม้ว่าแต่ละกลุ่มจะแสดงถึงพื้นที่โฆษณาของพาร์ทเนอร์ในภูมิภาคที่แตกต่างกันและอาจอัปโหลดในเวลาที่ต่างกันของวัน ตราบใดที่ generation_timestamp
เหมือนกันในทุกกลุ่ม
ตัวอย่างฟีดความพร้อมจำหน่ายสินค้าที่แบ่งออกเป็นกลุ่มตามภูมิภาค
ชาร์ด 0 - พื้นที่โฆษณาในสหรัฐอเมริกา
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "shard_number": 0, "total_shards": 2, "nonce": 111111, "generation_timestamp": 1524606581 }, "service_availability": [ { "availability": [ { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1577275200, "merchant_id": "US_merchant_1", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" } ] } ] }
กลุ่ม 1 - พื้นที่โฆษณาในสหภาพยุโรป
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "shard_number": 1, "total_shards": 2, "nonce": 111111, "generation_timestamp": 1524606581 }, "service_availability": [ { "availability": [ { "spots_total": 1, "spots_open": 1, "duration_sec": 3600, "service_id": "1000", "start_sec": 1577620800, "merchant_id": "EU_merchant_1", "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS" } ] } ] }