ขีดจำกัดโควต้า
Google Business Profile (GBP) API กำหนด
โควต้าสำหรับคำขอ API เพื่อให้มั่นใจว่ามีการใช้งานอย่างยุติธรรมและปกป้องความเสถียรของระบบ หากคำขอเกินขีดจำกัดโควต้า API จะตอบกลับด้วยรหัสสถานะ HTTP
429 Too Many Requests (หรือ RESOURCE_EXHAUSTED สำหรับ gRPC)
ขีดจำกัดโควต้าเริ่มต้น
ตารางต่อไปนี้แสดงขีดจำกัดโควต้ามาตรฐานสำหรับ Google Business Profile API โดยขีดจำกัด จะกำหนดไว้ใน 2 มิติ ดังนี้
- การค้นหาต่อนาที (QPM): ปกป้องความเสถียรของแบ็กเอนด์ด้วยการจำกัดการรับส่งข้อมูลที่เพิ่มขึ้นอย่างรวดเร็วในระยะสั้น
- การค้นหาต่อวัน (QPD): จัดการการใช้งานแพลตฟอร์มโดยรวมในแต่ละวัน
| API | จำกัดสูงสุด |
|---|---|
| Business Information API |
|
| Account Management API | 300 QPM |
| Performance API | 300 QPM |
| Verifications API | 300 QPM |
| Lodging API | 300 QPM |
| Place Actions API | 300 QPM |
| Notifications API | 300 QPM |
แนวทางปฏิบัติแนะนำเพื่อหลีกเลี่ยงข้อผิดพลาดเกี่ยวกับโควต้า
การส่งคำขออย่างต่อเนื่องและสม่ำเสมอตลอดทั้งวันจะช่วยป้องกันข้อผิดพลาดเกี่ยวกับโควต้าได้เป็นส่วนใหญ่ โปรดทำตามแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อให้แอปพลิเคชันซิงค์ข้อมูลได้อย่างน่าเชื่อถือ
ส่งคำขออย่างสม่ำเสมอ
แทนที่จะส่งคำขอจำนวนมากพร้อมกัน ให้กระจายคำขอออกไปในช่วงเวลาที่ยาวนานขึ้น ตัวอย่างเช่น ขีดจำกัด 300 QPM หมายถึงคำขอเฉลี่ย 5 รายการต่อวินาที การเพิ่มการหน่วงเวลาสั้นๆ ระหว่างคำขอจะช่วยป้องกันการรับส่งข้อมูลที่เพิ่มขึ้นอย่างฉับพลัน
Traffic distribution patterns:
Spiky traffic (Discouraged): High burst of requests followed by an idle period
Requests | ||| |||
| ||| |||
+---------------------------------
Time ──>
Even traffic (Recommended): Consistent rate of requests over time
Requests | | | | | | | | | |
| | | | | | | | | |
+---------------------------------
Time ──>import time # Pace requests to stay within the 300 QPM limit (5 requests/sec) for request in batch_requests: send_request(request) time.sleep(0.2) # 200ms delay ensures a smooth distribution
ใช้ Exponential Backoff พร้อม Jitter
เมื่อได้รับข้อผิดพลาด 429 Too Many Requests ให้ใช้
Exponential Backoff พร้อม Jitter เพื่อลองส่งคำขออีกครั้งโดยอัตโนมัติ แนวทางปฏิบัติมาตรฐานนี้
เกี่ยวข้องกับการรอช่วงเวลาสั้นๆ แบบสุ่มก่อนที่จะลองอีกครั้ง และค่อยๆ เพิ่มการหน่วงเวลา
สำหรับการลองอีกครั้งในครั้งต่อๆ ไป
import random import time from googleapiclient.errors import HttpError def call_api_with_retry(api_method, max_retries=5): base_delay = 1.0 for attempt in range(max_retries): try: return api_method.execute() except HttpError as e: if e.resp.status == 429: if attempt == max_retries - 1: raise e # Retry with exponential backoff and jitter sleep_time = random.uniform(0, base_delay * (2 ** attempt)) time.sleep(sleep_time) else: raise e
เพิ่มประสิทธิภาพการเข้าถึงข้อมูล
- แคชข้อมูลคงที่: จัดเก็บข้อมูลที่เปลี่ยนแปลงไม่บ่อยไว้ในเครื่องแทนที่จะค้นหา API ซ้ำๆ
- ใช้การแจ้งเตือน Pub/Sub: สมัครใช้บริการการแจ้งเตือน Pub/Sub เพื่อให้ฐานข้อมูล เป็นปัจจุบันแบบเรียลไทม์โดยไม่ต้องโพล API
-
ประมวลผลปลายทางที่มีการอ่านข้อมูลจำนวนมากตามลำดับ: หลีกเลี่ยงการดำเนินการคำขอพร้อมกันหลายรายการ
ไปยังปลายทางที่มีการอ่านข้อมูลจำนวนมาก เช่น
SearchListingsแต่ให้ประมวลผลงานตามลำดับ โดยใช้โทเค็นการแบ่งหน้าแทน
ขอเพิ่มโควต้า
ก่อนขอเพิ่มโควต้า ให้ตรวจสอบรูปแบบการใช้งานใน คอนโซล Google Cloud เพื่อให้แน่ใจว่าปริมาณคำขอไม่ได้กระจุกตัวโดยไม่จำเป็น
ทีม Google Business Profile จะตรวจสอบการใช้งานโควต้าเฉลี่ยของคุณเพื่อให้แน่ใจว่าคุณใช้ ขีดจำกัดปัจจุบันอย่างมีประสิทธิภาพ โดยปกติแล้วคำขอเพิ่มโควต้าจะถูกปฏิเสธในกรณีต่อไปนี้
- แอปพลิเคชันของคุณใช้งานไม่ถึงขีดจำกัด QPM ปัจจุบันอย่างสม่ำเสมอ
- การใช้งานเฉลี่ยของคุณน้อยกว่า 50% ของขีดจำกัด QPM ปัจจุบัน
- แอปพลิเคชันของคุณแสดงรูปแบบคำขอที่เพิ่มขึ้นอย่างรวดเร็วและไม่สม่ำเสมอแทนที่จะมีการกระจายคำขออย่างราบรื่น
ส่งคำขอ
หากคุณได้ใช้แนวทางปฏิบัติแนะนำเหล่านี้แล้วและยังต้องการโควต้าเพิ่มเติม ให้ส่งคำขอเพิ่มโควต้า Quota Increase Request
- เลือกคำขอเพิ่มโควต้า จากเมนูแบบเลื่อนลง
- ระบุชื่อบริษัท อีเมลติดต่อ และหมายเลขโปรเจ็กต์
หลังจากส่งแบบฟอร์มแล้ว ทีม Google Business Profile จะตรวจสอบคำขอและพิจารณา ว่าการเพิ่มโควต้านั้นเหมาะสมหรือไม่ หากคำขอได้รับอนุมัติ ระบบจะเพิ่มโควต้า หากคำขอถูกปฏิเสธ คุณจะได้รับเหตุผลการปฏิเสธ