W tym dokumencie znajdziesz limity, które obowiązują w Merchant API.
Merchant API używa limitów, aby zapewnić stabilne i uczciwe środowisko dla wszystkich użytkowników. Limity uniemożliwiają jednemu użytkownikowi interfejsu API nadmierne obciążanie systemu, co zapewnia wysoką wydajność. Znajomość tych limitów jest kluczowa w zarządzaniu danymi produktów i skalowaniu firmy w Google.
Ogólne pojęcia
Limity Merchant API są zarządzane za pomocą grup limitów.
Metody interfejsu API są mapowane na grupy limitów. Struktura tego mapowania może się różnić:
- Jedna metoda na grupę: niektóre grupy limitów dotyczą tylko jednej metody interfejsu API.
Na przykład metoda dotycząca źródeł danych o produktach
accounts.dataSources.listma własną grupę limitów. - Wiele metod na grupę (łączenie): powiązane metody są często łączone w jedną grupę limitów. Wszystkie metody w tej grupie mają te same limity dzienne i na minutę. Typowe przykłady:
- Grupowanie wszystkich operacji odczytu dla powiązanych metod i zasobów, np.
merchant-accounts-read-methods. - Grupowanie wszystkich operacji zapisu dla powiązanych metod i zasobów, np.
merchant-accounts-write-methods.
- Grupowanie wszystkich operacji odczytu dla powiązanych metod i zasobów, np.
Każde wywołanie metody liczy się raz, niezależnie od jego typu. Żądanie list dotyczące 250 produktów liczy się tylko raz, a nie jako 250 żądań get.
Wbudowane grupowanie HTTP
nie wpływa na limit. Każde pojedyncze żądanie w pakiecie żądań liczy się jako jedno w ramach limitu. Na przykład żądanie zbiorcze zawierające 500 żądań insert jest rozliczane jako 500 pojedynczych żądań metody insert.
Wyjątek w przypadku grupowania w regionie: wyspecjalizowane metody grupowania w regionie
(batchCreate,
batchUpdate,
batchDelete)
liczą się jako jedno wywołanie interfejsu API w ramach grupy limitów merchant_regions niezależnie od liczby operacji w regionie zawartych w ładunku.
Aby skutecznie zarządzać integracją, sprawdź konkretną grupę limitów powiązaną z każdą metodą interfejsu API, której chcesz używać. Te informacje znajdziesz w metodzie listy limitów. Więcej informacji znajdziesz w sekcji Monitorowanie i widoczność.
Zaktualizuj zasadę
Merchant API egzekwuje te zasady dotyczące aktualizacji:
- Domyślnie możesz aktualizować produkty maksymalnie 2 razy dziennie. Aby zachować zgodność z limitem na minutę, rozłóż wywołania równomiernie w ciągu dnia.
- Domyślnie możesz aktualizować subkonta maksymalnie 2 razy dziennie. Dzienny limit aktualizacji subkont to łączny limit oparty na łącznej liczbie dozwolonych subkont.
- Domyślnie możesz wywoływać metody źródeł danych dla subkont, takie jak
listczycreate, maksymalnie 2 razy dziennie na subkonto.
Limity liczby żądań
Każda grupa limitów ma 2 rodzaje limitów (i dziennego wykorzystania):
- Limit dzienny (
quotaLimit): maksymalna liczba żądań dozwolonych dziennie. Limity dzienne resetują się o 12:00 w południe czasu UTC. - Limit na minutę (
quotaMinuteLimit): maksymalna liczba żądań dozwolonych na minutę, która kontroluje częstotliwość żądań. Limity na minutę korzystają z ruchomego okna, w którym okres egzekwowania rozpoczyna się w momencie wykonania pierwszego wywołania interfejsu API dla danej metody i zasobu. Jeśli na przykład wykonasz wywołanie o 10:01:30, okno limitu na minutę dla tej metody będzie trwało do 10:02:30. - Dzienny limit wykorzystania (
quotaUsage): liczba żądań, które zostały już wysłane i wliczone do limitu dziennego na bieżący dzień. Jeśli to pole jest puste, oznacza to, że w tej grupie nie wykorzystano jeszcze żadnego limitu.
3 opisane wcześniej pola (quotaLimit,
quotaMinuteLimit, i quotaUsage) znajdziesz w odpowiedzi metody
quotas.list.
Konkretne limity dzienne i na minutę znacznie się różnią w zależności od grupy limitów. Operacje o większej przewidywanej liczbie lub niższym koszcie systemowym, takie jak odczytywanie danych o produktach, mają zwykle wyższe limity. Z kolei bardziej intensywne lub wrażliwe operacje, takie jak modyfikacje konta, mogą mieć niższe limity.
Przydział limitów i hierarchia
W tej sekcji wyjaśniamy, w imieniu kogo Merchant API śledzi i stosuje wykorzystanie limitów:
Zasadniczo limit jest naliczany na podstawie użytkownika, który wysyła żądanie do interfejsu API.
- Konta samodzielne: w przypadku kont samodzielnych uwierzytelnianie wywołania interfejsu API powoduje, że żądanie jest wliczane do limitu tego konta.
- Przykład: sprzedawca Sklep obuwniczy A uwierzytelnia się
za pomocą własnego konta usługi, aby wywołać metodę
products.insertkierowaną na własne konto (accounts/12345). Limit jest wykorzystywany z puli limitów Sklepu obuwniczego A's.
- Przykład: sprzedawca Sklep obuwniczy A uwierzytelnia się
za pomocą własnego konta usługi, aby wywołać metodę
- Konta zaawansowane: uwierzytelnianie jako
konto zaawansowane
powoduje wykorzystanie limitu z puli konta zaawansowanego, nawet jeśli kierujesz na
subkonto.
- Przykład: agencja Konto zarządzania sprzedażą detaliczną (identyfikator konta zaawansowanego: 12345) zarządza subkontem Sklep odzieżowy B (identyfikator konta: 11111).
Agencja uwierzytelnia się za pomocą własnych danych logowania i wywołuje metodę
products.insertkierowaną na Sklep odzieżowy B (accounts/11111). Limit jest wykorzystywany z puli konta nadrzędnego agencji (identyfikator konta zaawansowanego: 12345), a nie z puli subkonta.
- Przykład: agencja Konto zarządzania sprzedażą detaliczną (identyfikator konta zaawansowanego: 12345) zarządza subkontem Sklep odzieżowy B (identyfikator konta: 11111).
Agencja uwierzytelnia się za pomocą własnych danych logowania i wywołuje metodę
- Subkonta: gdy wywołania interfejsu API są uwierzytelniane za pomocą danych logowania subkonta, limit jest naliczany z puli tego subkonta. Działa to tak samo jak w przypadku konta samodzielnego, mimo że jest ono zarządzane przez nadrzędne konto zaawansowane.
- Przykład: w tej samej konfiguracji co wcześniej, jeśli Sklep odzieżowy B
(identyfikator konta: 11111) uwierzytelnia się za pomocą danych logowania skonfigurowanych specjalnie
dla subkonta, aby wywołać metodę
products.insertkierowaną na własne konto (accounts/11111), limit jest wykorzystywany z puli limitów Sklepu odzieżowego B , a pula konta nadrzędnego agencji pozostaje nienaruszona.
- Przykład: w tej samej konfiguracji co wcześniej, jeśli Sklep odzieżowy B
(identyfikator konta: 11111) uwierzytelnia się za pomocą danych logowania skonfigurowanych specjalnie
dla subkonta, aby wywołać metodę
Wyjątki od ogólnych reguł
Istnieje kilka wyjątków od ogólnych reguł przydziału limitów:
- Accounts.list:
Limit dla tej metody jest naliczany na podstawie uwierzytelnionego użytkownika lub
konta usługi, które wykonuje wywołanie, a nie na podstawie identyfikatora konta Merchant Center.
Wykorzystanie limitu nie będzie widoczne na standardowej
stronie diagnostyki interfejsu API Merchant Center.
Jeśli masz konto zaawansowane, zalecamy używanie metody
accounts.listSubaccounts, która jest wliczana do limitu konta zaawansowanego. - Metody Issueresolution: te metody zawsze są wliczane do limitu konta, którego dotyczą problemy, nawet jeśli żądanie jest uwierzytelniane przez inne konto.
Hierarchia przydziału
Usługi porównywania cen (CSS): usługi porównywania cen to witryny, które agregują oferty produktów i kierują użytkowników do witryn sprzedawców, gdzie mogą dokonać zakupu. Podczas wykonywania wywołań interfejsu API limity są stosowane do konkretnej grupy usług porównywania cen, domeny usługi porównywania cen, konta lub subkonta, w przypadku których następuje uwierzytelnianie.
Przykłady:
- Grupa usług porównywania cen o nazwie Europe Shopping Group (identyfikator konta: 10001) chce wyświetlić listę powiązanych domen usług porównywania cen. Uwierzytelnianie za pomocą własnych danych logowania w celu wykonania tego wywołania interfejsu API powoduje, że limit jest wykorzystywany bezpośrednio z puli limitów Europe Shopping Group.
- Domena usługi porównywania cen TopDeals CSS (identyfikator konta: 20002) uwierzytelnia się, aby wywołać metodę kierowaną na jedno z powiązanych kont sprzedawców (
accounts/30003) w celu przypisania etykiety. Limit jest wykorzystywany z puli limitów TopDeals CSS, a nie z puli konta sprzedawcy.
Platformy handlowe: platformy handlowe to platformy internetowe, na których działa wielu sprzedawców indywidualnych. Działają one jako specjalne konta zaawansowane, które umożliwiają tworzenie osobnych subkont dla każdego sprzedawcy.
Ten diagram przedstawia hierarchię grup usług porównywania cen, usług porównywania cen, platform handlowych, kont zaawansowanych, kont samodzielnych i subkont.

Automatyczne dostosowywanie limitów
Merchant API ma automatyczny system zarządzania limitami w przypadku określonych usług, który dostosowuje limity dla rozwijających się sprzedawców na podstawie wykorzystania, oferty i rozmiaru konta. Merchant API codziennie ponownie oblicza te limity.
Grupy limitów uwzględnione w automatycznych dostosowaniach limitów:
Usługi związane z produktami
- Wszystkie grupy limitów metod powiązanych z zasobami
productsiproductInputs. - Dzienny limit wywołań jest zwykle ustawiany na 2-krotność limitu ofert sprzedawcy. Zakłada się, że sprzedawca może potrzebować aktualizować każdy produkt maksymalnie 2 razy dziennie.
- Poszczególne produkty można aktualizować więcej niż 2 razy, ale łączna liczba dziennych wywołań interfejsu API nie może przekraczać łącznego dziennego limitu wywołań.
Usługi związane z kontami
- Wszystkie grupy limitów metod powiązanych z różnymi szczegółowymi zasobami związanymi z kontami w Merchant API.
- Dzienny limit wywołań jest ustawiany na maksymalną liczbę subkont dozwolonych na danym koncie. Umożliwia to maksymalnie 2 wywołania odczytu na subkonto dziennie.
Usługi związane ze źródłami danych
- Wszystkie grupy limitów metod powiązanych z zasobami związanymi ze źródłami danych w Merchant API, takimi jak
listczycreate, które konto zaawansowane wykonuje na swoich subkontach. - Dzienny limit wywołań jest zwykle ustawiany na 2-krotność liczby subkont konta zaawansowanego. Zakłada się, że sprzedawca może aktualizować źródła danych każdego subkonta maksymalnie 2 razy dziennie.
Automatyczne dostosowywanie limitów dotyczy tylko opisanych wcześniej usług. Inne usługi mają limit domyślny, a wszelkie zwiększenia limitu trzeba zgłaszać ręcznie. Więcej informacji znajdziesz w sekcji Proces zwiększania limitu.
Co się stanie po przekroczeniu limitów
Po przekroczeniu limitu w odpowiedziach interfejsu API i na stronie diagnostyki na koncie Merchant Center pojawią się błędy:
- Na minutę:
quota/request_rate_too_high
{
"error": {
"code": 429,
"message": "Quota per minute exceeded. Please distribute your requests over a longer time period. For more information check https://developers.google.com/merchant/api/guides/quotas-limits",
"status": "RESOURCE_EXHAUSTED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "quotaExceeded",
"domain": "merchantapi.googleapis.com",
"metadata": {
"HELP_CENTER_LINK": "https://developers.google.com/merchant/api/guides/quotas-limits",
"REASON": "QUOTA_REQUEST_RATE_TOO_HIGH"
}
}
]
}
}
- Na dzień:
quota/daily_limit_exceeded
{
"error": {
"code": 429,
"message": "Daily request quota exceeded. Please reduce number of requests. For more information check https://developers.google.com/merchant/api/guides/quotas-limits",
"status": "RESOURCE_EXHAUSTED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "quotaExceeded",
"domain": "merchantapi.googleapis.com",
"metadata": {
"HELP_CENTER_LINK": "https://developers.google.com/merchant/api/guides/quotas-limits",
"REASON": "QUOTA_TOO_MANY_REQUESTS"
}
}
]
}
}
Te błędy są związane z limitami Merchant Center, a nie z limitami Merchant API. Możesz poprosić o dodatkowy limit produktów, plików danych lub subkont:
too_many_items: przekroczono limit sprzedawcytoo_many_subaccounts: osiągnięto maksymalną liczbę subkont
Monitorowanie i widoczność
Aby sprawdzić bieżące limity wywołań i wykorzystanie konta, wywołaj
quotas.list z
nazwą konta.
POST https://merchantapi.googleapis.com/quota/v1/accounts/{ACCOUNT_ID}/quotas
Content-Type: application/json
Authorization: Bearer {ACCESS_TOKEN}
Zastąp te elementy:
ACCOUNT_ID: identyfikator w Merchant CenterACCESS_TOKEN: token autoryzacji do wykonania wywołania interfejsu API
Po pomyślnym wysłaniu żądania interfejs API zwraca listę zasobów
quotaGroups
zawierających zasób name grupy limitów, różne
limity i metody, do których stosuje się limit grupy.
{
"quotaGroups": [
{
"name": "accounts/{ACCOUNT_ID}/quotas/merchant-quota-listquotagroups",
"quotaUsage": "2",
"quotaLimit": "1000",
"methodDetails": [
{
"method": "quotaservice.listquotagroups",
"version": "v1",
"subapi": "quota",
"path": "quota/v1/quotaservice.listquotagroups"
}
],
"quotaMinuteLimit": "10"
},
{
"name": "accounts/{ACCOUNT_ID}/quotas/merchant-commission-group-list",
"quotaLimit": "10000",
"methodDetails": [
{
"method": "commissiongroupservice.listcommissiongroups",
"version": "v1",
"subapi": "youtube",
"path": "youtube/v1/commissiongroupservice.listcommissiongroups"
}
],
"quotaMinuteLimit": "60"
},
{
"name": "accounts/{ACCOUNT_ID}/quotas/merchant-merchantreviews-list",
"quotaLimit": "20000000",
"methodDetails": [
{
"method": "merchantreviewsservice.listmerchantreviews",
"version": "v1",
"subapi": "reviews",
"path": "reviews/v1/merchantreviewsservice.listmerchantreviews"
}
],
"quotaMinuteLimit": "60000"
}
]
}
Proces zwiększania limitu
Aby poprosić o dodatkowy limit, otwórz formularz Kontakt z zespołem pomocy, w polu „Jaki jest problem lub pytanie?” wybierz Prośba o zwiększenie limitu i wypełnij wszystkie wymagane pola, w tym identyfikator Merchant Center, metody docelowe i uzasadnienie biznesowe.
- W przypadku zasobów z automatycznymi limitami (
products,accountsidatasourcesdla kont zaawansowanych): możesz poprosić tylko o tymczasowe zwiększenie limitu w specjalnych sytuacjach, takich jak wprowadzenie na nowy rynek lub w okresach dużego ruchu. W przypadku tych typów zasobów nie akceptujemy próśb o stałe zwiększenie limitu. - W przypadku wszystkich innych zasobów bez automatycznych limitów: w razie potrzeby poproś o zwiększenie limitu.
Zalecamy okresowe sprawdzanie limitów, aby mieć pewność, że masz wystarczający limit na potrzeby implementacji, i aby zobaczyć, jak limit jest dostosowywany automatycznie.
Użyj metody quotas.list, aby sprawdzić bieżący dzienny limit, limit na minutę i bieżące dzienne wykorzystanie dla każdej grupy metod interfejsu API.
Sprawdzone metody
Wdrożenie tych sprawdzonych metod pomoże zapewnić płynne działanie integracji, uniknąć nieoczekiwanych błędów związanych z limitami i efektywnie wykorzystywać zasoby Merchant Center.
Optymalizacja dystrybucji żądań
- Równomierne rozłożenie żądań: unikaj wysyłania dużych serii żądań. Rozłóż dzienne wywołania interfejsu API równomiernie w ciągu dnia, aby nie przekraczać limitów na minutę (
quotaMinuteLimit). - Proaktywne ograniczanie: wdroż w aplikacji ograniczanie liczby żądań po stronie klienta. Nie polegaj wyłącznie na serwerach Google, które odrzucają nadmierny ruch. Kontroluj częstotliwość wniosków u źródła.
Prawidłowa obsługa błędów
- Obsługa kodu HTTP 429: aplikacja musi być przygotowana na obsługę błędów 429 Too Many Requests (
quota/request_rate_too_high). - Wzrastający czas do ponowienia z losowym opóźnieniem: podczas ponawiania nieudanych żądań (zwłaszcza po otrzymaniu kodu 429) używaj wzrastającego czasu do ponowienia (zwiększającego się czasu oczekiwania) i dodaj „losowe opóźnienie” (losowe opóźnienie). Losowe opóźnienie zapobiega „burzom ponowień”, w których wiele instancji klienta ponawia żądanie w tym samym czasie, co ponownie przeciąża serwer.
- Przestrzeganie wskazówek dotyczących ponawiania: jeśli odpowiedź interfejsu API zawiera szczegóły lub nagłówki dotyczące ponawiania, użyj ich, aby określić, kiedy wznowić wywołania.
Minimalizowanie zbędnych wywołań
- Zapobieganie nieaktualnym wywołaniom (404 NOT_FOUND): unikaj żądania lub usuwania zasobów, które już nie istnieją. Nawet nieudane wywołania zużywają limit interfejsu API. Monitoruj błędy
NOT_FOUNDw diagnostyce interfejsu API Merchant Center, aby wykrywać śledzenie nieaktualnego stanu lub niepotrzebne sondowanie. - Sprawdzanie przed aktualizacją: przed wysłaniem żądania aktualizacji sprawdź, czy dane rzeczywiście się zmieniły. Unikaj wysyłania aktualizacji, które zapisują te same wartości.
- Używanie pamięci podręcznej: w razie potrzeby zapisuj w pamięci podręcznej odpowiedzi odczytu (np. szczegóły produktu, ustawienia), aby uniknąć powtarzających się wywołań
getlublistw przypadku niezmienionych danych.
Poruszanie się po hierarchii limitów i wyjątkach
- Konta zaawansowane i subkonta: jeśli masz konto zaawansowane, uwierzytelnij się na poziomie konta zaawansowanego, jeśli chcesz, aby wywołania były wliczane do puli współdzielonej konta zaawansowanego.
- Używanie metody
listSubaccounts: w przypadku kont zaawansowanych używaj metodyaccounts.listSubaccountszamiastaccounts.list. Limitaccounts.listjest naliczany na podstawie użytkownika wywołującego (a nie identyfikatora MC) i nie jest widoczny w standardowej diagnostyce. MetodalistSubaccountsjest wliczana do limitu MCA.