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 łączy się z usługami, 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 przewodnik Szybki start 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, musisz rozwiązać błędy interfejsu 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 naszą dokumentacją dotyczącą typowych błędów, 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. Odwiedź Centrum pomocy Google Ads , aby uzyskać pomoc w rozwiązywaniu problemów z weryfikacją lub limitami konta. Interfejs Google Ads API dziedziczy reguły i ograniczenia podstawowej usługi Google Ads.

  5. Posty na blogu mogą być pomocne 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 musisz 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, który wskazuje, 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 też 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 rzadkie aktualizacje. Pominięcie pola w masce pola w żądaniu mutate oznacza, że interfejs API powinien pozostawić to pole bez zmian. Jeśli aplikacja pobiera obiekt, wprowadza w nim zmiany i wysyła go z powrotem, może 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.

Staraj się podawać w zapytaniach jak najwięcej informacji. Zalecane informacje:

  • Oczyszczone żądanie i odpowiedź w formacie JSON. Usuń informacje poufne, takie jak token programisty czy AuthToken.
  • Fragmenty kodu. Jeśli masz problem związany z konkretnym 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 dodatkowych informacji.
  • Podczas rozwiązywania problemów przydatne mogą być też dodatkowe informacje, takie jak wersja środowiska wykonawczego lub interpretera oraz platforma.

Rozwiąż problem

Gdy już zidentyfikujesz problem i znajdziesz rozwiązanie, wprowadź zmiany i przetestuj poprawkę na koncie testowym (zalecane) lub produkcyjnym (jeśli błąd dotyczy tylko danych na konkretnym koncie produkcyjnym).

Następne kroki

Czy po rozwiązaniu tego problemu udało Ci się znaleźć 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 nieprawidłowego działania poprzednich funkcji. Dobra strategia obsługi błędów jest też kluczowa w przypadku udostępniania wszystkich danych potrzebnych do rozwiązywania problemów.