คุณอาจต้องชาร์ด (หรือแบ่งฟีดออกเป็นหลายไฟล์) ทั้งนี้ขึ้นอยู่กับสินค้าคงคลัง
กรณีที่ควรใช้การแยกข้อมูล
ฟีดมีขนาดเกิน 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_COMPLETEshard_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"
}
]
}
]
}