Typy błędów

Błędy zostały podzielone na te szerokie kategorie:

  • Uwierzytelnianie
  • Można spróbować ponownie
  • Weryfikacja
  • Treści związane z synchronizacją

Chociaż te kategorie nie obejmują wszystkich możliwych błędów i niektóre z nich mogą pasować do więcej niż jednej kategorii, mogą służyć jako punkt wyjścia do porządkowania struktury aplikacji. Więcej informacji o poszczególnych błędach znajdziesz w artykule Typowe błędy.

Błędy uwierzytelniania

Uwierzytelnianie określa, czy użytkownikowi przyznano uprawnienia do korzystania z Google Ads w jego imieniu. Uwierzytelnianiem zarządza się za pomocą danych logowania wygenerowanych przez proces OAuth2.

Najczęstszą przyczyną błędu uwierzytelniania z innych powodów jest to, że uwierzytelniony użytkownik unieważnił uprawnienia, które zostały przyznane aplikacji w jego imieniu. Jeśli na przykład aplikacja zarządza oddzielnymi kontami Google Ads dla niezależnych klientów i uwierzytelnia się oddzielnie jako każdy klient podczas zarządzania jego kontem, klient może w każdej chwili unieważnić dostęp tej aplikacji. W zależności od tego, kiedy dostęp został anulowany, interfejs API może zwrócić błąd AuthenticationError.OAUTH_TOKEN_REVOKED bezpośrednio lub obiekty uwierzytelniające wbudowane w biblioteki klienta mogą unieważnić wyjątek. W obu przypadkach, jeśli aplikacja ma interfejs dla klientów, może poprosić o ponowne uruchomienie protokołu OAuth2, aby ponownie przyznać aplikacji uprawnienia do działania w jego imieniu.

Błędy ponawiania

Niektóre błędy (np. INTERNAL_ERROR) mogą oznaczać tymczasowy problem, który można rozwiązać, ponownie wysyłając żądanie po krótkim wstrzymaniu.

W przypadku żądań zainicjowanych przez użytkownika jedną ze strategii jest natychmiastowe wskazanie błędu w interfejsie użytkownika i danie użytkownikowi możliwości ponownego uruchomienia. Możesz też automatycznie spróbować ponownie wykonać żądanie, wyświetlając błąd w interfejsie dopiero po osiągnięciu maksymalnej liczby ponownych prób lub całkowitego czasu oczekiwania użytkownika.

W przypadku żądań zainicjowanych w Twojej aplikacji aplikacja powinna automatycznie spróbować ponownie wysłać żądanie do maksymalnej liczby ponownych prób.

Ponawiając żądania, użyj zasady wzrastającej liczby ponowień. Jeśli na przykład po raz pierwszy wstrzymasz 5 sekund przed pierwszą próbą, możesz wstrzymać 10 sekund po drugiej i 20 sekund po trzeciej próbie. Wykładnikowe odliczanie czasu pozwala upewnić się, że interfejs API nie jest zbyt agresywny.

Błędy weryfikacji

Błędy weryfikacji wskazują, że dane wejściowe operacji nie są akceptowane. na przykład PolicyViolationError, DateError, DateRangeError, StringLengthError i UrlFieldError.

Błędy weryfikacji występują najczęściej w przypadku żądań zainicjowanych przez użytkownika, w których użytkownik wpisał nieprawidłowe dane. W takich przypadkach musisz wyświetlić użytkownikowi odpowiedni komunikat o błędzie na podstawie wykrytego konkretnego błędu interfejsu API. Przed wywołaniem interfejsu API możesz też zweryfikować dane wejściowe użytkowników pod kątem typowych błędów. Dzięki temu aplikacja stanie się bardziej elastyczna i wydajniejsze wykorzystanie interfejsu API. W przypadku żądań z zaplecza aplikacja może dodać nieudaną operację do kolejki do sprawdzenia przez operatora.

Wiele aplikacji Google Ads korzysta z lokalnej bazy danych, w której są przechowywane obiekty Google Ads. Jednym z wyzwań jest to, że lokalna baza danych może nie być zsynchronizowana z rzeczywistymi obiektami w Google Ads. Użytkownik może np. usunąć grupę reklam bezpośrednio w Google Ads, ale aplikacja i lokalna baza danych nie wiedzą o tej zmianie i będą nadal wywoływać wywołania interfejsu API, jak gdyby grupa reklam istniała. Te problemy z synchronizacją mogą mieć miejsce w przypadku różnych błędów, takich jak DUPLICATE_CAMPAIGN_NAME, DUPLICATE_ADGROUP_NAME, AD_NOT_UNDER_ADGROUP, CANNOT_OPERATE_ON_REMOVED_ADGROUPAD i wielu innych.

W przypadku żądań zainicjowanych przez użytkownika należy na przykład powiadomić użytkownika o możliwym problemie z synchronizacją, natychmiast uruchomić zadanie, które pobiera odpowiednią klasę obiektów Google Ads i zaktualizować lokalną bazę danych, a następnie poprosić użytkownika o odświeżenie interfejsu użytkownika.

W przypadku żądań backendu niektóre błędy dostarczają wystarczającej ilości informacji, aby aplikacja mogła automatycznie i stopniowo zwiększać lokalną bazę danych. Na przykład aplikacja CANNOT_OPERATE_ON_REMOVED_ADGROUPAD powinna spowodować oznaczenie aplikacji jako usuniętej w lokalnej bazie danych. Błędy, których nie możesz obsłużyć w ten sposób, mogą spowodować, że aplikacja będzie uruchamiać pełniejsze zadanie synchronizacji, lub dodać ją do kolejki, aby operator mógł ją sprawdzić.