Rozwiązywanie problemów

Film: Obejrzyj prezentację na temat obsługi błędów przedstawioną podczas warsztatów w 2019 roku

Błędy mogą być spowodowane niewłaściwą konfiguracją środowiska, błędem w Twojego oprogramowania lub nieprawidłowe dane wejściowe użytkownika. Niezależnie od źródła musisz rozwiązać problem i naprawić kod lub dodać funkcje logiczne, błąd po stronie użytkownika. W tym przewodniku omawiamy sprawdzone metody rozwiązywania problemów. błędów z interfejsu Google Ads API.

Zapewnienie połączenia

  1. Sprawdź, czy masz dostęp do interfejsu Google Ads API i czy masz prawidłową konfigurację. Jeśli zwraca wszelkie błędy HTTP. że docierasz do usług, których chcesz używać za pomocą kodu.

  2. Twoje dane logowania są zapisane w żądanie, aby usług Google Cloud, aby Cię uwierzytelnić. Zapoznanie się ze strukturą interfejsu Google Ads API żądań i odpowiedzi, zwłaszcza jeśli masz zamiar obsługiwać połączenia bez za pomocą bibliotek klienta. Każda biblioteka kliencka jest dostarczana z instrukcje umieszczania danych logowania w pliku konfiguracyjnym (zapoznaj się z pliku README biblioteki klienta).

  3. Sprawdź, czy używasz poprawnych danych logowania. Nasze Krótkie wprowadzenie przedstawia proces pozyskiwania właściwy zestaw. Na przykład ten błąd odpowiedzi oznacza, że plik 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 problemy nadal występują, pora rozpocząć naukę. w rozwiązywaniu problemów z interfejsem Google Ads API.

Określenie problemu

Interfejs Google Ads API zwykle zgłasza błędy jako obiekt błędu JSON zawierający listę błędów w odpowiedzi. Obiekty te zawierają kod błędu oraz wiadomość z wyjaśnieniem, dlaczego tak się stało. To pierwsze sygnały tego, co co może oznaczać 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 umieścić w odpowiedzi błędy. Uwzględniając te wyjątki, wyświetlenie komunikatów dziennika lub ekranu rozwiązywania problemów aby rozpocząć. Integracja tych informacji z innymi zarejestrowanymi zdarzeniami zawiera dokładne omówienie czynników, które mogą powodować problem. Po zidentyfikowaniu błędu w dziennikach musisz dowiedzieć się, co to oznacza.

Sprawdzanie błędu

  1. Zapoznaj się z artykułem Typowe błędy. dokumentację zawierającą najczęściej spotykane błędy. it opisują komunikat o błędzie, odpowiednie odniesienia do interfejsu API oraz sposób unikania lub naprawić błąd.

  2. Jeśli w dokumentacji dotyczącej typowych błędów nie ma wzmianki o błędzie, zapoznaj się z dokumentacją referencyjną i poszukaj ciągu z błędem.

  3. Przeszukaj nasze kanały pomocy, aby uzyskać dostęp do innych dzielą się swoimi doświadczeniami związanymi z tym interfejsem. Ktoś inny mógł natrafią na Twój problem i go rozwiążesz.

  4. Jeśli napotkasz jakieś błędy, których nie ma udokumentowane, dostarcz je do na forum.

  5. Otwórz Centrum pomocy Google Ads. , gdzie znajdziesz pomoc w rozwiązywaniu problemów ze sprawdzaniem poprawności lub limitem konta. Interfejs Google Ads API dziedziczy reguły i ograniczenia głównej usługi Google Ads.

  6. Posty na blogu może się przydać przy rozwiązywaniu problemów z aplikacją.

Po zbadaniu błędu przyszedł czas na określenie jego głównej przyczyny.

Szukam przyczyny

Aby określić przyczynę błędu, zapoznaj się z komunikatem o wyjątku. Po sprawdzeniu zapoznaj się z prośbą pod kątem możliwych przyczyn. Błąd interfejsu Google Ads API wiadomości zawierają fieldPathElements w polu location sekcji GoogleAdsError, gdzie wskazuje, gdzie w żądaniu, że 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że okazać się, że Twoja aplikacja udostępnia błędne informacje do interfejsu API. Zdecydowanie zalecamy korzystanie z środowisko programistyczne (IDE), takie jak Eclipse (bezpłatne oraz IDE typu open source, służące głównie do programowania Javy, ale zawiera wtyczki innych językach), co może Ci pomóc w debugowaniu. Umożliwia ono ustawianie punktów przerwania i pracować nad nim wiersz po wierszu.

Dokładnie sprawdź, czy żądanie jest zgodne z danymi wejściowymi aplikacji (na np. nazwa kampanii może nie dotrzeć do żądania). Upewnij się, Wysyłasz maska pola które pasują do aktualizacji, które chcesz wprowadzić – interfejs Google Ads API obsługuje drobne aktualizacje. Pominięcie pola w masce pola w żądaniu mutacji wskazuje interfejs API nie powinien nic robić. Jeśli aplikacja pobiera obiekt, wprowadzi zmianę, i odesłać ją, być może piszesz w polu, które nie na temat aktualizacji. Sprawdź opis pola w odwołaniu dokumentacji, aby sprawdzić, czy są jakieś ograniczenia i może aktualizować pole.

Jak uzyskać pomoc

Nie zawsze jest możliwe samodzielne zidentyfikowanie i rozwiązanie problemu. Zadawanie pytań na forum ujawnia pytanie do tysięcy deweloperów, którzy mieli do czynienia z takim samym problemem Google Cloud.

Postaraj się zawrzeć w zapytaniach jak najwięcej informacji. Zalecane produkty:

  • Poprawione żądanie i odpowiedź JSON. Usuń poufne takie jak token programisty lub AuthToken.
  • Fragmenty kodu. Jeśli masz problem związany z językiem lub W prośbie o pomoc w pracy z interfejsem API dołącz fragment kodu, który pomoże wyjaśnić, co robisz.
  • Identyfikator żądania. Dzięki temu członkowie zespołu ds. kontaktów z deweloperami Google mogą znajdować żądania, jeśli zostały wysłane w środowisku produkcyjnym. Śr zalecamy zarejestrowanie w logach identyfikatora requestId zawartego jako właściwość wyjątki zawierające błędy odpowiedzi i dodatkowy kontekst, niż tylko requestId.
  • Dodatkowe informacje, np. wersję środowiska wykonawczego/interpretera może być również przydatna przy rozwiązywaniu problemów.

Jak naprawić problem

Teraz, gdy udało Ci się już znaleźć rozwiązanie problemu i znaleźć rozwiązanie, nadszedł czas, wprowadzić zmianę i przetestować poprawkę na koncie testowym (zalecane) lub produkcyjne (jeśli błąd dotyczy tylko danych na konkretnym koncie produkcyjnym).

Rozważ udostępnianie

Jeśli na forum zadano pytanie dotyczące błędu, który nie został które pojawiły się już wcześniej i udało Ci się znaleźć rozwiązanie, rozważ dodanie go w wątku. Następnym razem, gdy deweloper będzie miał ten sam problem, będzie mógł go rozwiązać od razu.

Następne kroki

Czy po rozwiązaniu problemu zauważyłeś jakieś sposoby na poprawę aby uniknąć tego problemu?

Stworzenie odpowiedniego zestawu testów jednostkowych pomaga poprawić jakość i niezawodność kodu. znacznie obniżył się. Przyspiesza też proces testowania nowych zmian, ale nie zepsuły poprzedniej funkcji. Dobra strategia obsługi błędów które są niezbędne do znalezienia wszystkich danych niezbędnych do rozwiązania problemu.