การชาร์ดดิ้ง (หรือแยกฟีดออกเป็นหลายๆ )
เมื่อใดควรใช้ชาร์ดดิ้ง
ฟีดมีขนาดเกิน 200 MB สำหรับ 1 ไฟล์ (หลังจากการบีบอัด gzip)
- ตัวอย่าง: ฟีดความพร้อมใช้งานที่สร้างขึ้นคือ 1 GB ควรเป็น ถูกชาร์ดไปยังไฟล์แยกต่างหาก 5+ ไฟล์ (หรือชาร์ด)
พื้นที่โฆษณาของพาร์ทเนอร์จะกระจายไปตามระบบและ/หรือภูมิภาค ซึ่งส่งผลให้กระทบยอดพื้นที่โฆษณาได้ยาก
- ตัวอย่าง: พาร์ทเนอร์มีพื้นที่โฆษณาในสหรัฐอเมริกาและสหภาพยุโรปที่อาศัยอยู่ในพื้นที่แยกกัน
ระบบต่างๆ ฟีดอาจสร้างขึ้นจาก 2 ไฟล์ (หรือชาร์ด) โดย 1 ไฟล์สำหรับสหรัฐอเมริกา
และ 1 สำหรับสหภาพยุโรปที่มี
nonce
เดียวกันและgeneration_timestamp
- ตัวอย่าง: พาร์ทเนอร์มีพื้นที่โฆษณาในสหรัฐอเมริกาและสหภาพยุโรปที่อาศัยอยู่ในพื้นที่แยกกัน
ระบบต่างๆ ฟีดอาจสร้างขึ้นจาก 2 ไฟล์ (หรือชาร์ด) โดย 1 ไฟล์สำหรับสหรัฐอเมริกา
และ 1 สำหรับสหภาพยุโรปที่มี
กฎทั่วไป
- ชาร์ดแต่ละรายการต้องไม่เกิน 200 MB สำหรับ 1 ไฟล์ (หลังจากการบีบอัด gzip)
- เราขอแนะนำให้มีชาร์ดไม่เกิน 20 รายการต่อฟีด หากคุณมีเหตุผลทางธุรกิจว่า หากต้องการมากกว่าจำนวนนั้น โปรดติดต่อทีมสนับสนุนเพื่อสอบถามวิธีการเพิ่มเติม
-
ต้องส่งระเบียนแต่ละรายการ (ออบเจ็กต์
Merchant
1 รายการ) ในชาร์ดเดียว ไม่สามารถแบ่งย่อยตามชาร์ดหลายรายการได้ แต่ไม่จําเป็นต้องส่งในชาร์ด ด้วย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 รายการสำหรับสหภาพยุโรป
ทำตามขั้นตอนด้านล่างเพื่อให้ฟีดได้รับการประมวลผลอย่างถูกต้อง
- กำหนดเวลาการอัปโหลดและกำหนดค่าแต่ละอินสแตนซ์ของพื้นที่โฆษณา ตามกำหนดการ
- กำหนดหมายเลขชาร์ดที่ไม่ซ้ำกันสำหรับแต่ละอินสแตนซ์ (เช่น US = N, EU = N + 1)
ตั้งค่า
total_shards
เป็นจำนวนชาร์ดทั้งหมด - เมื่อถึงเวลาอัปโหลดที่กำหนดไว้แต่ละครั้ง ให้เลือก
generation_timestamp
และnonce
ในFeedMetadata
ตั้งค่าอินสแตนซ์ทั้งหมดให้เก็บค่าเดียวกันสำหรับ 2 ช่องนี้generation_timestamp
ควรเป็นรายการปัจจุบันหรือในอดีตล่าสุด (โดยหลักการแล้ว ควรใช้การประทับเวลาฐานข้อมูลแบบอ่านที่ของพาร์ทเนอร์)
- หลังจากอัปโหลดชาร์ดทั้งหมดแล้ว Google จะจัดกลุ่มชาร์ดโดยใช้
generation_timestamp
และnonce
Google จะประมวลผลฟีดเป็น 1 แม้ว่าชาร์ดแต่ละรายการจะแสดง
พื้นที่โฆษณาของพาร์ทเนอร์ในภูมิภาคต่างๆ และควรอัปโหลดที่
ช่วงเวลาที่แตกต่างกันของวันตราบใดที่ 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" } ] } ] }