Rozwiązywanie problemów

Film: omówienie obsługi błędów podczas warsztatów w 2019 r.

Błędy mogą być spowodowane nieprawidłową konfiguracją środowiska, błędem w oprogramowaniu lub nieprawidłowym działaniem użytkownika. Niezależnie od przyczyny musisz rozwiązać problem, poprawić kod lub dodać logikę obsługi błędów użytkownika. W tym przewodniku omawiamy sprawdzone metody rozwiązywania problemów z interfejsem Google Ads API.

Sprawdź połączenie

  1. Upewnij się, że masz dostęp do interfejsu Google Ads API i że jest on prawidłowo skonfigurowany. Jeśli w odpowiedzi występują błędy HTTP, dokładnie je sprawdź i upewnij się, że kod dociera do usług, których chcesz używać.

  2. Dane logowania są osadzone w żądaniu, aby usługi mogły Cię uwierzytelnić. Zapoznaj się ze strukturą żądań i odpowiedzi interfejsu Google Ads API, zwłaszcza jeśli zamierzasz obsługiwać wywołania bez użycia bibliotek klienta. Każda biblioteka klienta zawiera szczegółowe instrukcje dotyczące umieszczania danych logowania w pliku konfiguracyjnym (zapoznaj się z plikiem README biblioteki klienta).

  3. Sprawdź, czy używasz prawidłowych danych logowania. Nasz krótki przewodnik dla początkujących przeprowadzi Cię przez proces uzyskiwania odpowiedniego zestawu danych. Na przykład poniższa odpowiedź o niepowodzeniu wskazuje, że użytkownik wysłał nieprawidłowe dane logowania:

    {
      "error": {
        "code": 401,
        "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. Visit https://developers.google.com/identity/sign-in/web/devconsole-project.",
        "status": "UNAUTHENTICATED",
        "details": [
          {
            "@type": "type.googleapis.com/google.rpc.DebugInfo",
            "detail": "Authentication error: 2"
          }
        ]
      }
    }
    

Jeśli po wykonaniu tych czynności nadal występują problemy, czas przejść do rozwiązywania problemów z interfejsem Google Ads API.

Określ problem

Interfejs Google Ads API zwykle zgłasza błędy jako obiekt JSON o niepowodzeniu, który zawiera listę błędów w odpowiedzi. Te obiekty zawierają kod błędu oraz komunikat wyjaśniający, dlaczego wystąpił błąd. Są to pierwsze sygnały wskazujące na to, jaki może być problem.

{
  "errors": [
    {
      "errorCode": { "fieldMaskError": "FIELD_NOT_FOUND" },
      "message": "The field mask contained an invalid field: 'keyword/matchtype'.",
      "location": { "operationIndex": "1" }
    }
  ]
}

Wszystkie nasze biblioteki klienta zgłaszają wyjątki, które zawierają błędy w odpowiedzi. Dobrym sposobem na rozpoczęcie jest przechwytywanie tych wyjątków i wyświetlanie komunikatów w dzienniku lub na ekranie rozwiązywania problemów. Zintegrowanie tych informacji z innymi zarejestrowanymi zdarzeniami w aplikacji pozwala uzyskać dobry wgląd w to, co może powodować problem. Gdy zidentyfikujesz błąd w dziennikach, musisz dowiedzieć się, co on oznacza.

Sprawdź błąd

  1. Zapoznaj się z dokumentacją typowe błędy, która obejmuje najczęściej występujące błędy. Opisuje ona komunikat o błędzie, odpowiednie odniesienia do interfejsu API oraz sposób unikania lub obsługi błędu.

  2. Jeśli w dokumentacji typowych błędów nie ma informacji o danym błędzie, zapoznaj się z dokumentacją referencyjną i poszukaj ciągu znaków błędu.

  3. Przeszukaj nasze kanały pomocy, aby uzyskać dostęp do innych deweloperów, którzy dzielą się swoimi doświadczeniami z interfejsem API. Ktoś inny mógł już napotkać i rozwiązać problem, który występuje u Ciebie.

  4. Aby uzyskać pomoc w rozwiązywaniu problemów z weryfikacją lub limitami konta, odwiedź Centrum pomocy Google Ads. Interfejs Google Ads API dziedziczy reguły i ograniczenia podstawowej usługi Google Ads.

  5. Posty na blogu czasami przydadzą się podczas rozwiązywania problemów z aplikacją.

  6. Jeśli napotkasz błędy, które nie są udokumentowane, skontaktuj się z zespołem pomocy technicznej.

Po sprawdzeniu błędu czas określić jego główną przyczynę.

Znajdź przyczynę

Sprawdź komunikat o wyjątku, aby określić przyczynę błędu. Po sprawdzeniu odpowiedzi poszukaj możliwej przyczyny w żądaniu. Niektóre komunikaty o błędach interfejsu Google Ads API zawierają element fieldPathElements w polu location obiektu GoogleAdsError, wskazujący, gdzie w żądaniu wystąpił błąd. Na przykład:

{
  "errors": [
    {
      "errorCode": {"criterionError": "CANNOT_ADD_CRITERIA_TYPE"},
      "message": "Criteria type can not be targeted.",
      "trigger": { "stringValue": "" },
      "location": {
        "operationIndex": "0",
        "fieldPathElements": [ { "fieldName": "keyword" } ]
      }
    }
  ]
}

Podczas rozwiązywania problemu możesz stwierdzić, że aplikacja przekazuje do interfejsu API nieprawidłowe informacje. Do debugowania zdecydowanie zalecamy używanie interaktywnego środowiska programistycznego (IDE), takiego jak Eclipse (bezpłatne środowisko IDE o otwartym kodzie źródłowym, które jest używane głównie do tworzenia aplikacji w języku Java, ale ma wtyczki do innych języków). Umożliwia ono ustawianie punktów przerwania i przechodzenie przez kod wiersz po wierszu.

Sprawdź, czy żądanie jest zgodne z danymi wejściowymi aplikacji (np. nazwa kampanii może nie być uwzględniana w żądaniu). Upewnij się, że wysyłasz maskę pola, która odpowiada zmianom, które chcesz wprowadzić. Interfejs Google Ads API obsługuje aktualizacje rzadkie. Pominięcie pola w masce pola w żądaniu mutate oznacza, że interfejs API powinien pozostawić je bez zmian. Jeśli aplikacja pobiera obiekt, wprowadza w nim zmiany i wysyła go z powrotem, możesz zapisywać dane w polu, które nie obsługuje aktualizacji. Sprawdź opis pola w dokumentacji referencyjnej, aby dowiedzieć się, czy istnieją jakieś ograniczenia dotyczące tego, kiedy i czy można zaktualizować pole.

Jak uzyskać pomoc

Nie zawsze można samodzielnie zidentyfikować i rozwiązać problem. Możesz skontaktować się z zespołem pomocy.

W zapytaniach podaj jak najwięcej informacji. Zalecane elementy:

  • Oczyszczone żądanie i odpowiedź w formacie JSON. Pamiętaj, aby usunąć informacje poufne, takie jak token dostępu OAuth.
  • Fragmenty kodu. Jeśli masz problem związany z językiem lub potrzebujesz pomocy w pracy z interfejsem API, dołącz fragment kodu, który pomoże wyjaśnić, co robisz.
  • Identyfikator żądania. Umożliwia to członkom zespołu ds. relacji z deweloperami Google zlokalizowanie Twojego żądania, jeśli zostało ono wysłane do środowiska produkcyjnego. Zalecamy rejestrowanie w dziennikach identyfikatora żądania, który jest uwzględniany jako właściwość w wyjątkach zawierających błędy odpowiedzi, a także więcej kontekstu niż sam identyfikator żądania.
  • Podczas rozwiązywania problemów przydatne mogą być też dodatkowe informacje, takie jak wersja środowiska wykonawczego lub interpretera oraz platforma.

Rozwiąż problem

Teraz, gdy znasz już problem i masz rozwiązanie, czas wprowadzić zmiany i przetestować poprawkę na koncie testowym (zalecane) lub produkcyjnym (jeśli błąd dotyczy tylko danych na określonym koncie produkcyjnym).

Dalsze kroki

Teraz, gdy problem został rozwiązany, czy udało Ci się znaleźć jakieś sposoby na ulepszenie kodu, aby uniknąć tego problemu w przyszłości?

Utworzenie dobrego zestawu testów jednostkowych znacznie poprawia jakość i niezawodność kodu. Przyspiesza też proces testowania nowych zmian, aby upewnić się, że nie spowodowały one problemów z dotychczasową funkcjonalnością. Dobra strategia obsługi błędów jest też kluczowa w przypadku udostępniania wszystkich danych niezbędnych do rozwiązywania problemów.