Ograniczenia interfejsu API

Interfejs Google Ads API wymusza limity operacji API, np. liczbę operacji, które można wysłać w jednym żądaniu modyfikacji. W tabeli poniżej znajdziesz podsumowanie niektórych ważnych limitów i limitów wykorzystania.

Typ żądania, ograniczenie i kod błędu
Operacje z poziomem dostępu Test 15 tys. operacji API dziennie na kontach testowych RESOURCE_EXHAUSTED
Operacje z poziomem dostępu Eksplorator 2880 operacji API dziennie na kontach produkcyjnych
15 tys. operacji API dziennie na kontach testowych
RESOURCE_EXHAUSTED
Operacje z poziomem dostępu Podstawowy 15 tys. operacji API dziennie na kontach testowych i produkcyjnych RESOURCE_EXHAUSTED
Operacje z poziomem dostępu Standardowy Nieograniczona liczba operacji API dziennie na kontach testowych i produkcyjnych Nie dotyczy
Żądania modyfikacji 10 tys. operacji modyfikacji na żądanie TOO_MANY_MUTATE_OPERATIONS
Żądania usługi planowania 1 zapytanie na sekundę RESOURCE_EXHAUSTED
Zapytania o usługę przesyłania konwersji 2 tys. konwersji na żądanie TOO_MANY_CONVERSIONS_IN_REQUEST
Żądania usługi rozliczeń i budżetu konta 1 operacja na żądanie modyfikacji TOO_MANY_MUTATE_OPERATIONS

Dzienne limity operacji API

Dzienne limity wykorzystania interfejsu API są oparte na liczbie operacji API wykonywanych przez Twój projekt w chmurze Google. Operacje API to łączna suma żądań Search i SearchStream, poszczególnych operacji modyfikacji oraz innych żądań usług. Limity dziennych operacji API zależą od poziomu dostępu do interfejsu API w Twoim projekcie w chmurze Google. W przewodniku Poziomy dostępu i dopuszczalne użycie znajdziesz szczegółowe limity operacji API dla każdego poziomu dostępu.

Żądania, które naruszają te limity, są odrzucane z błędem: RESOURCE_EXHAUSTED.

Ograniczenia gRPC

Wszystkie biblioteki klienta interfejsu Google Ads API używają gRPC do generowania żądań i odpowiedzi. Domyślnie gRPC ma rozmiar wiadomości 4 MB, ale nasze biblioteki klienta ustawiają maksymalny rozmiar wiadomości na 64 MB , aby zwiększyć wydajność.

Odpowiedzi nie mogą przekraczać tego limitu. Na przykład żądanie wyszukiwania, które zawiera wiele pól, może wygenerować odpowiedź o rozmiarze przekraczającym 64 MB. Aby uniknąć tego limitu, możesz zmniejszyć liczbę wybranych pól lub użyć przesyłania strumieniowego. W przypadku modyfikacji wysyłaj mniej operacji na żądanie.

Żądania, które naruszają to ograniczenie, nie wygenerują błędu GoogleAdsError, ale wygenerują błąd RESOURCE_EXHAUSTED (kod gRPC 8 / HTTP 429). Zapoznaj się z listą kodów błędów i komunikatów gRPC.

Żądania modyfikacji

Oprócz tego, że żądanie modyfikacji jest wliczane do dziennego limitu operacji użytkownika,nie może ono zawierać więcej niż 10 tys. operacji modyfikacji na żądanie. Żądania, które naruszają to ograniczenie, są odrzucane z błędem: TOO_MANY_MUTATE_OPERATIONS.

Poniżej znajdziesz dodatkowe limity i kwestie dotyczące konkretnych usług i typów żądań.

Żądania wyszukiwania

Żądanie Search lub SearchStream jest liczone jako 1 operacja w ramach dziennego limitu operacji użytkownika. Żądanie SearchStream jest liczone jako 1 operacja API niezależnie od liczby partii.

Żądania z podziałem na strony

Żądania z podziałem na strony (np. żądania zawierające prawidłowy token next_page_token) nie są wliczane do dziennego limitu operacji użytkownika. Jednak żądania z podziałem na strony, które zawierają wygasły lub nieprawidłowy token strony, spowodują wyjątek i będą wliczane do dziennego limitu operacji.

Więcej informacji o podziale na strony znajdziesz w artykule Przeglądanie wyników.

Inne typy żądań

Żądanie, które nie jest żądaniem Mutate, Search, ani SearchStream, jest liczone jako 1 operacja w ramach dziennego limitu operacji użytkownika.

Oto kilka przykładów takich żądań:

Żądania, które zwracają wyjątki API

Żądania odrzucone z powodu GoogleAdsFailure nadal są wliczane do dziennego limitu operacji użytkownika.

Żądania, które nie powiodły się, ale nie zwróciły GoogleAdsFailure, np. z powodu błędu na poziomie sieci, nie będą wliczane do dziennego limitu operacji użytkownika, ponieważ nigdy nie dotrą do usługi. Przykładem jest brak połączenia sieciowego.

Usługa planowania słów kluczowych

Ze względu na koszty i złożoność te metody usługi planowania słów kluczowych podlegają innym limitom niż inne typy żądań.

Podczas tworzenia planu słów kluczowych pamiętaj o tych limitach.

Obiekt planu słów kluczowych Maksymalna liczba
KeywordPlan na konto 10 tys.
KeywordPlanAdGroup na KeywordPlan 200
KeywordPlanAdGroupKeyword na KeywordPlan 10 tys.
KeywordPlanCampaignKeyword (wykluczające słowa kluczowe) na KeywordPlan 1000
KeywordPlanCampaign na KeywordPlan 1

Usługa statystyk odbiorców

Te metody w ramach AudienceInsightsService podlegają określonym limitom wykorzystania.

Usługa przesyłania konwersji

Usługa przesyłania korekt konwersji

Reguły wartości konwersji

Jeśli na koncie istnieje już ConversionValueRuleSet z attachment_type ustawionym na CUSTOMER, musisz dodać do niego wszystkie nowe reguły wartości konwersji, aby stały się aktywne. Jeśli taki zbiór reguł wartości konwersji nie istnieje, musisz go utworzyć i dodać do niego reguły wartości konwersji zgodnie z opisem w artykule Tworzenie zbiorów reguł.

Usługi rozliczeń i budżetu konta

  • Modyfikacje można wprowadzać tylko na kontach skonfigurowanych do fakturowania miesięcznego.

    Żądania, które naruszają to ograniczenie, są odrzucane z błędem: MUTATE_NOT_ALLOWED.

  • W przypadku żądań modyfikacji dozwolona jest tylko 1 operacja.

    Żądania, które naruszają to ograniczenie, są odrzucane z błędem: TOO_MANY_MUTATE_OPERATIONS.

  • Między zmianami budżetu konta (AccountBudget lub AccountBudgetProposal) na tym samym koncie należy odczekać co najmniej 12 godzin. Wprowadzanie zmian przed upływem 12 godzin może spowodować nieodwracalne błędy, które może rozwiązać tylko przedstawiciel Google Ads.

Zaproszenia do kont klientów

Za pomocą CustomerUserAccessInvitationService można zapraszać nowych użytkowników do istniejących kont klientów. Ta funkcja wysyła e-maile z zaproszeniami do innych użytkowników, dlatego może być nadużywana. Z tego powodu jej działanie podlega pewnym ograniczeniom:

  • Użytkownicy nie mogą mieć więcej niż 1 oczekującego zaproszenia na to samo konto klienta. Jeśli zostanie wysłane kolejne żądanie zaproszenia użytkownika który ma już oczekujące zaproszenie, zostanie zwrócony ten błąd: EMAIL_ADDRESS_ALREADY_HAS_PENDING_INVITATION.

  • Konta klientów nie mogą mieć jednocześnie więcej niż 70 oczekujących zaproszeń. Jeśli zostanie wysłane żądanie, które spowoduje przekroczenie tej wartości, zostanie zwrócony ten błąd: PENDING_INVITATIONS_LIMIT_EXCEEDED.

Dane użytkownika

Dane użytkownika są zarządzane za pomocą UserDataService i OfflineUserDataJobService.

Każdy UserData obiekt w operacji create lub remove dotyczy jednego użytkownika. Pole user_identifiers w jednym UserData obiekcie jest ograniczone do maksymalnie 20 identyfikatorów. Przekroczenie tego limitu w jednym obiekcie UserData spowoduje błąd OfflineUserDataJobError.TOO_MANY_USER_IDENTIFIERS lub UserDataError.TOO_MANY_USER_IDENTIFIERS.

Obsługa użytkowników z więcej niż 20 identyfikatorami

Jeśli jeden użytkownik ma więcej niż 20 identyfikatorów, które musisz przesłać, rozdziel te identyfikatory na kilka obiektów UserData. Aby mieć pewność, że Google może powiązać wszystkie te identyfikatory z tym samym użytkownikiem, każdy obiekt UserData dla tego użytkownika musi zawierać co najmniej 1 wspólny user_identifier, np. ten sam hashed_email, hashed_phone_number lub third_party_user_id. Google używa tych wspólnych identyfikatorów do łączenia i scalania informacji z oddzielnych operacji UserData z prawidłowym profilem użytkownika.

Jeśli korzystasz z informacji umożliwiających identyfikację osoby, takich jak zaszyfrowane adresy e-mail lub numery telefonów, upewnij się, że są one znormalizowane i zaszyfrowane zgodnie z wymaganiami interfejsu Google Ads API (SHA-256, małe litery, brak białych znaków), aby zapobiec niepowodzeniom w łączeniu.

Jeśli na przykład użytkownik ma 30 adresów e-mail, możesz wysłać 2 obiekty UserData, które mają wspólny third_party_user_id (w pierwszym obiekcie umieść thirdPartyUserId oraz adresy e-mail od 1 do 19, aby nie przekroczyć limitu 20 identyfikatorów, a w drugim – thirdPartyUserId oraz adresy e-mail od 20 do 30):

{
  "userIdentifiers": [
    { "thirdPartyUserId": "user123" },
    { "hashedEmail": "SHA256_OF_EMAIL_1" },
    // Hashed emails 2 through 18 are omitted here.
    { "hashedEmail": "SHA256_OF_EMAIL_19" }
  ]
}
{
  "userIdentifiers": [
    { "thirdPartyUserId": "user123" },
    { "hashedEmail": "SHA256_OF_EMAIL_20" },
    // Hashed emails 21 through 29 are omitted here.
    { "hashedEmail": "SHA256_OF_EMAIL_30" }
  ]
}

Łączny limit user_identifiers we wszystkich operacjach w ramach jednego AddOfflineUserDataJobOperationsRequest wynosi 100 tys. (an OfflineUserDataJob może akceptować wiele AddOfflineUserDataJobOperationsRequest wywołań, maksymalnie 1 mln operacji na zadanie). W przypadku synchronicznych przesyłań za pomocą UploadUserDataRequest (UserDataService.UploadUserData) każde żądanie jest ograniczone do maksymalnie 10 operacji i 100 user_identifiers w całym żądaniu.

Inne typy limitów

Pole powtarzane, np. lista operacji, które zawiera zbyt wiele elementów w żądaniu, może spowodować błąd: REQUEST_SIZE_LIMIT_EXCEEDED. Ten sam komunikat o błędzie może być też spowodowany innymi problemami.

Jeśli napotkasz to ograniczenie i wysyłasz żądania, które używają pola powtarzanego, spróbuj zmniejszyć liczbę elementów w tym polu, dzieląc listę operacji na kilka żądań modyfikacji.

Podczas wykonywania zapytania GAQL maksymalna liczba elementów w klauzuli IN wynosi 20 tys. Jeśli przekroczysz ten limit, zostanie zwrócony błąd FILTER_HAS_TOO_MANY_VALUES.