ขีดจำกัดโควต้า

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
  • คำขอเริ่มต้น: 300 QPM
  • คำขอสร้างสถานที่ตั้ง: 300 QPD
  • คำขอ SearchGoogleLocation: 300 QPD
  • คำขออัปเดตสถานที่ตั้ง: 10000 QPD
  • การแก้ไข: 10 ครั้งต่อนาทีต่อ Google Business Profile (เพิ่มไม่ได้)
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

  1. เลือกคำขอเพิ่มโควต้า จากเมนูแบบเลื่อนลง
  2. ระบุชื่อบริษัท อีเมลติดต่อ และหมายเลขโปรเจ็กต์

หลังจากส่งแบบฟอร์มแล้ว ทีม Google Business Profile จะตรวจสอบคำขอและพิจารณา ว่าการเพิ่มโควต้านั้นเหมาะสมหรือไม่ หากคำขอได้รับอนุมัติ ระบบจะเพิ่มโควต้า หากคำขอถูกปฏิเสธ คุณจะได้รับเหตุผลการปฏิเสธ