ขีดจำกัดและโควต้าช่วยปกป้องโครงสร้างพื้นฐานของ Google จากกระบวนการอัตโนมัติที่ใช้ Reports API ในทางที่ไม่เหมาะสม คำขอที่มากเกินไปจาก API อาจเกิดจากการพิมพ์ผิดที่ไม่มีอันตราย หรืออาจเกิดจากระบบที่ออกแบบมาอย่างไม่มีประสิทธิภาพซึ่งทำให้เกิดการเรียก API ที่ไม่จำเป็น ไม่ว่าสาเหตุจะเป็นอะไร การบล็อกการเข้าชมจากแหล่งที่มาหนึ่งๆ เมื่อถึงระดับหนึ่งเป็นสิ่งจำเป็นต่อสุขภาพโดยรวมของระบบ Google Workspace ซึ่งจะช่วยให้มั่นใจได้ว่าการดำเนินการของนักพัฒนาซอฟต์แวร์คนหนึ่งจะไม่ส่งผลเสียต่อชุมชนขนาดใหญ่
ในกรณีที่คำขอ API ไม่สำเร็จ คุณจะได้รับการตอบกลับเป็นรหัสสถานะ HTTP รหัสสถานะ 403 มีข้อมูลข้อผิดพลาดเกี่ยวกับ การป้อนข้อมูลที่ไม่ถูกต้อง และรหัสสถานะ HTTP 503 มีข้อมูลข้อผิดพลาด ที่ระบุว่าโควต้า API ใดที่เกิน การตอบกลับเหล่านี้ช่วยให้แอปพลิเคชันที่กำหนดเองตรวจพบข้อผิดพลาดเหล่านี้และดำเนินการอย่างเหมาะสม
หากคำขอต้องดำเนินการให้เสร็จสิ้นภายในระยะเวลาที่กำหนด ให้ส่งคำขอ แบบขนานหรือใช้หลายเธรดในแอปพลิเคชัน Java หรือ C# ตัวอย่างคำขอแบบขนานคือการขออีเมลเป็นชุดเล็กๆ จาก ผู้ใช้หลายรายแทนการเพิ่มหรือนำอีเมลจำนวนมากออกจากผู้ใช้รายเดียว พร้อมกัน ในกรณีของเธรด ให้ลองเริ่มต้นด้วย 10 เธรด โดยใช้ 1 เธรดต่ออีเมลของผู้ใช้ โปรดทราบว่าคำแนะนำเกี่ยวกับเธรดมีข้อดีข้อเสียและไม่ เหมาะกับสถานการณ์ API ทั้งหมด หากจำนวนคำขอสูงเกินไป ข้อผิดพลาดเกี่ยวกับโควต้าจะเกิดขึ้น
สำหรับข้อผิดพลาดทั้งหมดที่อิงตามเวลา (สูงสุด N รายการสำหรับ N วินาทีต่อเธรด) โดยเฉพาะข้อผิดพลาดรหัสสถานะ 503 เรา ขอแนะนำให้โค้ดของคุณดักจับข้อยกเว้นและใช้อัลกอริทึม Exponential Backoff เพื่อรอการหน่วงเวลาเล็กน้อยก่อนที่จะลองเรียกอีกครั้ง ตัวอย่าง Reports API สำหรับ 1 เธรดคือการรอ 5 วินาทีแล้วลองเรียก อีกครั้ง หากคำขอสำเร็จ ให้ทำซ้ำรูปแบบนี้สำหรับเธรดอื่นๆ หากคำขอที่ 2 ไม่สำเร็จ แอปพลิเคชันควร ลดความถี่ของคำขอลงจนกว่าการเรียกจะสำเร็จ เช่น เพิ่มการหน่วงเวลาเริ่มต้น 5 วินาทีเป็น 10 วินาที แล้วลองเรียก อีกครั้ง นอกจากนี้ ให้กำหนดขีดจำกัดการลองอีกครั้ง เช่น ลองส่งคำขออีกครั้ง 5-7 ครั้งโดยใช้เวลาหน่วงที่แตกต่างกันก่อนที่แอปพลิเคชันจะแสดงข้อผิดพลาดแก่ผู้ใช้
ขีดจำกัด
| หมวดหมู่ขีดจำกัด API | ขีดจำกัด |
|---|---|
| อัตรา QPS และ QPD ของรายงาน | API จำกัดจำนวนคำขอสำหรับโปรเจ็กต์ Google Cloud
ค่าเริ่มต้นที่ตั้งไว้ในคอนโซล Google Cloud คือ 2,400 คำขอต่อนาที
ต่อผู้ใช้ต่อโปรเจ็กต์ Google Cloud คุณสามารถเพิ่มขีดจำกัดนี้ได้จากหน้า
โควต้า Admin SDK API
ของโปรเจ็กต์ Google Cloud
หากเกินขีดจำกัดเหล่านี้ เซิร์ฟเวอร์จะแสดงรหัสสถานะ HTTP 503 code. ใช้อัลกอริทึม Exponential Backoff เมื่อลองส่งคำขออีกครั้ง |
ขีดจำกัดเพิ่มเติมสำหรับ activities.list |
API activities.list มีขีดจำกัดเพิ่มเติมคือ 250
คำค้นหาตัวกรองต่อนาที (15,000 คำค้นหาตัวกรองต่อชั่วโมง) คำค้นหาตัวกรอง
คือคำขอ API ที่มีพารามิเตอร์การค้นหาอย่างน้อย 1 รายการต่อไปนี้
|
| หมวดหมู่โควต้า API | โควต้า |
| maxResults | จำนวนระเบียนที่แสดงในแต่ละหน้าของการตอบกลับของ API อยู่ระหว่าง 0 ถึง 1,000 ระเบียน ค่าเริ่มต้นคือ 1,000 ระเบียน |
ขีดจำกัดประเภทอื่นๆ
| ขีดจำกัดประเภทอื่นๆ | ข้อจำกัดและหลักเกณฑ์ |
|---|---|
| รูปแบบข้อมูล ค่าเริ่มต้น | รูปแบบข้อมูลเริ่มต้นคือ JSON นอกจากนี้ API ยังรองรับรูปแบบ Atom ด้วย |
| คำขอที่ไม่ได้รับอนุญาต | Google ไม่อนุญาตคำขอที่ไม่ได้รับอนุญาตไปยัง API ระบบจะถือว่าคำขอ ไม่ได้รับอนุญาตหากไม่มีโทเค็นการให้สิทธิ์ ดูข้อมูลเพิ่มเติมได้ที่ การให้สิทธิ์คำขอ |
| ข้อความเตือน |
|
แนวทางปฏิบัติแนะนำสำหรับ activities.list
เราคาดหวังให้ใช้เมธอด
activities.list
สำหรับการตรวจสอบ **คำขอควรมีช่วงเวลา** โดยใช้พารามิเตอร์ startTime และ endTime เพื่อประสิทธิภาพที่ดีที่สุด ช่วงเวลาที่แคบลง
จะทำให้เวลาตอบกลับเร็วขึ้นอย่างมาก เมธอดนี้ไม่ได้มีไว้สำหรับการดึงข้อมูลบันทึกการตรวจสอบจำนวนมาก หากคุณใช้โควต้าคำขอตัวกรอง activities.list จนหมดเป็นประจำ
ให้พิจารณาตัวเลือกต่อไปนี้
- ตั้งค่าการส่งออกบันทึก Google Workspace ไปยัง BigQuery และใช้ API การค้นหา ที่มีประสิทธิภาพของ BigQuery เพื่อดึงและวิเคราะห์ข้อมูลที่ต้องการโดยไม่มีข้อจำกัดด้านโควต้า API
- ใช้คำขอที่ไม่ใช่ตัวกรองที่มีช่วงเวลาและทำการกรองฝั่งไคลเอ็นต์ (เช่น ทำตรรกะการกรองในแอปพลิเคชัน) แทนการใช้คำขอตัวกรอง วิธีนี้ช่วยให้คุณข้ามขีดจำกัดคำค้นหาตัวกรอง 250 รายการต่อนาทีได้ แต่คุณยังคงอยู่ภายใต้ขีดจำกัด 2,400 คำค้นหาต่อ นาทีต่อผู้ใช้ต่อโปรเจ็กต์ Google Cloud