Błędy mogą być spowodowane nieprawidłową konfiguracją środowiska, błędem w oprogramowaniu lub nieprawidłowymi danymi wejściowymi od użytkownika. Niezależnie od źródła musisz rozwiązać problem i poprawić kod lub dodać logikę, która będzie obsługiwać błąd użytkownika. W tym przewodniku omówiono sprawdzone metody rozwiązywania problemów z błędami interfejsu Google Ads API.
Zapewnianie połączenia
Upewnij się, że masz dostęp do interfejsu Google Ads API i że jest on prawidłowo skonfigurowany. Jeśli odpowiedź zwraca błędy HTTP, dokładnie je przeanalizuj i upewnij się, że docierasz do usług, których chcesz używać w kodzie.
Twoje dane logowania są umieszczone w żądaniu, aby usługi mogły Cię uwierzytelnić. Zapoznaj się ze strukturą żądań do interfejsu API 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 dodawania danych logowania do pliku konfiguracji (zapoznaj się z plikiem README biblioteki klienta).
Sprawdź, czy używasz prawidłowych danych logowania. Nasz krótki przewodnik przeprowadzi Cię przez proces uzyskiwania odpowiedniego zestawu. Na przykład ten 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 błędami interfejsu Google Ads API.
Określanie problemu
Interfejs Google Ads API zwykle zgłasza błędy jako obiekt niepowodzenia JSON, 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, które mogą wskazywać, na czym polega 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 punktem wyjścia jest przechwytywanie tych wyjątków i wyświetlanie komunikatów w dzienniku lub na ekranie rozwiązywania problemów. Połączenie tych informacji z innymi zarejestrowanymi zdarzeniami w aplikacji daje dobry obraz tego, co może być przyczyną problemu. Gdy znajdziesz błąd w dziennikach, musisz dowiedzieć się, co on oznacza.
Zbadaj błąd
Zapoznaj się z dokumentacją dotyczącą typowych błędów, która zawiera najczęściej występujące błędy. Zawiera opis komunikatu o błędzie, odpowiednie dokumentacje API oraz informacje o tym, jak uniknąć błędu lub go obsłużyć.
Jeśli w dokumentacji dotyczącej typowych błędów nie ma informacji o konkretnym błędzie, zapoznaj się z naszą dokumentacją referencyjną i poszukaj ciągu znaków błędu.
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. Być może ktoś inny napotkał już ten sam problem i go rozwiązał.
Jeśli potrzebujesz pomocy w rozwiązywaniu problemów z weryfikacją lub limitami na koncie, odwiedź Centrum pomocy Google Ads. Interfejs Google Ads API dziedziczy reguły i ograniczenia podstawowej usługi Google Ads.
Posty na blogu mogą być czasami przydatne podczas rozwiązywania problemów z aplikacją.
Jeśli napotkasz błędy, które nie zostały opisane, skontaktuj się z zespołem pomocy.
Po zbadaniu błędu należy określić jego główną przyczynę.
Znajdowanie przyczyny
Sprawdź komunikat o wyjątku, aby określić przyczynę błędu. Po przeanalizowaniu odpowiedzi sprawdź żądanie pod kątem możliwej przyczyny. Niektóre komunikaty o błędach interfejsu Google Ads API zawierają fieldPathElements w polu location obiektu GoogleAdsError, co 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że się okazać, ż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 linijka po linijce i sprawdzania utworzonych ładunków żądań przed ich wysłaniem.
Sprawdź, czy żądanie odpowiada danym wejściowym aplikacji (np. nazwa kampanii może nie być uwzględniana w żądaniu). Upewnij się, że wysyłasz maskę pola, która odpowiada aktualizacjom, które chcesz wprowadzić – interfejs Google Ads API obsługuje aktualizacje rozproszone. Pominięcie pola w masce pola w żądaniu modyfikacji oznacza, że interfejs API powinien je pozostawić bez zmian. Jeśli aplikacja pobiera obiekt, wprowadza zmianę i wysyła go z powrotem, może to oznaczać, że zapisujesz 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żesz je zaktualizować.
Jak uzyskać pomoc
Nie zawsze można samodzielnie zidentyfikować i rozwiązać problem. Aby rozwiązać problem, skontaktuj się z zespołem pomocy.
Staraj się podawać w zapytaniach jak najwięcej informacji. Zalecane elementy obejmują:
- Oczyszczone żądanie i odpowiedź JSON. Pamiętaj, aby usunąć informacje poufne, takie jak token dostępu OAuth, token odświeżania i identyfikatory klienta.
- 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. Dzięki temu członkowie zespołu Google Developer Relations będą mogli znaleźć Twoją prośbę, jeśli została ona wysłana w środowisku produkcyjnym. Zalecamy rejestrowanie identyfikatorarequest-idzawartego w nagłówkach odpowiedzi lub wyjątkach, które zawierają błędy odpowiedzi, a także dodatkowego kontekstu, nie tylko samego identyfikatorarequest-id.- Dodatkowe informacje, takie jak środowisko wykonawcze lub wersja interpretera i platforma, mogą być również przydatne podczas rozwiązywania problemów.
Rozwiąż problem
Gdy już znasz problem i masz rozwiązanie, czas wprowadzić zmiany i przetestować poprawkę na koncie testowym (preferowane) lub produkcyjnym (jeśli błąd dotyczy tylko danych na konkretnym koncie produkcyjnym).
Dalsze kroki
Teraz, gdy problem został rozwiązany, czy widzisz jakieś sposoby na ulepszenie kodu, aby uniknąć tego problemu w przyszłości?
Utworzenie dobrego zestawu testów jednostkowych pomaga znacznie poprawić jakość i niezawodność kodu. Przyspiesza też proces testowania nowych zmian, aby upewnić się, że nie zakłócają one działania poprzednich funkcji. Dobra strategia obsługi błędów jest też kluczowa dla wyświetlania wszystkich danych niezbędnych do rozwiązywania problemów.