Rozwiązywanie problemów

Błędy mogą być spowodowane nieprawidłową konfiguracją środowiska, błędem w oprogramowaniu lub nieprawidłowymi danymi wejściowymi użytkownika. Niezależnie od źródła musisz rozwiązać problem i naprawić kod lub dodać logikę obsługi błędu użytkownika. W tym przewodniku omawiamy sprawdzone metody rozwiązywania problemów z błędami w interfejsie Google Ads API.

Zapewnij łączność

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

  2. Twoje dane logowania są osadzone w prośbie, 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żywania bibliotek klienta. Każda biblioteka klienta jest dostarczana z konkretnymi instrukcjami dotyczącymi umieszczania danych logowania w pliku konfiguracyjnym (zapoznaj się z plikiem README biblioteki klienta).

  3. Sprawdź, czy używasz prawidłowych danych logowania. Nasz przewodnik szybkiego startu przeprowadzi Cię przez proces uzyskiwania odpowiedniego zestawu. Na przykład poniższy błąd odpowiedzi 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 zająć się rozwiązywaniem błędów interfejsu Google Ads API.

Określ problem

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 komunikat wyjaśniający, dlaczego wystąpił. Są to pierwsze sygnały, które mogą wskazywać na przyczynę problemu.

{
  "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. Rejestrowanie tych wyjątków i wyświetlanie komunikatów w dzienniku lub na ekranie rozwiązywania problemów to świetny sposób na rozpoczęcie. Zintegrowanie tych informacji z innymi zalogowanymi zdarzeniami w aplikacji zapewnia dobry przegląd tego, co może powodować problem. Po zidentyfikowaniu błędu w dziennikach musisz ustalić, co on oznacza.

Sprawdź błąd

  1. Zapoznaj się z dokumentacją Typowe błędy, w której znajdziesz informacje o najczęściej występujących błędach. Zawiera opis komunikatu o błędzie, odpowiednie odwołania do interfejsu API oraz informacje o tym, jak uniknąć błędu lub sobie z nim poradzić.

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

  3. Skorzystaj z naszych kanałów 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 kont, odwiedź Centrum pomocy Google Ads. Interfejs Google Ads API dziedziczy reguły i ograniczenia podstawowej usługi Google Ads.

  5. Posty na blogu mogą czasami być dobrym źródłem informacji podczas rozwiązywania problemów z aplikacją.

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

Po zbadaniu 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 w żądaniu możliwej przyczyny. Niektóre komunikaty o błędach interfejsu Google Ads API zawierają w polu location żądania GoogleAdsError znak fieldPathElements, który wskazuje, w którym miejscu żądania 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 zauważyć, że aplikacja przekazuje do interfejsu API nieprawidłowe informacje. Zdecydowanie zalecamy używanie debugera zintegrowanego środowiska programistycznego (IDE) do ustawiania punktów przerwania, przechodzenia przez kod wiersz po wierszu i sprawdzania skonstruowanych ładunków żądań przed ich wysłaniem.

Sprawdź dokładnie, czy prośba jest zgodna z danymi wejściowymi aplikacji (np. nazwa kampanii może nie być uwzględniona w prośbie). Upewnij się, że wysyłasz maskę pola, która odpowiada aktualizacjom, które chcesz wprowadzić – interfejs Google Ads API obsługuje aktualizacje rzadkie. Pominięcie pola w parametrze field_mask w żądaniu zmiany oznacza, że interfejs API powinien pozostawić to pole bez zmian. Jeśli aplikacja pobiera obiekt, wprowadza w nim zmiany i odsył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ą ograniczenia dotyczące tego, kiedy i czy możesz zaktualizować to pole.

Jak uzyskać pomoc

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

W zapytaniach podawaj jak najwięcej informacji. Polecane produkty:

  • Oczyszczone żądanie i odpowiedź w formacie JSON. Pamiętaj, aby usunąć informacje poufne, takie jak token dostępu OAuth, token odświeżania, token dewelopera (jeśli nadal jest uwzględniony w starszych nagłówkach żądań) i identyfikatory klientów.
  • Fragmenty kodu. Jeśli masz problem związany z konkretnym językiem lub potrzebujesz pomocy w korzystaniu z interfejsu API, dołącz fragment kodu, aby wyjaśnić, co robisz.
  • request-id – dzięki temu członkowie zespołu Google ds. relacji z deweloperami będą mogli znaleźć Twoje zgłoszenie, jeśli zostało ono przesłane w środowisku produkcyjnym. Zalecamy rejestrowanie wartości request-id zawartych w nagłówkach odpowiedzi lub wyjątków, które zawierają błędy odpowiedzi, a także więcej kontekstu niż tylko wartość request-id.
  • Dodatkowe informacje, takie jak wersja środowiska wykonawczego lub interpretera oraz platforma, mogą być przydatne podczas rozwiązywania problemów.

Rozwiąż problem

Teraz, gdy znasz już problem i masz rozwiązanie, możesz wprowadzić zmianę i przetestować poprawkę na koncie testowym (zalecane) lub na koncie 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?

Stworzenie dobrego zestawu testów jednostkowych znacznie poprawia jakość i niezawodność kodu. Przyspiesza też proces testowania nowych zmian, aby mieć pewność, że nie wpłynęły one negatywnie na dotychczasowe funkcje. Dobra strategia obsługi błędów jest też kluczowa w przypadku udostępniania wszystkich danych niezbędnych do rozwiązywania problemów.