Limity i przydziały interfejsu API

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

Typ żądania, ograniczenie i kod błędu
Operacje z poziomem dostępu Eksplorator 2880 operacji API dziennie na kontach produkcyjnych
15 000 operacji API dziennie na kontach testowych
RESOURCE_EXHAUSTED
Operacje z poziomem dostępu Podstawowy 15 000 operacji API dziennie na kontach testowych i produkcyjnych RESOURCE_EXHAUSTED
Żądania zmiany 10 000 operacji zmiany na żądanie
100 operacji działania na żądanie
TOO_MANY_MUTATE_OPERATIONS
TOO_MANY_ACTION_OPERATIONS
Żądania usługi planowania 1 zapytanie na sekundę RESOURCE_EXHAUSTED
Żądania usługi przesyłania konwersji 2000 konwersji na żądanie TOO_MANY_CONVERSIONS_IN_REQUEST
Żądania usługi rozliczeń i budżetu konta 1 operacja na żądanie zmiany TOO_MANY_MUTATE_OPERATIONS

Dzienne limity operacji API

Dzienne limity wykorzystania interfejsu API są oparte na liczbie operacji API wykonywanych za pomocą tokena programisty. Operacje API to łączna suma żądań pobierania i operacji zmiany. Limity dziennych operacji API zależą od poziomu dostępu tokena programisty. 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ąć przekroczenia tego limitu, możesz zmniejszyć liczbę wybranych pól lub użyć przesyłania strumieniowego. W przypadku operacji zmiany wysyłaj mniej operacji na żądanie.

Żądania, które naruszają to ograniczenie, nie wygenerują błędu GoogleAdsError, ale wygenerują błąd gRPC 429 Resource Exhausted. Zapoznaj się z listą kodów i komunikatów o błędach gRPC.

Żądania zmiany

Oprócz tego, że żądanie zmiany jest wliczane do dziennego limitu operacji użytkownika,nie może ono zawierać więcej niż 10 000 operacji na żądanie.

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

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

Żą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. Żądania z podziałem na strony, które zawierają nieprawidłowy lub nieaktualny token strony, spowodują jednak wyjątek i zostaną wliczone do dziennego limitu operacji.

Więcej informacji o podziale na strony znajdziesz w artykule Podział wyników na strony.

Inne typy żądań

Żądanie, które nie jest żądaniem Get, 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 błędu GoogleAdsFailure są nadal wliczane do dziennego limitu operacji użytkownika.

Żądania, które nie powiodły się, ale nie zwracają błędu GoogleAdsFailure (np. z powodu błędu na poziomie sieci), nie są wliczane do dziennego limitu operacji użytkownika, ponieważ nigdy nie docierają do usługi. Przykładem jest awaria połączenia sieciowego.

Usługa planowania słów kluczowych

Ze względu na koszty i złożoność następujące 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 000
KeywordPlanAdGroup na KeywordPlan 200
KeywordPlanAdGroupKeyword na KeywordPlan 10 000
KeywordPlanCampaignKeyword (wykluczające słowa kluczowe) 1000
KeywordPlanCampaign na KeywordPlan 1

Usługa statystyk odbiorców

Następujące metody w ramach AudienceInsightsService podlegają określonym limitom przydziału.

Usługa przesyłania konwersji

Usługa przesyłania korekt konwersji

Reguły wartości konwersji

Jeśli na koncie istnieje już ConversionValueRuleSet z wartością attachment_type w polu 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

  • Operacje zmiany można wykonywać 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ń zmiany dozwolona jest tylko 1 operacja.

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

  • Między zmianami zamówienia budżetu 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 konta Google Ads.

Zaproszenia do kont klientów

Za pomocą CustomerUserAccessService 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 obowiązują następujące ograniczenia:

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 może zawierać maksymalnie 20 identyfikatorów. Przekroczenie tego limitu w jednym UserData obiekcie 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 zahaszowane adresy e-mail lub numery telefonów, upewnij się, że są one znormalizowane i zahaszowane zgodnie z wymaganiami interfejsu Google Ads API (SHA-256, małe litery, brak białych znaków), aby zapobiec niepowodzeniom łączenia.

Jeśli np. użytkownik ma 30 adresów e-mail, możesz wysłać 2 obiekty UserData.

  • UserData 1: {third_party_user_id: „user123”, hashed_email: „email1@...” ... hashed_email: „email19@...”}
  • UserData 2: {third_party_user_id: "user123", hashed_email: "email20@...", ... hashed_email: „email30@...”}

Łączny limit user_identifiers we wszystkich operacjach w ramach jednego OfflineUserDataJob wynosi 100 000.

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, wdrażając listę operacji w żądaniu zmiany.

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