การเพิ่มประสิทธิภาพโควต้าเป็นสิ่งจําเป็นสําหรับแอปพลิเคชันที่ใช้ Display & Video 360 API การเพิ่มประสิทธิภาพการใช้โควต้าจะช่วยปรับปรุงประสิทธิภาพด้วยการปรับคำขอ API ให้มีประสิทธิภาพยิ่งขึ้น และช่วยหลีกเลี่ยงข้อผิดพลาดที่แสดงเมื่อเกินขีดจำกัดอัตราที่กำหนด
หน้านี้แสดงรายละเอียดแนวทางปฏิบัติแนะนำทั่วไปและไฮไลต์ฟีเจอร์เสริมใน Display & Video 360 API ที่ช่วยลดความจําเป็นในการใช้โควต้า
ส่งคําขอพร้อมกันกับผู้ลงโฆษณาหลายราย
วิธีการส่วนใหญ่ใน Display & Video 360 API จะระบุผู้ลงโฆษณาใน URL นอกเหนือจากโควต้าระดับโปรเจ็กต์แล้ว ระบบจะบังคับใช้ขีดจํากัดอัตรา"ต่อผู้ลงโฆษณาต่อการเรียกใช้ 1 ครั้ง" ที่เข้มงวดมากขึ้นสําหรับวิธีการเหล่านี้เมื่อทำการเรียกใช้โดยระบุผู้ลงโฆษณารายเดียวกัน
หากต้องการเพิ่มประสิทธิภาพสำหรับโควต้านี้ ให้จำกัดคำขอที่ส่งพร้อมกันไว้เฉพาะคำขอที่ระบุผู้ลงโฆษณารายอื่น
ใช้พารามิเตอร์ pageSize
, filter
และ orderBy
ใช้เมธอด list
แทนเมธอด get
เมื่อดึงข้อมูลหลายแหล่ง
การเรียกใช้ list
อาจยังใช้โควต้าจำนวนมากเนื่องจากข้อจำกัดด้านขนาดหน้าเว็บ
เพิ่มประสิทธิภาพคําขอ list
ทั้งหมดโดยการตั้งค่าพารามิเตอร์ pageSize
เป็นค่าสูงสุดที่อนุญาต ขนาดหน้าเริ่มต้นของเมธอดที่ใช้เมื่อไม่ได้ตั้งค่าพารามิเตอร์อาจน้อยกว่าค่าสูงสุดที่อนุญาตและต้องใช้คำขอเพิ่มเติมเพื่อดึงข้อมูลรายการทรัพยากรอย่างละเอียด
หากต้องการดึงข้อมูลเฉพาะชุดย่อยของคำตอบรายการเต็ม คุณสามารถเพิ่มประสิทธิภาพการใช้โควต้าได้โดยใช้พารามิเตอร์ filter
และ orderBy
ที่ไม่บังคับ
พารามิเตอร์ filter
ช่วยให้คุณจํากัดทรัพยากรที่ดึงข้อมูลโดยคําเรียก list
ไว้เฉพาะทรัพยากรที่มีพร็อพเพอร์ตี้เป็นไปตามนิพจน์ที่ระบุ พารามิเตอร์นี้มีประโยชน์เมื่อพยายามดึงข้อมูลต่อไปนี้
- ทรัพยากรที่เฉพาะเจาะจงซึ่งมีรหัสที่ไม่รู้จักแต่ทราบพร็อพเพอร์ตี้ หากค้นหาแหล่งข้อมูลที่เจาะจง คุณสามารถกรองรายการที่แสดงตามพร็อพเพอร์ตี้ที่ทราบของแหล่งข้อมูลที่ต้องการได้ ตัวอย่างเช่น การกรองรายการโฆษณาตาม
displayName
ที่ทราบ ครีเอทีฟโฆษณาตามcreativeType
ที่คาดไว้ และแหล่งที่มาของพื้นที่โฆษณาตามexchange
ที่เกี่ยวข้อง - แหล่งข้อมูลที่เชื่อมโยง ทรัพยากรใน Display & Video 360 มักเชื่อมโยงกัน คุณสามารถใช้ตัวกรองเพื่อจำกัดทรัพยากรที่แสดงผลให้แสดงเฉพาะทรัพยากรที่มีความสัมพันธ์กับทรัพยากรอื่น ตัวอย่างเช่น การดึงใบสั่งซื้อการใส่โฆษณาทั้งหมดที่อยู่ภายใต้
campaignId
ที่เฉพาะเจาะจง และครีเอทีฟโฆษณาทั้งหมดที่กำหนดให้กับรายการโฆษณา - เฉพาะทรัพยากรที่มีพร็อพเพอร์ตี้ที่นําไปใช้ดำเนินการได้ ฟังก์ชันการทำงานของ API ช่วยให้คุณตรวจสอบสถานะของทรัพยากรและดำเนินการตามโปรแกรมได้อย่างง่ายดาย เมื่อใช้ตัวกรอง คุณจะเรียกใช้
list
เพื่อรับเฉพาะทรัพยากรที่จำเป็นต่อการดำเนินการได้ ตัวอย่างเช่น ดึงข้อมูลรายการโฆษณาทั้งหมดที่แสดงlineItemWarningMessage
ที่นําไปใช้ดำเนินการได้ คําสั่งซื้อการแทรกทั้งหมดที่อัปเดตแล้วนับตั้งแต่วันที่และเวลาหนึ่งๆ หรือครีเอทีฟโฆษณาทั้งหมดที่approvalStatus
ดำเนินการไม่สําเร็จ
พารามิเตอร์ orderBy
ช่วยให้คุณจัดเรียงทรัพยากรที่ดึงข้อมูลตามพร็อพเพอร์ตี้ที่เฉพาะเจาะจง โดยขึ้นหรือลงก็ได้ orderBy
โดยเฉพาะเมื่อใช้ร่วมกับ filter
สามารถใช้เพื่อจำกัดจำนวนหน้าที่ต้องไปยังหน้าต่างๆ ก่อนพบทรัพยากรที่ต้องการ นอกจากนี้ คุณยังดูขอบเขตบนและล่างของรายการทรัพยากรได้อย่างง่ายดาย ตัวอย่างเช่น การจัดเรียงตาม updateTime
จะช่วยให้คุณค้นหารายการโฆษณาหรือคําสั่งซื้อการแทรกที่อัปเดตล่าสุดของผู้ลงโฆษณาได้อย่างรวดเร็ว
ใช้ฟังก์ชันแบบกลุ่มและแบบทั่วทั้งทรัพยากร
Display & Video 360 API มีฟังก์ชันแบบเป็นกลุ่มและแบบทั่วทั้งทรัพยากรจํานวนมากที่ดําเนินการต่างๆ มากมายด้วยคําขอเดียว ตัวอย่างของฟังก์ชันประเภทเหล่านี้ ได้แก่
- การแก้ไขเว็บไซต์หลายรายการที่อยู่ในช่องเดียวกันพร้อมกัน ช่องหนึ่งๆ สามารถกำหนดเว็บไซต์ได้หลายพันเว็บไซต์ คุณสามารถใช้คําขอ
bulkEdit
หรือreplace
รายการเดียวเพื่อเพิ่มและนําเว็บไซต์หลายรายการออก หรือแทนที่เนื้อหาทั้งหมดของช่องได้ แทนที่จะต้องจัดการรายการเว็บไซต์ของช่องด้วยคําขอcreate
หรือdelete
แยกต่างหาก - การจัดการชุดเครื่องมือการกําหนดเป้าหมายทั้งหมดของผู้ลงโฆษณา ชุดการกำหนดเป้าหมายของทรัพยากรได้รับการกำหนดให้กับการกำหนดเป้าหมายหลายประเภท ฟังก์ชันการกําหนดเป้าหมายระดับทรัพยากร เช่น
listAssignedTargetingOptions
และeditAssignedTargetingOptions
ในบริการadvertisers
ช่วยให้คุณเรียกดู สร้าง และนําการกําหนดเป้าหมายหลายประเภทออกได้ในคําขอเดียว ซึ่งจะช่วยลดต้นทุนโควต้าในการตั้งค่าชุดการกําหนดเป้าหมายของผู้ลงโฆษณาเป็นคําขอเดียว - การตั้งค่าข้อจํากัดการกําหนดเป้าหมายเดียวกันในหลายรายการโฆษณา หากต้องการทําการเปลี่ยนแปลงการกําหนดเป้าหมายเดียวกันในหลายรายการโฆษณาพร้อมกัน คุณทําได้โดยใช้คําขอ
advertisers.lineItems.bulkEditAssignedTargetingOptions
เดียว - การเปิดใช้งานหรือหยุดรายการโฆษณาหลายรายการชั่วคราว รายการโฆษณาต้องเปิดใช้งานหลังจากสร้างแล้วจึงจะเริ่มแสดงได้ หากสร้างรายการโฆษณาหลายรายการติดต่อกันอย่างรวดเร็ว คุณสามารถเปิดใช้งานรายการโฆษณาทั้งหมดได้ด้วยการขอ
advertisers.lineItems.bulkUpdate
รายการเดียว คุณใช้วิธีการเดียวกันนี้เพื่อหยุดรายการโฆษณาหลายรายการชั่วคราวเพื่อไม่ให้แสดงได้
แคชและตรวจสอบรหัสที่ใช้เป็นประจำ
การดำเนินการหลายอย่างใน Display & Video 360 API ต้องใช้รหัสทรัพยากรที่ดึงข้อมูลผ่าน API เอง ซึ่งรวมถึงรหัสตัวเลือกการกำหนดเป้าหมาย รหัสกลุ่มเป้าหมายของ Google และอื่นๆ เราขอแนะนำให้คุณจัดเก็บรหัสเหล่านี้ไว้ในเครื่องเพื่อหลีกเลี่ยงการดึงรหัสจาก API ทุกครั้งที่ใช้
อย่างไรก็ตาม ทรัพยากรบางอย่างอาจเลิกใช้งาน ลบออก หรือทำให้ใช้งานไม่ได้ การพยายามใช้รหัสสําหรับทรัพยากรเหล่านี้อาจแสดงข้อผิดพลาด ดังนั้น เราขอแนะนำให้คุณตรวจสอบรหัสที่แคชไว้ทั้งหมดทุกสัปดาห์โดยใช้วิธีการ get
หรือ list
ที่กรองแล้วตามความเหมาะสมเพื่อยืนยันว่ายังเรียกข้อมูลได้และมีสถานะตามที่คาดไว้
ใช้ Exponential Backoff สําหรับการดำเนินการที่ใช้เวลานาน
ขณะตรวจสอบว่าการดำเนินการที่ใช้เวลานาน เช่น งานดาวน์โหลด SDF เสร็จสิ้นแล้วหรือไม่ ให้ใช้กลยุทธ์การถดถอยแบบทวีคูณเพื่อลดความถี่และจำนวนคำขอทั้งหมดที่ส่ง
Exponential Backoff เป็นกลยุทธ์การจัดการข้อผิดพลาดมาตรฐานสําหรับแอปพลิเคชันเครือข่ายที่ไคลเอ็นต์จะลองส่งคําขออีกครั้งเป็นระยะๆ เมื่อเวลาผ่านไป หากใช้อย่างถูกต้อง Exponential Backoff จะเพิ่มประสิทธิภาพในการใช้แบนด์วิดท์ ลดจำนวนคำขอที่จําเป็นต่อการตอบกลับที่ประสบความสําเร็จ และเพิ่มปริมาณงานของคําขอในสภาพแวดล้อมแบบพร้อมกันให้สูงสุด
คุณดูกลยุทธ์ Exponential Backoff ที่ใช้งานกับไลบรารีของไคลเอ็นต์ได้ตัวอย่างโค้ดการดาวน์โหลด SDF ขั้นตอนทีละขั้นตอนในการใช้ Exponential Backoff แบบง่ายมีดังนี้
- ส่งคําขอ
sdfdownloadtasks.operations.get
ไปยัง API - เรียกข้อมูลออบเจ็กต์การดำเนินการ
- หากช่อง
done
ไม่ใช่ "จริง" แสดงว่าคุณควรลองส่งคำขออีกครั้ง - โปรดรอ 5 วินาที + จำนวนมิลลิวินาทีแบบสุ่ม แล้วลองส่งคำขออีกครั้ง
- หากช่อง
- เรียกข้อมูลออบเจ็กต์การดำเนินการ
- หากช่อง
done
ไม่ใช่ "จริง" แสดงว่าคุณควรลองส่งคำขออีกครั้ง - รอ 10 วินาที + จำนวนมิลลิวินาทีแบบสุ่ม แล้วลองส่งคำขออีกครั้ง
- หากช่อง
- เรียกข้อมูลออบเจ็กต์การดำเนินการ
- หากช่อง
done
ไม่ใช่ "จริง" แสดงว่าคุณควรลองส่งคำขออีกครั้ง - รอ 20 วินาที + จำนวนมิลลิวินาทีแบบสุ่ม แล้วลองส่งคำขออีกครั้ง
- หากช่อง
- เรียกข้อมูลออบเจ็กต์การดำเนินการ
- หากช่อง
done
ไม่ใช่ "จริง" แสดงว่าคุณควรลองส่งคำขออีกครั้ง - รอ 40 วินาที + จำนวนมิลลิวินาทีแบบสุ่ม แล้วลองส่งคำขออีกครั้ง
- หากช่อง
- เรียกข้อมูลออบเจ็กต์การดำเนินการ
- หากช่อง
done
ไม่ใช่ "จริง" แสดงว่าคุณควรลองส่งคำขออีกครั้ง - รอ 80 วินาที + จำนวนมิลลิวินาทีแบบสุ่ม แล้วลองส่งคำขออีกครั้ง
- หากช่อง
- ทําตามรูปแบบนี้จนกว่าออบเจ็กต์การค้นหาจะอัปเดตหรือถึงเวลาสูงสุด