Rozwiązywanie problemów

Błędy mogą być spowodowane nieprawidłową konfiguracją środowiska, błędem w oprogramowaniu lub nieprawidłowym inputem od użytkownika. Niezależnie od źródła problemu musisz go rozwiązać, naprawiając kod lub dodając 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 przewodnik Szybki start przeprowadzi Cię przez proces uzyskiwania odpowiedniego zestawu danych. Na przykład poniższy błąd odpowiedzi wskazuje, że użytkownik wysłał nieprawidłowe dane uwierzytelniające:

    {
      "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 failure, który zawiera listę błędów w odpowiedzi. Te obiekty zawierają kod błędu oraz komunikat wyjaśniający, dlaczego wystąpił. 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.match_type'.",
      "location": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 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ą dotyczącą typowych błędów, która obejmuje najczęściej występujące błędy. Opisuje ona komunikat o błędzie, odpowiednią dokumentację API oraz sposób unikania lub obsługi błędu.

  2. Jeśli w dokumentacji dotyczącej 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 sposoby kontaktu z zespołem 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, otwórz 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ą fieldPathElements w polu location elementu 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": {
        "fieldPathElements": [
          { "fieldName": "operations", "index": 0 },
          { "fieldName": "create" },
          { "fieldName": "keyword" }
        ]
      }
    }
  ]
}

Podczas rozwiązywania problemu możesz stwierdzić, że aplikacja przekazuje do interfejsu API nieprawidłowe informacje. Zdecydowanie zalecamy używanie debugera zintegrowanego środowiska programistycznego (IDE), aby ustawiać punkty przerwania, przechodzić przez kod wiersz po wierszu i sprawdzać skonstruowane ładunki żądań przed ich wysłaniem.

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 modyfikacji oznacza, że interfejs API powinien je pozostawić bez zmian. Jeśli aplikacja pobiera obiekt, wprowadza w nim zmiany i wysyła go z powrotem, możesz zapisywać 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żesz 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 elementy:

  • Oczyszczone żądanie i odpowiedź JSON. Usuń informacje poufne, takie jak token dostępu OAuth, token odświeżania i identyfikatory klientów.
  • 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.
  • request-id. Umożliwia to członkom zespołu ds. relacji z Google Developers zlokalizowanie Twojego żądania, jeśli zostało ono wysłane do środowiska produkcyjnego. Zalecamy rejestrowanie identyfikatora request-id zawartego w nagłówkach odpowiedzi lub wyjątkach, które zawierają błędy odpowiedzi, a także więcej kontekstu niż tylko identyfikator request-id.
  • 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

Czy po rozwiązaniu tego problemu udało Ci się znaleźć sposoby na ulepszenie kodu, aby uniknąć go 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 dotychczasowymi funkcjami. Dobra strategia obsługi błędów jest też kluczowa w przypadku wyświetlania wszystkich danych niezbędnych do rozwiązywania problemów.